uIP 1.0
C:/asm/STM32-ethernet/ENC28J60prj/uip-master/apps/webserver/httpd-cgi.h
См. документацию.
00001 /**
00002  * \addtogroup httpd
00003  * @{
00004  */
00005 
00006 /**
00007  * \file
00008  *         Заголовочный файл скриптового интерфейса Web-сервера
00009  * \author
00010  *         Adam Dunkels <adam@sics.se>
00011  *
00012  */
00013 
00014 
00015 
00016 /*
00017  * Copyright (c) 2001, Adam Dunkels.
00018  * Все права зарезервированы. *
00019  * Повторное распространение, использование в исходном и двоичном виде,
00020  * с модификацией или без - разрешается, если выполняются следующие
00021  * условия:
00022  * 1. Распространение исходного кода должно сохранить вышеуказанную пометку
00023  *    копирайта, этот список условий и следующую правовую оговорку.
00024  * 2. Распространение исходного кода должно сохранить вышеуказанную пометку
00025  *    копирайта, этот список условий и следующую правовую оговорку в
00026  *    документации и/или других материалах, которые будут предоставлены
00027  *    вместе с распространяемыми материалами.
00028  * 3. Имя автора не может использоваться, чтобы подтвердить или продвинуть
00029  *    продукты, написанные с использованием этого программного обеспечения
00030  *    без специального на то разрешения.
00031  *
00032  * ЭТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ АВТОРОМ ``КАК ЕСТЬ'', БЕЗ
00033  * КАКОЙ-ЛИБО ЛЮБОЙ РАСШИРЕННОЙ ИЛИ ПОДРАЗУМЕВАЕМОЙ ГАРАНТИИ, ВКЛЮЧАЯ,
00034  * НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМ, ГАРАНТИИ ВЫСОКОГО СПРОСА И ПРИГОДНОСТИ
00035  * ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. АВТОР НИ ПРИ КАКИХ УСЛОВИЯХ НЕ ОТВЕТСТВЕНЕН
00036  * ЗА ЛЮБЫЕ УБЫТКИ - ПРЯМЫЕ, КОСВЕННЫЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ, ОБРАЗЦОВЫЕ
00037  * ИЛИ ПОСЛЕДОВАТЕЛЬНЫЕ (ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМ, ТРЕБОВАНИЯ
00038  * ЗАМЕНЫ ТОВАРА ИЛИ СЕРВИСА; ПОТЕРИ ИСПОЛЬЗОВАНИЯ, ДАННЫХ ИЛИ ВЫГОДЫ;
00039  * ИЛИ ПРЕКРАЩЕНИЕ БИЗНЕСА), ОДНАКО ВЫЗВАННЫЕ ПО ЛЮБОЙ ТЕОРИИ ОТВЕТСТВЕННОСТИ,
00040  * ЛИБО В КОНТРАКТЕ, ПРЯМОЙ ОТВЕТСТВЕННОСТИ, ЛИБО В НАРУШЕНИИ ЗАКОННЫХ ПРАВ
00041  * (ВКЛЮЧАЯ ТАК ИЛИ ИНАЧЕ НЕБРЕЖНОСТЬ), ВОЗНИКАЮЩИЕ ВСЕГДА ИЗ ИСПОЛЬЗОВАНИЯ
00042  * ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ДАЖЕ ЕСЛИ БЫЛО ПРЕДУПРЕЖДЕНИЕ О ВОЗМОЖНОСТИ
00043  * ТАКОГО ПОВРЕЖДЕНИЯ.
00044  *
00045  * Этот файл является частью стека uIP TCP/IP.
00046  *
00047  * $Id: httpd-cgi.h,v 1.2 2006/06/11 21:46:38 adam Exp $
00048  *
00049  */
00050 
00051 #ifndef __HTTPD_CGI_H__
00052 #define __HTTPD_CGI_H__
00053 
00054 #include "psock.h"
00055 #include "httpd.h"
00056 
00057 typedef PT_THREAD((* httpd_cgifunction)(struct httpd_state *, char *));
00058 
00059 httpd_cgifunction httpd_cgi(char *name);
00060 
00061 struct httpd_cgi_call {
00062   const char *name;
00063   const httpd_cgifunction function;
00064 };
00065 
00066 /**
00067  * \brief      Декларация фукнции HTTPD CGI
00068  * \param name Переменная C функции
00069  * \param str  Строковое имя функции, используемое в файле скрипта
00070  * \param function Указатель на функцию, которая реализована
00071  *
00072  *             Этот макрос используется для декларирования HTTPD CGI
00073  *             функции. Эта функция затем добавляется к списку функций
00074  *             HTTPD CGI с помощью функции httpd_cgi_add().
00075  *
00076  * \hideinitializer
00077  */
00078 #define HTTPD_CGI_CALL(name, str, function) \
00079 static PT_THREAD(function(struct httpd_state *, char *)); \
00080 static const struct httpd_cgi_call name = {str, function}
00081 
00082 void httpd_cgi_init(void);
00083 #endif /* __HTTPD_CGI_H__ */
00084 
00085 /** @} */