⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 upnptools.h

📁 原来由英特尔制定的UPnP SDK的
💻 H
字号:
/******************************************************************************* * * Copyright (c) 2000-2003 Intel Corporation  * All rights reserved.  * * Redistribution and use in source and binary forms, with or without  * modification, are permitted provided that the following conditions are met:  * * * Redistributions of source code must retain the above copyright notice,  * this list of conditions and the following disclaimer.  * * Redistributions in binary form must reproduce the above copyright notice,  * this list of conditions and the following disclaimer in the documentation  * and/or other materials provided with the distribution.  * * Neither name of Intel Corporation nor the names of its contributors  * may be used to endorse or promote products derived from this software  * without specific prior written permission. *  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ******************************************************************************//** @name Optional Tool APIs *  The Linux SDK for UPnP Devices contains some additional, optional  *  utility APIs that can be helpful in writing applications using the  *  SDK. These additional APIs can be compiled out in order to save code  *  size in the SDK. Refer to the README for details. *//*! @{ */#ifndef UPNP_TOOLS_H#define UPNP_TOOLS_H#include "upnp.h"/* Function declarations only if tools compiled into the library */#if UPNP_HAVE_TOOLS#ifdef __cplusplusextern "C" {#endif/** {\bf UpnpResolveURL} combines a base URL and a relative URL into *  a single absolute URL.  The memory for {\bf AbsURL} needs to be *  allocated by the caller and must be large enough to hold the *  {\bf BaseURL} and {\bf RelURL} combined. * *  @return [int] An integer representing one of the following: *    \begin{itemize} *      \item {\tt UPNP_E_SUCCESS}: The operation completed successfully. *      \item {\tt UPNP_E_INVALID_PARAM}: {\bf RelURL} is {\tt NULL}. *      \item {\tt UPNP_E_INVALID_URL}: The {\bf BaseURL} / {\bf RelURL}  *              combination does not form a valid URL. *      \item {\tt UPNP_E_OUTOF_MEMORY}: Insufficient resources exist to  *              complete this operation. *    \end{itemize} */EXPORT_SPEC int UpnpResolveURL(    IN const char * BaseURL,  /** The base URL to combine. */    IN const char * RelURL,   /** The relative URL to {\bf BaseURL}. */    OUT char * AbsURL   /** A pointer to a buffer to store the                             absolute URL. */    );/** {\bf UpnpMakeAction} creates an action request packet based on its input  *  parameters (status variable name and value pair). Any number of input  *  parameters can be passed to this function but every input variable name  *  should have a matching value argument.  *    *  @return [IXML_Document*] The action node of {\bf Upnp_Document} type or  *                      {\tt NULL} if the operation failed. */EXPORT_SPEC IXML_Document* UpnpMakeAction(    IN const char * ActionName, /** The action name. */    IN const char * ServType,   /** The service type.  */    IN int NumArg,              /** Number of argument pairs to be passed. */     IN const char * Arg,        /** Status variable name and value pair. */    IN ...                   /*  Other status variable name and value pairs. */    );/** {\bf UpnpAddToAction} creates an action request packet based on its input  *  parameters (status variable name and value pair). This API is specially  *  suitable inside a loop to add any number input parameters into an existing *  action. If no action document exists in the beginning then a  *  {\bf Upnp_Document} variable initialized with {\tt NULL} should be passed  *  as a parameter. * *  @return [int] An integer representing one of the following: *    \begin{itemize} *      \item {\tt UPNP_E_SUCCESS}: The operation completed successfully. *      \item {\tt UPNP_E_INVALID_PARAM}: One or more of the parameters  *                                        are invalid. *      \item {\tt UPNP_E_OUTOF_MEMORY}: Insufficient resources exist to  *              complete this operation. *    \end{itemize} */EXPORT_SPEC int UpnpAddToAction(        IN OUT IXML_Document ** ActionDoc, 	                              /** A pointer to store the action 				          document node. */        IN const char * ActionName,   /** The action name. */        IN const char * ServType,     /** The service type.  */        IN const char * ArgName,      /** The status variable name. */        IN const char * ArgVal        /** The status variable value.  */        );/** {\bf UpnpMakeActionResponse} creates an action response packet based  *  on its output parameters (status variable name and value pair). Any   *  number of input parameters can be passed to this function but every output *  variable name should have a matching value argument.  *    *  @return [IXML_Document*] The action node of {\bf Upnp_Document} type or  *                           {\tt NULL} if the operation failed. */EXPORT_SPEC IXML_Document* UpnpMakeActionResponse(    IN const char * ActionName, /** The action name. */    IN const char * ServType,   /** The service type.  */    IN int NumArg,              /** The number of argument pairs passed. */      IN const char * Arg,        /** The status variable name and value pair. */    IN ...                   /*  Other status variable name and value pairs. */    );/** {\bf UpnpAddToActionResponse} creates an action response *  packet based on its output parameters (status variable name *  and value pair). This API is especially suitable inside *  a loop to add any number of input parameters into an existing action  *  response. If no action document exists in the beginning, a  *  {\bf Upnp_Document} variable initialized with {\tt NULL} should be passed  *  as a parameter. * *  @return [int] An integer representing one of the following: *    \begin{itemize} *      \item {\tt UPNP_E_SUCCESS}: The operation completed successfully. *      \item {\tt UPNP_E_INVALID_PARAM}: One or more of the parameters  *                                        are invalid. *      \item {\tt UPNP_E_OUTOF_MEMORY}: Insufficient resources exist to  *              complete this operation. *    \end{itemize} */EXPORT_SPEC int UpnpAddToActionResponse(        IN OUT IXML_Document ** ActionResponse, 	                                   /** Pointer to a document to 					       store the action document 					       node. */        IN const char * ActionName,        /** The action name. */        IN const char * ServType,          /** The service type.  */        IN const char * ArgName,           /** The status variable name. */        IN const char * ArgVal             /** The status variable value.  */        );/** {\bf UpnpAddToPropertySet} can be used when an application needs to  *  transfer the status of many variables at once. It can be used  *  (inside a loop) to add some extra status variables into an existing *  property set. If the application does not already have a property *  set document, the application should create a variable initialized  *  with {\tt NULL} and pass that as the first parameter. *   *  @return [int] An integer representing one of the following: *    \begin{itemize} *      \item {\tt UPNP_E_SUCCESS}: The operation completed successfully. *      \item {\tt UPNP_E_INVALID_PARAM}: One or more of the parameters  *                                        are invalid. *      \item {\tt UPNP_E_OUTOF_MEMORY}: Insufficient resources exist to  *              complete this operation. *    \end{itemize} * */EXPORT_SPEC int UpnpAddToPropertySet(    IN OUT IXML_Document **PropSet,                                      /** A pointer to the document containing 				      the property set document node. */    IN const char * ArgName,      /** The status variable name. */      IN const char * ArgVal        /** The status variable value.  */    );/** {\bf UpnpCreatePropertySet} creates a property set   *  message packet. Any number of input parameters can be passed   *  to this function but every input variable name should have  *  a matching value input argument. *   *  @return [IXML_Document*] {\tt NULL} on failure, or the property-set  *                           document node. * */EXPORT_SPEC IXML_Document* UpnpCreatePropertySet(    IN int NumArg,        /** The number of argument pairs passed. */    IN const char* Arg,   /** The status variable name and value pair. */    IN ...    );/** {\bf UpnpGetErrorMessage} converts an SDK error code into a  *  string error message suitable for display.  The memory returned *  from this function should NOT be freed. * *  @return [char*] An ASCII text string representation of the error message  *                  associated with the error code.  */EXPORT_SPEC const char * UpnpGetErrorMessage(        int errorcode  /** The SDK error code to convert. */        );/*! @} */#ifdef __cplusplus}#endif#endif /* UPNP_HAVE_TOOLS */#endif /* UPNP_TOOLS_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -