#ifndef ISOCKETS_H #define ISOCKETS_H ///////////////////////////////////////////////////////////////////// // ISockets.h - Provides interfaces for Sockets module // // ver 1.4 // // Language: Visual C++, 2005 // // Platform: Dell Dimension 9150, Windows XP Pro, SP 2.0 // // Application: Utility for CSE687 and CSE775 projects // // Author: Jim Fawcett, Syracuse University, CST 2-187 // // (315) 443-3948, jfawcett@twcny.rr.com // ///////////////////////////////////////////////////////////////////// #include #include "DllPackage.h" class DLL_API ISocketSystem { public: static ISocketSystem* Create(); virtual ~ISocketSystem() {}; virtual std::string getHostName()=0; virtual std::string getNameFromIp(const std::string& ip)=0; virtual std::string getIpFromName(const std::string& name)=0; virtual void throwMsg(const char* msg, const char *file, int line)=0; virtual std::string GetLastMsg(bool WantSocketMsg=true)=0; }; class DLL_API ISocket { public: static ISocket* Create(); virtual ~ISocket() {} virtual operator SOCKET ()=0; virtual bool connect(std::string url, int port)=0; virtual void disconnect()=0; virtual bool error()=0; virtual bool send(const std::string& msg)=0; virtual bool send(const char* block, size_t len)=0; virtual std::string recv()=0; virtual void recv(char* block, size_t len)=0; virtual std::string getRemoteIP()=0; virtual int getRemotePort()=0; virtual std::string getLocalIP()=0; virtual int getLocalPort()=0; virtual void setTerminator(const std::string& terminal)=0; virtual std::string getTerminator()=0; virtual std::string stripTerminator(const std::string& msg)=0; }; class DLL_API ISocketListener { public: static ISocketListener* Create(); virtual ~ISocketListener() {} virtual void attach(int port)=0; virtual ISocket* waitForConnect()=0; virtual void stop()=0; }; #endif