Операционные системы. Учебное пособие. Марапулец Ю.В. - 203 стр.

UptoLike

Составители: 

XTYP_REQUEST Подключение с необязательным ответом; передача одного элемен-
та данных
XTYP_ADVSTART Подключение с полуобязательным или обязательным ответом; пе-
редача данных и обновлений
XTYP_POKE Запись (прием) данных от клиента
XTYP_EXECUTE Выполнение команды или действия
8.4.3. Механизмы обработки транзакций
Обработка транзакций с необязательным ответом. Когда сервер получает со-
общение XTYP_REQUEST, он читает имена темы и элемента данных из двух строковых
параметров и проверяет запрашиваемый формат данных. Если сервер распознает эле-
мент и поддерживает данный формат, он создает объект данных, в который записывает
текущее значение элемента, и возвращает дескриптор этого объекта. Если сервер не
поддерживает данный формат или не распознает элемент, возвращается значение NULL.
Сервер, который не поддерживает транзакции данного типа, во избежание получе-
ния нежелательных сообщений XTYP_REQUEST должен установить в функции DdeIni-
tialize флаг CBF_FAIL_REQUESTS.
Значение, переданное сервером, возвращается клиенту в виде результата функции
DdeClientTransaction. Типичная схема такого взаимодействия представлена на рис. 8.1
[12]. Условно его можно разбить на три этапа.
1. Клиент посылает серверу запрос через DDEML.
2. Сервер расшифровывает запрос и формирует пакет запрашиваемых данных.
3. Клиент получает ответ и расшифровывает его.
Рис.8.1. Последовательность событий, происходящих после запроса клиентом элемента данных
Когда клиент делает запрос о возможности получить извещение об обновлении
данных, функция обратного вызова сервера принимает сообщение XTYP_ADVSTART.
Если сервер распознает имена темы и элемента данных, а также поддерживает запраши-
ваемый формат, он возвращает значение TRUE,
подтверждая факт установления под-
ключения. Если одно из указанных условий не выполняется, сервер возвращает значение
FALSE,
предотвращающее установление подключения.
Сообщение XTYP_ADVSTART
не указывает серверу, с каким ответом, обязатель-
ным или полуобязательным, будет это подключение.
205
XTYP_REQUEST  Подключение с необязательным ответом; передача одного элемен-
              та данных
XTYP_ADVSTART Подключение с полуобязательным или обязательным ответом; пе-
              редача данных и обновлений
XTYP_POKE     Запись (прием) данных от клиента
XTYP_EXECUTE  Выполнение команды или действия

     8.4.3. Механизмы обработки транзакций

       Обработка транзакций с необязательным ответом. Когда сервер получает со-
общение XTYP_REQUEST, он читает имена темы и элемента данных из двух строковых
параметров и проверяет запрашиваемый формат данных. Если сервер распознает эле-
мент и поддерживает данный формат, он создает объект данных, в который записывает
текущее значение элемента, и возвращает дескриптор этого объекта. Если сервер не
поддерживает данный формат или не распознает элемент, возвращается значение NULL.
       Сервер, который не поддерживает транзакции данного типа, во избежание получе-
ния нежелательных сообщений XTYP_REQUEST должен установить в функции DdeIni-
tialize флаг CBF_FAIL_REQUESTS.
       Значение, переданное сервером, возвращается клиенту в виде результата функции
DdeClientTransaction. Типичная схема такого взаимодействия представлена на рис. 8.1
[12]. Условно его можно разбить на три этапа.
1. Клиент посылает серверу запрос через DDEML.
2. Сервер расшифровывает запрос и формирует пакет запрашиваемых данных.
3. Клиент получает ответ и расшифровывает его.




   Рис.8.1. Последовательность событий, происходящих после запроса клиентом элемента данных

     Когда клиент делает запрос о возможности получить извещение об обновлении
данных, функция обратного вызова сервера принимает сообщение XTYP_ADVSTART.
Если сервер распознает имена темы и элемента данных, а также поддерживает запраши-
ваемый формат, он возвращает значение TRUE, подтверждая факт установления под-
ключения. Если одно из указанных условий не выполняется, сервер возвращает значение
FALSE, предотвращающее установление подключения.
     Сообщение XTYP_ADVSTART не указывает серверу, с каким ответом, обязатель-
ным или полуобязательным, будет это подключение.



                                             205