[go: up one dir, main page]

Menu

Diff of /comm/transport.h [000000] .. [r1]  Maximize  Restore

Switch to side-by-side view

--- a
+++ b/comm/transport.h
@@ -0,0 +1,68 @@
+#ifndef __TRANSPORT_H__
+#define __TRNASPORT_H__
+
+#include <udt.h>
+
+enum PROTOCOL {TCP_T, UDT_T};
+
+class CTransport
+{
+public:
+   virtual ~CTransport() {}
+
+public:
+   virtual int listen(const int& port = 0) = 0;
+   virtual int accept() = 0;
+   virtual int connect(const char* ip, const int& port) = 0;
+
+public:
+   virtual int send(char* data, const int& size) = 0;
+   virtual int recv(char* data, const int& size) = 0;
+   virtual int sendfile(const char* filename, const int64_t& offset, const int64_t& size) = 0;
+   virtual int recvfile(const char* filename, const int64_t& offset, const int64_t& size) = 0;
+
+private:
+
+};
+
+class CTCPTransport: public CTransport
+{
+public:
+   virtual ~CTCPTransport();
+
+public:
+   virtual int listen(const int& port = 0);
+   virtual int accept();
+   virtual int connect(const char* ip, const int& port);
+
+public:
+   virtual int send(char* data, const int& size);
+   virtual int recv(char* data, const int& size);
+   virtual int sendfile(const char* filename, const int64_t& offset, const int64_t& size);
+   virtual int recvfile(const char* filename, const int64_t& offset, const int64_t& size);
+
+public:
+   int m_iSocket;
+};
+
+class CUDTTransport: public CTransport
+{
+public:
+   virtual ~CUDTTransport();
+
+public:
+   virtual int listen(const int& port = 0);
+   virtual int accept();
+   virtual int connect(const char* ip, const int& port);
+
+public:
+   virtual int send(char* data, const int& size);
+   virtual int recv(char* data, const int& size);
+   virtual int sendfile(const char* filename, const int64_t& offset, const int64_t& size);
+   virtual int recvfile(const char* filename, const int64_t& offset, const int64_t& size);
+
+public:
+   UDTSOCKET m_iSocket;
+};
+
+#endif