IInternetConnectionEndPoint: различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
(Новая страница: «{{IInternetConnectionEndPoint_brief}} {{IInternetConnectionEndPoint methods|Собственные методы}}»)
 
 
Строка 1: Строка 1:
{{IInternetConnectionEndPoint_brief}}
{{interface|IInternetConnectionEndPoint}}
Интерфейс реализуется точкой доступа к удаленной стороне, соединение с которой устанавливается по некоторому интернет-протоколу [https://en.wikipedia.org/wiki/Transport_layer транспортного уровня OSI].


{{IInternetConnectionEndPoint methods|Собственные методы}}
Реализация точки доступа агрегирует некоторые реализации накопителей последовательных данных, которые, в свою очередь, реализуют интерфейс [[IConsequentDataStorage]]. Доступ к такой реализации осуществляется вызовом метода [[IInternetConnectionEndPoint::GetConnectionHandler|GetConnectionHandler]].
 
[[Файл:IInternetConnectionEndPoint-relations.png|800px|thumb|right|Отношения интерфейса [[IInternetConnectionEndPoint]]. На рисунке предполагается использование байтового интернет-протокола, этим обусловлена поддержка байтовых потоков ввода-вывода [[IInternetConnectionInputByteStream]] и [[IInternetConnectionOutputByteStream]]. Если реализация опирается не на байт-ориентированный транспортный протокол, а, например, на гипертекстовый протокол, поддержка байтовых потоков может отсутствовать: данная ситуация показана на рисунке серыми пунктирными стрелками.]]
 
То, на каком этапе устанавливается соединение, определяется реализацией точки доступа.
 
Для создания точек доступа по протоколу TCP используются функции [[CreateTCPServer]] и  [[CreateMultipointTCPServer]] (для создания сервера) и [[CreateTCPClient]] для создания клиента. Соединение устанавливается при первом чтении или записи клиентом в потоки [[IInputByteStream]] или [[IOutputByteStream]] соответственно.
 
Для доступа к потокам чтения и записи используется интерфейс [[IConsequentDataStorage]], получаемый с помощью метода [[IInternetConnectionEndPoint::GetConnectionHandler|GetConnectionHandler]], и его методы [[IConsequentDataStorage::Read|Read]] и [[IConsequentDataStorage::Write|Write]]. Для получения более конкретного интерфейса потока используется метод [[IStream::RepresentAs]], наследуемый интерфейсами [[IInputStream]] и [[IOutputStream]], реализация которых получается с помощью методов [[IConsequentDataStorage::Read]] и [[IConsequentDataStorage::Write]] соответственно. В частности, для байт-ориентированных протоколов транспортного уровня реализуется поддержка интерфейсов [[IInternetConnectionInputByteStream]] и [[IInternetConnectionOutputByteStream]] для чтения и записи байт соответственно.
 
Для языка C++ существуют [[Адаптер программного интерфейса|адаптеры]] [[InternetConnectionEndPointRef]] и [[InternetConnectionEndPointOwn]], которые облегчают использование точек доступа, реализуя методы, на которые отображены методы интерфейса [[IInternetConnectionEndPoint]].
{{sa_list_begin}}
{{sa_list_add|IConsequentDataStorage}}
{{sa_list_add|IInternetConnectionInputByteStream}}
{{sa_list_add|IInternetConnectionOutputByteStream}}
{{sa_list_add|InternetConnectionEndPointRef}}
{{sa_list_add|InternetConnectionEndPointOwn}}
{{sa_list_end}}

Текущая версия на 21:04, 19 августа 2019

Точка доступа к удаленному узлу.

Методы
МетодОписание
AddRefИнкрементирует счетчик ссылок на реализацию.
GetConnectionHandlerВозвращает агрегируемую реализацию методов интерфейса IConsequentDataStorage, связанную с одним интернет-соединением между двумя сторонами.
CancelOperationsПрерывает соединение с использованием протокола разрыва, если это возможно, иначе - жестко, и разблокирует любые потоки выполнения, заблокированные доступом к удаленному узлу через связанные с точкой доступа потоки чтения и записи.
GetStatusВозвращает статус соединения с удаленными узлами.
GetOptionВозвращает значение выбранного параметра интернет соединения.
Наследует открыто
КлассОписание
Базовый интерфейс для всех программных интерфейсов.

Интерфейс реализуется точкой доступа к удаленной стороне, соединение с которой устанавливается по некоторому интернет-протоколу транспортного уровня OSI.

Реализация точки доступа агрегирует некоторые реализации накопителей последовательных данных, которые, в свою очередь, реализуют интерфейс IConsequentDataStorage. Доступ к такой реализации осуществляется вызовом метода GetConnectionHandler.

Отношения интерфейса IInternetConnectionEndPoint. На рисунке предполагается использование байтового интернет-протокола, этим обусловлена поддержка байтовых потоков ввода-вывода IInternetConnectionInputByteStream и IInternetConnectionOutputByteStream. Если реализация опирается не на байт-ориентированный транспортный протокол, а, например, на гипертекстовый протокол, поддержка байтовых потоков может отсутствовать: данная ситуация показана на рисунке серыми пунктирными стрелками.

То, на каком этапе устанавливается соединение, определяется реализацией точки доступа.

Для создания точек доступа по протоколу TCP используются функции CreateTCPServer и CreateMultipointTCPServer (для создания сервера) и CreateTCPClient для создания клиента. Соединение устанавливается при первом чтении или записи клиентом в потоки IInputByteStream или IOutputByteStream соответственно.

Для доступа к потокам чтения и записи используется интерфейс IConsequentDataStorage, получаемый с помощью метода GetConnectionHandler, и его методы Read и Write. Для получения более конкретного интерфейса потока используется метод IStream::RepresentAs, наследуемый интерфейсами IInputStream и IOutputStream, реализация которых получается с помощью методов IConsequentDataStorage::Read и IConsequentDataStorage::Write соответственно. В частности, для байт-ориентированных протоколов транспортного уровня реализуется поддержка интерфейсов IInternetConnectionInputByteStream и IInternetConnectionOutputByteStream для чтения и записи байт соответственно.

Для языка C++ существуют адаптеры InternetConnectionEndPointRef и InternetConnectionEndPointOwn, которые облегчают использование точек доступа, реализуя методы, на которые отображены методы интерфейса IInternetConnectionEndPoint.

См. также
IConsequentDataStorageИнтерфейс для чтения и записи в накопитель последовательно расположенных данных.
IInternetConnectionInputByteStreamВходной поток байт, связанный с IP-соединением.
IInternetConnectionOutputByteStreamВыходной поток байт, связанный с IP-соединением.
InternetConnectionEndPointRefСсылочный адаптер, определенный над интерфейсом IInternetConnectionEndPoint.
InternetConnectionEndPointOwnВладеющий адаптер, определенный над интерфейсом IInternetConnectionEndPoint.