00001 #ifndef _EPPTCPSSL_H_
00002 #define _EPPTCPSSL_H_
00003
00004 #include "epptransport.h"
00005 #include <stlrt/io/exc.hpp>
00006 #include <stlrt/io/operations.hpp>
00007 #include <stlrt/io/tcpsocket.hpp>
00008 #include <stlrt/io/sslsocket.hpp>
00009 #include <stlrt/io/bufferedreader.hpp>
00010
00011 #include <epplibconfig.h>
00012
00013 #include <memory>
00014
00019 class EPPLIB_DECL EPPTCPSSL : public EPPTRANSPORT {
00020 public:
00021
00028 EPPTCPSSL(EPPXML * pXml, map<Str,Str> params) : EPPTRANSPORT (pXml, params), isLoggedIn(false), showRequestInLog(true) {};
00029 EPPTCPSSL(Str host, int port, Str login, Str password, EPPXML * pXml, map<Str,Str> params, bool useSsl = true, int timeOut = 60);
00030 virtual ~EPPTCPSSL(void);
00031
00036 virtual void connect(Str host, int port, Str login, Str password, bool useSsl = true, int timeOut = 60);
00037
00042 virtual void send(void);
00043
00048 virtual Str recv(void);
00049
00054 virtual Str getLog(void) { return rrLog; }
00055
00056 protected:
00057 auto_ptr< IO::BufferedReader<IO::TcpSocket> > con;
00058 auto_ptr< IO::TcpSocket > s;
00059 bool isLoggedIn;
00060 bool showRequestInLog;
00061
00062 private:
00063
00064 EPPTCPSSL(const EPPTCPSSL& t);
00065 EPPTCPSSL &operator= (const EPPTCPSSL&);
00066
00067 Str rrLog;
00068 };
00069
00070 #endif