Architecture Net


Передача параметров серверному обработчику


Файл pass_parameter. srf показывает, как можно передавать параметры методу замены обработчика запросов Web-приложения (pass parameter как раз и означает "передать параметр"). Класс обработчика запросов с помощью функций грамматического разбора преобразует первоначальные параметры, указанные в . srf-файле и имеющие строковый тип (string), в тот тип данных, который требуется методу обработчика запросов. В классе обработчика запросов сигнатура такого рода функции должна выглядеть следующим образом:

HTTP_CODE parSeFunction(
IAtlMemMgr* pMemoryManager,
LPCSTR szArgumentData,
parameterType** ppArgument);

Память, используемая для хранения преобразованного параметра, должна быть размещена с помощью pMemoryManager->Allocate (memory manager — "диспетчер памяти", allocate— "разместить"). Эту память не надо освобождать явным образом, потому что в нужное время она автоматически освобождается каркасом ATL Server. Исходные строковые (типа string) данные, передаваемые через параметр, выбираются из szArgumentData (данные аргумента). Преобразованный параметр передается методу обработчика запросов и затем сохраняется с помощью ppArgument (argument— "аргумент"). Для параметра вы можете определить свой собственный тип данных с помощью какой-либо структуры или использовать типы данных, указанные ниже .

  • bool (логический, булев);
  • char (символ);
  • unsigned char (символ без знака);
  • short (короткий);
  • unsigned short (короткий без знака);
  • int;
  • unsigned int (int без знака);
  • _int64;
  • unsigned_int64(_int64 без знака);
  • double (с удвоенной точностью);
  • float (с плавающей точкой).

Затем, как показано в следующей сигнатуре, аргумент принимается из класса обработки запросов соответствующим методом замены:

HTTP_CODE replacementMethod(
parameterType* pArgument);

Параметр pArgument должен указывать на тот тип данных, который используется в соответствующей функции грамматического разбора.


Связывать друг с другом метод замены и соответствующую ему функцию грамматического разбора можно с помощью одного из двух приемов. В соответствии с первым из них, если parameterType (тип параметра) является одним из типов, поддерживаемых для атрибута tag_name, то имя функции грамматического разбора можно пропускать, и она будет автоматически связываться с методом замены в результате учета типа.




- Начало -  - Назад -  - Вперед -



Книжный магазин