Back to index

nordugrid-arc-nox  1.1.0~rc6
MCCTLS.h
Go to the documentation of this file.
00001 #ifndef __ARC_MCCTLS_H__
00002 #define __ARC_MCCTLS_H__
00003 
00004 #include <arc/Thread.h>
00005 #include <arc/Logger.h>
00006 #include <arc/message/MCC.h>
00007 
00008 namespace Arc {
00009 
00011 
00014   class MCC_TLS : public MCC {
00015   public:
00016     MCC_TLS(Config& cfg,bool client);
00017   protected:
00018     //bool tls_random_seed(std::string filename, long n);
00019     static unsigned int ssl_initialized_;
00020     static Glib::Mutex lock_;
00021     static Glib::Mutex* ssl_locks_;
00022     static int ssl_locks_num_;
00023     static Logger logger;
00024     static void ssl_locking_cb(int mode, int n, const char *file, int line);
00025     static unsigned long ssl_id_cb(void);
00026     //static void* ssl_idptr_cb(void);
00027     ConfigTLSMCC config_;
00028   };
00029 
00049 class MCC_TLS_Service: public MCC_TLS
00050 {
00051     private:
00052         //SSL_CTX* sslctx_;
00053     public:
00054         MCC_TLS_Service(Config& cfg);
00055         virtual ~MCC_TLS_Service(void);
00056         virtual MCC_Status process(Message&,Message&);
00057 };
00058 
00059 class PayloadTLSMCC;
00060 
00063 class MCC_TLS_Client: public MCC_TLS
00064 {
00065     private:
00066         //SSL_CTX* sslctx_;
00067         PayloadTLSMCC* stream_;
00068     public:
00069         MCC_TLS_Client(Config& cfg);
00070         virtual ~MCC_TLS_Client(void);
00071         virtual MCC_Status process(Message&,Message&);
00072         virtual void Next(MCCInterface* next,const std::string& label = "");
00073 };
00074 
00075 } // namespace Arc
00076 
00077 #endif /* __ARC_MCCTLS_H__ */