rtxSOAP.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2003-2010 Objective Systems, Inc.
00003  *
00004  * This software is furnished under a license and may be used and copied
00005  * only in accordance with the terms of such license and with the
00006  * inclusion of the above copyright notice. This software or any other
00007  * copies thereof may not be provided or otherwise made available to any
00008  * other person. No title to and ownership of the software is hereby
00009  * transferred.
00010  *
00011  * The information in this software is subject to change without notice
00012  * and should not be construed as a commitment by Objective Systems, Inc.
00013  *
00014  * PROPRIETARY NOTICE
00015  *
00016  * This software is an unpublished work subject to a confidentiality agreement
00017  * and is protected by copyright and trade secret law.  Unauthorized copying,
00018  * redistribution or other use of this work is prohibited.
00019  *
00020  * The above notice of copyright on this source code product does not indicate
00021  * any actual or intended publication of such source code.
00022  *
00023  *****************************************************************************/
00027 #ifndef _RTXSOAP_H_
00028 #define _RTXSOAP_H_
00029 
00030 #include "rtxsrc/rtxCommon.h"
00031 #include "rtxsrc/rtxSocket.h"
00032 
00033 #define HTTP_VERSION "1.1"
00034 
00035 typedef enum { OSSOAPV1, OSSOAPV2 } OSSoapVersion;
00036 
00037 typedef struct OSSOAPCONN {
00038    OSCTXT*      pctxt;
00039    OSRTSOCKET   socket;
00040    OSSoapVersion soapVersion;
00041    const char*  endpoint;
00042    char*        host;
00043    int          port;
00044    const char*  path;
00045    const char*  soapAction;
00046    OSBOOL       keepAlive;
00047    OSBOOL       chunked;
00048    OSOCTET      spare[2];  /* maintain word boundary */
00049    size_t       contentLength;
00050 } OSSOAPCONN;
00051 
00052 #ifdef __cplusplus
00053 extern "C" {
00054 #endif
00055 
00065 EXTERNRT int rtxSoapInitConn
00066 (OSSOAPCONN* pSoapConn, OSCTXT* pctxt, OSSoapVersion soapv, const char* url);
00067 
00076 EXTERNRT int rtxSoapAcceptConn
00077 (OSRTSOCKET listenSocket, OSSOAPCONN* pSoapConn);
00078 
00087 EXTERNRT int rtxSoapConnect (OSSOAPCONN* pSoapConn);
00088 
00098 EXTERNRT int rtxSoapRecvHttp (OSSOAPCONN* pSoapConn);
00099 
00113 EXTERNRT int rtxSoapRecvHttpContent
00114 (OSSOAPCONN* pSoapConn, OSOCTET** ppbuf);
00115 
00116 EXTERNRT int rtxSoapRecvHttpLine
00117 (OSSOAPCONN* pSoapConn, char* lbuf, size_t lbufsiz);
00118 
00129 EXTERNRT int rtxSoapSendHttp
00130 (OSSOAPCONN* pSoapConn, const OSUTF8CHAR* soapMsg);
00131 
00132 EXTERNRT int rtxHttpParseHdr
00133 (OSSOAPCONN* pSoapConn, const char* key, const char* value);
00134 
00135 EXTERNRT int rtxHttpPost (OSSOAPCONN* pSoapConn, size_t count);
00136 
00137 EXTERNRT int rtxHttpPostHdr
00138 (OSSOAPCONN* pSoapConn, const char* key, const char* value);
00139 
00140 EXTERNRT int rtxHttpTagCmp (const char *s, const char *t);
00141 
00142 #ifdef __cplusplus
00143 }
00144 #endif
00145 
00146 #endif /* _RTXSOAP_H_ */