00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef _SINETWORKMESSAGES_H_
00013 #define _SINETWORKMESSAGES_H_
00014
00015 #include <SIBCUtil.h>
00016
00017 #define SI_NETMSG_FREAD_PACKET_SIZE 256
00018 #define SI_NET_FILE_TRANSFER_ATTEMPTS 5
00019
00020
00021
00022
00023
00024 enum
00025 {
00026 SI_NETMSG_LOADFILE,
00027 SI_NETMSG_MERGEFILE,
00028 SI_NETMSG_SETHOSTNAME,
00029
00030 SI_NETMSG_FILEOPEN,
00031 SI_NETMSG_FILEOPEN_ANSWER,
00032
00033 SI_NETMSG_EOF,
00034 SI_NETMSG_EOF_ANSWER,
00035
00036 SI_NETMSG_FGETC,
00037 SI_NETMSG_FGETC_ANSWER,
00038
00039 SI_NETMSG_FILECLOSE,
00040 SI_NETMSG_FILECLOSE_ANSWER,
00041
00042 SI_NETMSG_FTELL,
00043 SI_NETMSG_FTELL_ANSWER,
00044
00045 SI_NETMSG_FSEEK,
00046 SI_NETMSG_FSEEK_ANSWER,
00047
00048 SI_NETMSG_FREAD,
00049 SI_NETMSG_FREAD_PACKET,
00050 SI_NETMSG_FREAD_END,
00051
00052 SI_NETMSG_FREAD_CONFIRM,
00053
00054 SI_NETMSG_SETPARAMVALUE,
00055 SI_NETMSG_GETPARAMHANDLE,
00056 SI_NETMSG_PARAMHANDLE,
00057
00058 SI_NETMSG_CMDEND
00059
00060 };
00061
00062 #if defined(_WIN32) || defined(_WIN32_WCE) || defined(_XBOX)
00063 #pragma pack( push )
00064 #pragma pack( 1 )
00065 #elif defined(CODEWARRIOR)
00066 #pragma options align= native
00067 #endif
00068
00069 struct SINetMsgLoadFile
00070 {
00071 SI_Char l_szFilename[128];
00072 };
00073
00074 struct SINetMsgSetParamValue
00075 {
00076 SI_Long m_lHandle;
00077 SI_Float m_fValue;
00078 };
00079
00080 struct SINetMsgSetHostName
00081 {
00082 SI_Char m_szHostName[128];
00083 };
00084
00085 struct SINetMsgFileOpen
00086 {
00087 SI_Char m_szFilename[256];
00088 SI_Char m_szMode[4];
00089 };
00090
00091 struct SINetMsgFileOpenAnswer
00092 {
00093 SI_Long m_lHandle;
00094 };
00095
00096 struct SINetMsgFileEOF
00097 {
00098 SI_Long m_lHandle;
00099 };
00100
00101 struct SINetMsgFileEOFAnswer
00102 {
00103 SI_Int m_iResult;
00104 };
00105
00106 struct SINetMsgFGETC
00107 {
00108 SI_Long m_lHandle;
00109 };
00110
00111 struct SINetMsgFGETCAnswer
00112 {
00113 SI_Int m_iChar;
00114 };
00115
00116
00117 struct SINetMsgFileClose
00118 {
00119 SI_Long m_lHandle;
00120 };
00121
00122 struct SINetMsgFileCloseAnswer
00123 {
00124 SI_Int m_iChar;
00125 };
00126
00127 struct SINetMsgFileTell
00128 {
00129 SI_Long m_lHandle;
00130
00131 };
00132
00133 struct SINetMsgFileEnd
00134 {
00135 SI_Long m_lTotalBytes;
00136
00137 };
00138
00139
00140 struct SINetMsgFileTellAnswer
00141 {
00142 SI_Long m_lOffset;
00143 };
00144
00145 struct SINetMsgFileSeek
00146 {
00147 SI_Long m_lHandle;
00148 SI_Long m_lOffset;
00149 SI_Int m_iMode;
00150
00151 };
00152
00153 struct SINetMsgFileSeekAnswer
00154 {
00155 SI_Int m_iAnswer;
00156
00157 };
00158
00159 struct SINetMsgFileRead
00160 {
00161 SI_Long m_lHandle;
00162 SI_Long m_lSize;
00163
00164 };
00165
00166 struct SINetMsgFileReadPacket
00167 {
00168 SI_Long m_lOffset;
00169 SI_Long m_lSize;
00170 SI_Char m_pData[SI_NETMSG_FREAD_PACKET_SIZE];
00171
00172 };
00173
00174 struct SINetMsgFileReadConfirm
00175 {
00176 SI_Long m_lOffset;
00177 SI_Long m_lSize;
00178 };
00179
00180 struct SINetMsgParamName
00181 {
00182 SI_Char m_szName[256];
00183 };
00184
00185 struct SINetMsgParamHandle
00186 {
00187 SI_Long m_lHandle;
00188 };
00189
00190 #if defined(_WIN32) || defined(_WIN32_WCE) || defined(_XBOX)
00191 #pragma pack( pop )
00192 #elif defined(CODEWARRIOR)
00193 #pragma options align= reset
00194 #endif
00195
00196 struct XSICOREEXPORT SINetMsg
00197 {
00198 SI_Char m_bID;
00199
00200 union
00201 {
00202
00203 SINetMsgLoadFile m_LoadFile;
00204 SINetMsgSetParamValue m_ParamValue;
00205 SINetMsgSetHostName m_HostName;
00206
00207 SINetMsgFileOpen m_FileOpen;
00208 SINetMsgFileOpenAnswer m_FileOpenAnswer;
00209
00210
00211 SINetMsgFileEOF m_FileEOF;
00212 SINetMsgFileEOFAnswer m_FileEOFAnswer;
00213
00214 SINetMsgFGETC m_FGETC;
00215 SINetMsgFGETCAnswer m_FGETCAnswer;
00216
00217 SINetMsgFileClose m_FileClose;
00218 SINetMsgFileCloseAnswer m_FileCloseAnswer;
00219
00220 SINetMsgFileTell m_FileTell;
00221 SINetMsgFileTellAnswer m_FileTellAnswer;
00222
00223 SINetMsgFileSeek m_FileSeek;
00224 SINetMsgFileSeekAnswer m_FileSeekAnswer;
00225
00226 SINetMsgFileRead m_FileRead;
00227 SINetMsgFileReadPacket m_FileReadPacket;
00228
00229 SINetMsgFileReadConfirm m_FileReadConfirm;
00230
00231 SINetMsgFileEnd m_FileReadEnd;
00232
00233 SINetMsgParamName m_ParamName;
00234 SINetMsgParamHandle m_ParamHandle;
00235
00236 };
00237
00238 public:
00239
00240 explicit SINetMsg( SI_Char in_bID = 0 );
00241
00242
00243
00244
00245
00246 SINetMsgLoadFile& GetLoadFile() { return m_LoadFile;}
00247 SINetMsgSetParamValue& GetSetParamValue() { return m_ParamValue;}
00248 SINetMsgSetHostName& GetHostName() { return m_HostName;}
00249
00250 SINetMsgFileOpen& GetFileOpen() { return m_FileOpen;}
00251 SINetMsgFileOpenAnswer& GetFileOpenAnswer() { return m_FileOpenAnswer;}
00252
00253 SINetMsgFileEOF& GetFileEOF() { return m_FileEOF;};
00254 SINetMsgFileEOFAnswer& GetFileEOFAnswer() { return m_FileEOFAnswer;};
00255
00256 SINetMsgFGETC& GetFGETC() { return m_FGETC;};
00257 SINetMsgFGETCAnswer& GetFGETCAnswer() { return m_FGETCAnswer;};
00258
00259 SINetMsgFileClose& GetFileClose() { return m_FileClose;};
00260 SINetMsgFileCloseAnswer& GetFileCloseAnswer(){ return m_FileCloseAnswer;};
00261
00262 SINetMsgFileTell& GetFileTell() { return m_FileTell;};
00263 SINetMsgFileTellAnswer& GetFileTellAnswer() { return m_FileTellAnswer;};
00264
00265 SINetMsgFileSeek& GetFileSeek() { return m_FileSeek;};
00266 SINetMsgFileSeekAnswer& GetFileSeekAnswer() { return m_FileSeekAnswer;};
00267
00268 SINetMsgFileRead& GetFileRead() { return m_FileRead; };
00269 SINetMsgFileReadPacket& GetFileReadPacket() { return m_FileReadPacket; };
00270
00271 SINetMsgFileReadConfirm& GetFileReadConfirm() { return m_FileReadConfirm; };
00272
00273 SINetMsgFileEnd& GetFileReadEnd() { return m_FileReadEnd; };
00274
00275 SINetMsgParamName& GetParamName() { return m_ParamName; };
00276 SINetMsgParamHandle& GetParamHandle() { return m_ParamHandle; };
00277
00278
00279
00280 SI_Char GetId() const { return m_bID; }
00281 SI_Int GetMaxSize() const { return sizeof(*this); }
00282 SI_Int GetSize() const;
00283 };
00284
00285
00286 #endif