openmohaa/code/gamespy/GP/gpiBuffer.h
2023-02-04 21:00:01 +01:00

167 lines
2.7 KiB
C

/*
gpiBuffer.h
GameSpy Presence SDK
Dan "Mr. Pants" Schoenblum
Copyright 1999-2007 GameSpy Industries, Inc
devsupport@gamespy.com
***********************************************************************
Please see the GameSpy Presence SDK documentation for more information
**********************************************************************/
#ifndef _GPIBUFFER_H_
#define _GPIBUFFER_H_
//INCLUDES
//////////
#include "gpi.h"
//TYPES
///////
// A buffer.
////////////
typedef struct
{
char * buffer;
int size;
int len;
int pos;
} GPIBuffer;
typedef struct GPIPeer_s * GPIPeer_st;
//FUNCTIONS
///////////
GPResult
gpiAppendCharToBuffer(
GPConnection * connection,
GPIBuffer * outputBuffer,
char c
);
GPResult
gpiAppendStringToBufferLen(
GPConnection * connection,
GPIBuffer * outputBuffer,
const char * string,
int stringLen
);
GPResult
gpiAppendStringToBuffer(
GPConnection * connection,
GPIBuffer * outputBuffer,
const char * buffer
);
GPResult gpiAppendShortToBuffer(
GPConnection * connection,
GPIBuffer * outputBuffer,
short num
);
GPResult gpiAppendUShortToBuffer(
GPConnection * connection,
GPIBuffer * outputBuffer,
unsigned short num
);
GPResult
gpiAppendIntToBuffer(
GPConnection * connection,
GPIBuffer * outputBuffer,
int num
);
GPResult
gpiAppendUIntToBuffer(
GPConnection * connection,
GPIBuffer * outputBuffer,
unsigned int num
);
GPResult
gpiSendOrBufferChar(
GPConnection * connection,
GPIPeer_st peer,
char c
);
/*
GPResult
gpiSendOrBufferStringLen(
GPConnection * connection,
GPIPeer_st peer,
const char * string,
int stringLen
);
*/
GPResult
gpiSendOrBufferStringLenToPeer(
GPConnection * connection,
GPIPeer_st peer,
const char * string,
int stringLen
);
GPResult
gpiSendOrBufferString(
GPConnection * connection,
GPIPeer_st peer,
char * string
);
GPResult
gpiSendOrBufferInt(
GPConnection * connection,
GPIPeer_st peer,
int num
);
GPResult
gpiSendOrBufferUInt(
GPConnection * connection,
GPIPeer_st peer,
unsigned int num
);
GPResult
gpiSendFromBuffer(
GPConnection * connection,
SOCKET sock,
GPIBuffer * outputBuffer,
GPIBool * connClosed,
GPIBool clipSentData,
char id[3]
);
GPResult
gpiRecvToBuffer(
GPConnection * connection,
SOCKET sock,
GPIBuffer * inputBuffer,
int * bytesRead,
GPIBool * connClosed,
char id[3]
);
GPResult
gpiReadMessageFromBuffer(
GPConnection * connection,
GPIBuffer * inputBuffer,
char ** message,
int * type,
int * len
);
GPResult
gpiClipBufferToPosition(
GPConnection * connection,
GPIBuffer * buffer
);
GPResult gpiSendBufferToPeer(GPConnection * connection, unsigned int ip, unsigned short port,
GPIBuffer * outputBuffer, GPIBool *closed, GPIBool clipSentData);
#endif