1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#ifndef __SAKEREQUESTINTERNAL_H__
#define __SAKEREQUESTINTERNAL_H__
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#include "sakeMain.h"
#include "../common/gsSoap.h"
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#if defined(__cplusplus)
extern "C" {
#endif
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#define SAKEI_REQUEST_SAFE_MALLOC(dest, type) SAKEI_REQUEST_SAFE_MALLOC_ARRAY(dest, type, 1)
#define SAKEI_REQUEST_SAFE_MALLOC_ARRAY(dest, type, num) {\
dest = (type*)gsimalloc(sizeof(type)*num); /*malloc*/ \
if(!dest) goto out_of_mem_cleanup; /*check*/ \
memset(dest, 0, sizeof(type)*num); } /*zero*/
#define SAKEI_FUNC_NAME_STRINGS(func) func,\
"SOAPAction: \"http://gamespy.net/sake/" func "\"",\
func "Response",\
func "Result"
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
typedef struct
{
size_t mSakeOutputSize;
const char *mFuncName;
const char *mSoapAction;
const char *mResponseTag;
const char *mResultTag;
SAKEStartRequestResult (*mValidateInputFunc)(SAKERequest request);
SAKEStartRequestResult (*mFillSoapRequestFunc)(SAKERequest request);
SAKERequestResult (*mProcessSoapResponseFunc)(SAKERequest request);
void (*mFreeDataFunc)(SAKERequest request);
} SAKEIRequestInfo;
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
SAKEStartRequestResult SAKE_CALL sakeiStartRequest(SAKERequest request, SAKEIRequestInfo * info);
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#if defined(__cplusplus)
} // extern "C"
#endif
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#endif // __SAKEREQUESTINTERNAL_H__
|