6 #define HH_Connection_ 1
9 #include <boost/utility.hpp>
10 #include "Utils/MicroTime.hh"
11 #include "Scheduler/Scheduler.hh"
12 #include "Socket/ClientSocketHandle.hh"
13 #include "Socket/CommunicationPolicy.hh"
14 #include "Socket/FramingPolicy.hh"
15 #include "Socket/BufferingPolicy.hh"
16 #include "Socket/ReadWritePolicy.hh"
18 //#include "Connection.mpp"
19 ///////////////////////////////hh.p////////////////////////////////////////
24 class Connection : boost::noncopyable
27 ///////////////////////////////////////////////////////////////////////////
30 typedef satcom::lib::ClientSocketHandle<
31 satcom::lib::MakeSocketPolicy<satcom::lib::ConnectedCommunicationPolicy,
32 satcom::lib::StreamFramingPolicy,
33 satcom::lib::WriteablePolicy,
34 satcom::lib::SocketBufferingPolicy>::policy> ClientHandle;
36 static const unsigned packetSize = 1400;
38 ///////////////////////////////////////////////////////////////////////////
39 ///\name Structors and default members
42 Connection(int fileFd, unsigned bytesPerSecond, ClientHandle client,
43 unsigned bufferMSecs);
50 void registerCallback();
51 void unregisterCallback();
52 void registerTimeout(unsigned timeout);
53 unsigned targetBytes();
56 void callback(ClientHandle client, satcom::lib::Scheduler::EventId);
61 unsigned bytesPerSecond_;
63 unsigned bufferMSecs_;
65 unsigned bytesWritten_;
66 satcom::lib::MicroTime start_;
68 char buffer_[packetSize];
74 ///////////////////////////////hh.e////////////////////////////////////////
75 #include "Connection.cci"
76 //#include "Connection.ct"
77 //#include "Connection.cti"
78 //#include "Connection.mpp"