Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Функції – обробники.

Таблиці трансляції.

Таблиця трансляції є структурою, подібною таблиці повідомлень MFC, і використовується методом CallFunction() для перенаправлення запитів клієнтів функціям – обробникам. У кожній динамічній бібліотеці ISA, що використовує класи MFC, повинна бути визначена рівно одна таблиця трансляції.

Таблиця трансляції починається з макрокоманди BEGIN_PARSE_MAP, яка приймає в якості параметрів ім'я класу, що визначає таблицю, і його базового класу (звичайно CHttpServer), а закінчується макрокомандою END_PARSE_MAP, єдиним параметром якої є ім'я класу, що визначає таблицю.

Між макрокомандами початку і кінця таблиці вставляються оператори обробки елементів запиту – макрокоманди ON_PARSE_COMMAND, параметрами яких є ім'я метода, ім'я класу, в якому визначено цей метод, і список констант, що є аргументами функції – обробника.

 

ITS_PSTR Покажчик на рядок.
ITS_I2 Ціле число довжиною в 2 байти.
ITS_I4 Ціле число довжиною в 4 байти.
ITS_R4 Число з плаваючою крапкою.
ITS_R8 Число з плаваючою точкою подвійної точності.
ITS_EMPTY Обробник не приймає додаткових аргументів.

 

Розглянемо приклад таблиці трансляції:

 

BEGIN_PARSE_MAP(CMyISA, CHttpServer)

ON_PARSE_COMMAND(myFunc1, CMyISA, ITS_I2 ITS_PSTR)

ON_PARSE_COMMAND_PARAMS(“param1 param2=default”)

ON_PARSE_COMMAND(myFunc2, CMyISA, ITS_I4)

ON_PARSE_COMMAND_PARAMS(“myIndex=123”)

DEFAULT_PARSE_COMMAND(myFunc1, CMyISA)

END_PARSE_MAP(CMyISA)

 

Макрокоманда ON_PARSE_COMMAND_PARAMS, яка використовується в приведеному нижче прикладі, застосовується для завдання параметрів команди, поміщеної в операторі ON_PARSE_COMMAND безпосередньо перед ON_PARSE_COMMAND_PARAMS.

Ця макрокоманда використовується також для привласнення параметрам значень за замовчуванням. У даному прикладі, якщо в запиті є команда myFunc1, вона повинна мати параметр з ім'ям param1. Якщо параметр param2 відсутній, йому привласнюється значення за замовчуванням.

В даному прикладі також демонструється використання макрокоманди DEFAULT_PARSE_COMMAND, яка задає обробник (і його клас) для тих випадків, коли запит не містить команд.

 

Функції – обробники, вказані в макрокомандах ON_PARSE_COMMAND, повинні бути методами класу, похідного від CHttpServer. Всі вони повинні повертати void і приймати в якості першого параметра покажчик на об'єкт CHttpServerContext, а також додаткові параметри, перераховані в макрокоманді ON_PARSE_COMMAND.

Розглянемо наступний оператор таблиці трансляції:

 

ON_PARSE_COMMAND(foo, CMyISA, ITS_I4 ITS_PSTR)

 

Прототип функції – обробника повинен виглядати таким чином:

 

void CMyISA::foo(CHttpServerContext* pCtxt, int param1, LPTSTR pszParam2);

 

OnParseError() Викликається функціями бібліотеки MFC для створення потоку HTML, що повертається клієнту, на основі набору кодів помилок. Якщо необхідно генерувати повідомлення про помилки, відмінні від стандартних, цей метод слід перекрити.
ConstructStream() Викликається бібліотекою MFC для створення нового об'єкту CHtmlStream.
StartContent() Використовується для вставки дескрипторів "<Body>" і "<HTML>" в потік HTML, що повертається клієнту.
EndContent() Використовується для вставки дескрипторів "</Body>" і "</HTML>" в потік HTML, що повертається клієнту.
WriteTitle() Вставляє в потік HTML, що повертається клієнту, рядок заголовка, отриманий від функції GetTitle() (рядок, розміщений між дескрипторами "<Title>" і "</Title>").
GetTitle() Викликається бібліотекою MFC для отримання заголовка, який потім вставляється в потік HTML, що повертається клієнту. Для визначення нестандартного заголовка цей метод можна перекрити.
AddHeader() Додає в потік HTML, що повертається клієнту, додаткові заголовки.

 


Читайте також:

  1. Адвокатура в Україні: основні завдання і функції
  2. Алгоритм знаходження ДДНФ (ДКНФ) для даної булевої функції
  3. Але відмінні від значення функції в точці або значення не існує, то точка називається точкою усувного розриву функції .
  4. Аналіз коефіцієнтів цільової функції
  5. АРХІВНІ ДОВІДНИКИ В СИСТЕМІ НДА: ФУНКЦІЇ ТА СТРУКТУРА
  6. Асимптоти графіка функції
  7. Базальні ядра, їх функції, симптоми ураження
  8. Базові функції, логічні функції
  9. Банки як провідні суб’єкти фінансового посередництва. Функції банків.
  10. Банківська система та її основні функції
  11. Банківська система та її структура. Функції Центрального банку.
  12. Банківська система: сутність, принципи побудови та функції. особливості побудови банківської системи в Україн




Переглядів: 627

<== попередня сторінка | наступна сторінка ==>
Клас CHttpServer. | Клас CDataBase.

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.051 сек.