//
// Copyright (C) 2006
-#ifndef HH_Connection_
-#define HH_Connection_ 1
+#ifndef HH_StreamConnection_
+#define HH_StreamConnection_ 1
// Custom includes
#include <boost/utility.hpp>
+#include <boost/intrusive_ptr.hpp>
+
#include "Utils/MicroTime.hh"
+#include "Utils/intrusive_refcount.hh"
#include "Scheduler/Scheduler.hh"
#include "Socket/ClientSocketHandle.hh"
#include "Socket/CommunicationPolicy.hh"
#include "Socket/FramingPolicy.hh"
-#include "Socket/BufferingPolicy.hh"
#include "Socket/ReadWritePolicy.hh"
-//#include "Connection.mpp"
+//#include "StreamConnection.mpp"
///////////////////////////////hh.p////////////////////////////////////////
namespace g0dil {
namespace mediaserv {
- class Connection : boost::noncopyable
+ class StreamConnection : public satcom::lib::intrusive_refcount
{
public:
///////////////////////////////////////////////////////////////////////////
typedef satcom::lib::ClientSocketHandle<
satcom::lib::MakeSocketPolicy<satcom::lib::ConnectedCommunicationPolicy,
satcom::lib::StreamFramingPolicy,
- satcom::lib::WriteablePolicy,
- satcom::lib::SocketBufferingPolicy>::policy> ClientHandle;
+ satcom::lib::WriteablePolicy>::policy> ClientHandle;
+
+ typedef boost::intrusive_ptr<StreamConnection> ptr;
+ typedef boost::function<void ()> Callback;
static const unsigned packetSize = 1400;
///\name Structors and default members
///@{
- Connection(int fileFd, unsigned bytesPerSecond, ClientHandle client,
- unsigned bufferMSecs);
+ StreamConnection(int fileFd, unsigned bytesPerSecond, ClientHandle client,
+ unsigned bufferMSecs, Callback callback);
+ ~StreamConnection();
///@}
+ ///////////////////////////////////////////////////////////////////////////
+
+ void start();
+ unsigned bytesSent();
protected:
unsigned bytesPerSecond_;
ClientHandle client_;
unsigned bufferMSecs_;
+ Callback callback_;
unsigned bytesWritten_;
satcom::lib::MicroTime start_;
}}
///////////////////////////////hh.e////////////////////////////////////////
-#include "Connection.cci"
-//#include "Connection.ct"
-//#include "Connection.cti"
-//#include "Connection.mpp"
+#include "StreamConnection.cci"
+//#include "StreamConnection.ct"
+//#include "StreamConnection.cti"
+//#include "StreamConnection.mpp"
#endif
\f