ftc/include/ftc/FTCServer.h

00001 // -*- coding: iso-8859-1-unix -*-
00002 #ifndef FTCSERVER_V1_04_01_H_
00003 #define FTCSERVER_V1_04_01_H_
00004 
00005 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
00006 # pragma once
00007 #endif
00008 
00009 #include "ftc/BaseServer.h"
00010 #include "ftc/AccessKey.h"
00011 #include "ftc/DataChannelProvider.h"
00012 #include "ftc/DataChannelInfo.h"
00013 #include "ftc/DefaultServerExceptionHandler.h"
00014 #include "ftc/FTCServerConfig.h"
00015 
00016 #include <map>
00017 #include <string>
00018 
00019 #include <boost/asio/system_timer.hpp>
00020 #include <boost/thread.hpp>
00021 
00022 namespace tecgraf { namespace ftc { namespace v1_04_01 {
00023 
00024   class Connection;
00025 
00031   class FTCServer : public BaseServer
00032   {
00033   public:
00039     FTCServer(DataChannelProvider& provider, const FTCServerConfig& config);
00040 
00044     virtual ~FTCServer ();
00045 
00047     const FTCServerConfig& config() const;
00048 
00060     DataChannelInfo_ptr register_data_channel_info(void * requester, const std::string& data_id, const AccessKey * const access_key = 0, bool use_transfer_to = true, uint32_t wait_ready_timeout_ms = 60000);
00061 
00070     DataChannelInfo_ptr consume_data_channel_info(AccessKey * access_key);
00071 
00077     DataChannelProvider& provider() const;
00078 
00079   protected:
00081     virtual BaseSession * create_session(Connection& conn);
00082 
00087     virtual void check_timeout(const uint64_t& timeout_ms);
00088   private:
00089     FTCServerConfig m_config;
00090     DataChannelProvider& m_provider;
00091 
00092     boost::mutex m_mutex;
00093     typedef std::map<const AccessKey*, DataChannelInfo_ptr, key_less_comp> AccessKey2DataChannelInfoMap;
00094     AccessKey2DataChannelInfoMap m_channelMap;
00095 
00096     DefaultServerExceptionHandler m_exception_handler;
00097   };
00098 }}}
00099 
00100 #endif
00101 

Gerado em Mon Feb 3 03:15:08 2014 para FTC[C++] por  doxygen 1.4.7