1 Служебные данные счетчика ссылок можно сократить, если разработчик желает ограничить клиентское использование AddRef. Это очень опасная оптимизация, возникшая благодаря растущей популярности интеллектуальных указателей, и результатом ее часто является наличие избыточных (но безвредных) пар AddRef/Release.

1 Автор однажды уверовал, что раскраска (coloring) методов является наилучшим способом для обеспечения двух реализации IUnknown. Со временем способ, приведенный в данной книге, доказал свою большую пригодность и не меньшую эффективность.

1 Апартаменты являются более современным названием того, что в спецификации СОМ изначально именовалось контекстом исполнения (execution context).

1 Стоимость выполнения вызова метода из другого апартамента из-за непроизводительных издержек по переключению потоков может быть в тысячи раз выше, чем в случае, когда метод вызывается внутри апартамента.

1 Если импортирующий апартамент – тот, к которому принадлежит объект, то заместители не используются и импортированный указатель будут указывать прямо на объект.

2 Предпочтение UDP перед TCP (Transmission Control Protocol) – протоколом управления передачей – отдается из-за чрезмерных непроизводительных издержек при установке связи, обесчечиваемой TCP. СОМ, подобно DCE RPC, располагает информацию о своей безопасности и синхронизации протоколов ярусами в заголовках пакетов, используемых для передачи первого запроса RPC. Поскольку основанные на СОМ системы имеют тенденцию устанавливать и прерывать множество временных связей, то UDP является наилучшим выбором. При использовании передачи дейтаграмм, таких как UDP, динимическая библиотека RPC каждый раз выполняет коррекцию ошибок и алгоритмы контроля над потоком/перегрузкой.ТСР.

3 Один из администраторов программ фирмы Microsoft (Microsoft Program Manager), пожелавший остаться неизвестным, утверждает, что MEOW означает Microsoft Extended Object Wire (расширенная передачи объектов Microsoft). Но автор, несмотря на свою доверчивость, относится к этому скептически и желал бы выразить в адрес вышеупомянутого источника свои сомнения.

1 Может показаться странным, что глобальная переменная является интерфейсным указателем, который инициализирован в апартаменте программы записи, а используется из апартамента программы считывания. Об этой противоречивости упоминается в документации по CoMarshalInterThreadInterfaceInStream, где формулируется, что к результирующему интерфейсному указателю IStream можно обратиться из любого апартамента в процессе.

1 Логически администратор заглушек обрабатывает удаленные вызоны методов IUnknown. Фактически, однако, эта задача выполняется тем объектом апартамента, который выставляет интерфейс IRemUnknown.

1 MTS также требует, чтобы при создании маршалеров использовалась специальная динамическая библиотека. Интерпретируемый формат маршалера позволяет MTS получать информацию об интерфейсе.

2 Variants – это тип данных, который используется в средах подготовки сценариев (scripting environments) и обсуждался в главе 2.

3 Вероятно, в будущих реализациях библиотеки СОМ это ограничение будет снято. О деталях можете справиться в своей локальной документации.

1 Во время написания этого текста СОМ не поддерживал ни одного нереентерабельного типа апартаментов. Возможно, что будущие версии СОМ смогут предусмотреть новые типы апартаментов, не поддерживающие реентерабельность.

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату
×