00001 00006 #include "viaNetManager.h" 00007 #include "JoystPacket.h" 00008 #include "LoginPacket.h" 00009 #include "HBeatPacket.h" 00010 00011 #define OUTDATASIZE 99 00012 00013 #ifndef VIAOUTNETSOCK_H 00014 #define VIAOUTNETSOCK_H 00015 00016 #include "sysLog.h" 00017 #include <pthread.h> 00018 #include <netinet/in.h> 00019 00020 class ViaOutNetSock { 00021 public: 00025 enum Status { 00027 OPEN = 1, 00029 CLOSED = 0, 00031 LISTENING = 2, 00033 ERROR = -1 00034 }; 00038 static void sendPacket(); 00039 00044 int getWritePtr(); 00045 00050 int incWritePtr(); 00051 00056 int getReadPtr(); 00057 00062 int incReadPtr(); 00063 00069 int openOutNet(struct sockaddr_in address); 00070 00075 int closeOutNet(); 00076 00081 void setStatus(Status newStatus); 00082 00087 Status getStatus(); 00088 00093 static ViaOutNetSock * theInstance(); 00094 00099 void writeOutData(Packet *packet); 00100 00105 inline Packet * getOutFile(){return outData[readPtr];} 00106 inline Packet * getWOutFile(){return outData[writePtr];} 00107 00112 void setCliSock(int newSock); 00113 00118 inline int getOutSock(){return outSock;} 00119 00124 inline int getCliSock(){return cliSock;} 00125 00130 inline struct sockaddr_in* getCliAddr(){return &cliAddr;} 00131 void writeLoginOutData(LoginPacket *packet); 00132 void writeJoystOutData(JoystPacket *packet); 00133 void writeHBeatOutData(HBeatPacket *packet); 00134 00135 00136 protected: 00140 ViaOutNetSock(); 00141 00145 ~ViaOutNetSock(); 00146 private: 00148 SysLog * systemLogger; 00150 int outSock; 00152 int cliSock; 00154 Packet *outData[OUTDATASIZE]; 00156 int readPtr; 00158 int writePtr; 00160 static Status status; 00162 pthread_t outThread; 00164 struct sockaddr_in cliAddr; 00165 struct sockaddr_in serAddr; 00166 }; 00167 00168 #endif //VIAOUTNETSOCK_H