00001
00007 #include "netManager.h"
00008 #include "Packet.h"
00009
00010 #define INDATASIZE 10
00011
00012 #ifndef INNETSOCK_H
00013 #define INNETSOCK_H
00014
00015 #include <netinet/in.h>
00016 #include <pthread.h>
00017 #include "sysLog.h"
00018 #include "screenManager.h"
00019 #include "Packet.h"
00020
00021
00022 class InNetSock {
00023 public:
00027 enum Status {
00029 OPEN,
00031 ERROR,
00033 CLOSED
00034 };
00038 static void getPacket();
00039
00045 int openInNet(struct sockaddr_in address);
00046
00051 int closeInNet();
00052
00057 Status getStatus();
00058
00063 void setStatus(Status newStatus);
00064
00069 static InNetSock * theInstance();
00070
00075 inline int getInSock() {return inSock;}
00076
00082 Packet * searchForReply(int ID);
00083
00088 void recReply(const Packet &packet);
00089
00090 protected:
00094 InNetSock();
00095
00099 ~InNetSock();
00100
00105 inline Packet ** getInFile() {return inData;}
00106
00107 private:
00109 ScreenManager * screenManager;
00110
00112 SysLog * systemLogger;
00113
00115 int inSock;
00116
00118 Packet * inData[INDATASIZE];
00119
00121 Status status;
00122
00124 pthread_t inThread;
00125
00126 int writeSem;
00127 };
00128
00129 #endif //INNETSOCK_HSD