5 // Definition of non-inline non-template functions
7 #include "Connection.hh"
8 //#include "Connection.ih"
12 //#include "Connection.mpp"
14 ///////////////////////////////cc.p////////////////////////////////////////
16 prefix_ g0dil::mediaserv::Connection::Connection(int fileFd, unsigned bytesPerSecond,
17 ClientHandle client, unsigned bufferMSecs)
18 : fileFd_(fileFd), bytesPerSecond_(bytesPerSecond), client_(client),
19 bufferMSecs_(bufferMSecs), bytesWritten_(0), start_(satcom::lib::now()),
20 bufferSize_(0), terminate_(false)
26 prefix_ void g0dil::mediaserv::Connection::fillBuffer()
28 bufferSize_ = ::read(fileFd_,buffer_,packetSize);
29 if (bufferSize_ < packetSize)
34 prefix_ void g0dil::mediaserv::Connection::callback(ClientHandle client,
35 satcom::lib::Scheduler::EventId)
37 unsigned target (targetBytes());
38 if (target - bytesWritten_ >= bufferSize_) {
39 if (client_.write(buffer_,bufferSize_) < bufferSize_)
40 // TODO: Destroy client handle ..
42 bytesWritten_ += bufferSize_;
45 // TODO: Destroy client handle
50 registerTimeout(((bufferSize_-(target-bytesWritten_))*1000)/bytesPerSecond_);
54 prefix_ void g0dil::mediaserv::Connection::timeout()
59 ///////////////////////////////cc.e////////////////////////////////////////
61 //#include "Connection.mpp"