00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #pragma once
00012 #include "ippdme/ippdme.h"
00013
00014 class ippSocketImp;
00015
00016 class IPPDME_EXT_CLASS ippSocket {
00017
00018 public:
00019
00020 typedef enum SERROR
00021 {
00022 SOCKET_OK = 0,
00023 SOCKET_WOULD_BLOCK = 10035L,
00024 SOCKET_IS_CONNECTED=10056L,
00025 SOCKET_CONNECTION_ABORTED,
00026 SOCKET_OTHER_ERROR = -1,
00027 };
00028
00029
00030
00031 ippSocket();
00032 virtual ~ippSocket();
00033
00034
00036 bool Create();
00037
00039 SERROR Connect(const char* hostname, int port);
00040
00042 void Close();
00043
00044
00047
00048 SERROR Read(char *buffer,int size);
00049
00052
00053 SERROR Write(const char *sendbuf);
00054
00056 bool Listen(int portNumber);
00057
00060
00061
00062
00063
00064
00065
00066
00067 SERROR Accept(ippSocket& socket);
00068
00069
00070
00071
00072 SERROR CanSendData() ;
00073
00075 bool IsValid() const;
00076
00078 SERROR Ping();
00079
00080 static bool Initialize();
00081
00082 protected:
00083 std::auto_ptr<ippSocketImp> _imp;
00084
00085 private:
00086 friend class ippSocketImp;
00088 ippSocket(const ippSocket&);
00089 void operator=(const ippSocket&);
00090
00091 };
00092