00001
00002 #ifndef FILECHANNELINFO_V1_04_01_H_
00003 #define FILECHANNELINFO_V1_04_01_H_
00004
00005 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
00006 # pragma once
00007 #endif
00008
00009 #include <iostream>
00010 #include <boost/chrono.hpp>
00011 #include <boost/cstdint.hpp>
00012 #include <boost/shared_ptr.hpp>
00013 #include <boost/scoped_ptr.hpp>
00014
00015 namespace tecgraf { namespace ftc { namespace v1_04_01 {
00016
00017 class AccessKey;
00018
00026 class DataChannelInfo {
00027 public:
00028
00041 DataChannelInfo(const AccessKey * const access_key, void * requester, const std::string& data_id, const std::string& hostname, uint16_t port, bool use_transfer_to);
00042
00046 ~DataChannelInfo();
00047
00053 const std::string& hostname() const;
00054
00060 uint16_t port() const;
00061
00067 const AccessKey* access_key() const;
00068
00074 const std::string& data_id() const;
00075
00081 void * requester() const;
00082
00088 bool use_transfer_to() const;
00089
00097 bool check_timeout(const uint64_t& timeout_ms) const;
00098 private:
00099 std::string m_hostname;
00100 uint16_t m_port;
00101 std::string m_data_id;
00102 void * m_requester;
00103 boost::scoped_ptr<const AccessKey> m_access_key;
00104 boost::chrono::system_clock::time_point m_creation_time;
00105 bool m_use_transfer_to;
00106 };
00107
00111 typedef boost::shared_ptr<DataChannelInfo> DataChannelInfo_ptr;
00112
00113 }}}
00114
00115 #endif
00116