[Cppfcplib] r14523 - trunk/apps/CppFCPLib
mkolar at freenetproject.org
mkolar at freenetproject.org
Wed Aug 8 13:16:59 UTC 2007
Author: mkolar
Date: 2007-08-08 13:16:59 +0000 (Wed, 08 Aug 2007)
New Revision: 14523
Modified:
trunk/apps/CppFCPLib/JobTicket.h
trunk/apps/CppFCPLib/NodeThread.h
trunk/apps/CppFCPLib/Server.cpp
trunk/apps/CppFCPLib/Server.h
trunk/apps/CppFCPLib/ServerMessage.cpp
trunk/apps/CppFCPLib/ServerMessage.h
Log:
* direct get works
Modified: trunk/apps/CppFCPLib/JobTicket.h
===================================================================
--- trunk/apps/CppFCPLib/JobTicket.h 2007-08-07 22:24:26 UTC (rev 14522)
+++ trunk/apps/CppFCPLib/JobTicket.h 2007-08-08 13:16:59 UTC (rev 14523)
@@ -138,7 +138,7 @@
GetJob& setReturnType( ReturnType r ) { retType = r; return *this; }
public:
- ~GetJob() { if (stream != NULL) delete stream; }
+ ~GetJob() {}
std::ostream& getStream() { return *stream; }
ReturnType getReturnType() const { return retType; }
Modified: trunk/apps/CppFCPLib/NodeThread.h
===================================================================
--- trunk/apps/CppFCPLib/NodeThread.h 2007-08-07 22:24:26 UTC (rev 14522)
+++ trunk/apps/CppFCPLib/NodeThread.h 2007-08-08 13:16:59 UTC (rev 14523)
@@ -39,6 +39,10 @@
void doMessage(ServerMessage::Ptr message);
public:
void run();
+ ~NodeThread() {
+ jobs[0].clear();
+ jobs[1].clear();
+ }
};
}
Modified: trunk/apps/CppFCPLib/Server.cpp
===================================================================
--- trunk/apps/CppFCPLib/Server.cpp 2007-08-07 22:24:26 UTC (rev 14522)
+++ trunk/apps/CppFCPLib/Server.cpp 2007-08-08 13:16:59 UTC (rev 14523)
@@ -79,7 +79,16 @@
}
void
-Server::read(boost::asio::mutable_buffers_1 buf)
+Server::read(char *buf, std::size_t len)
{
- boost::asio::read(*socket_, buf);
+ log().log(NOISY, "Server::read: top");
+ boost::system::error_code error;
+
+ while (response.size() < len) {
+ log().log(NOISY, "bytes read: " + boost::lexical_cast<std::string>(response.size()));
+ response.commit(socket_->read_some(response.prepare(len), error));
+ if (error)
+ throw boost::system::system_error(error);
+ }
+ response_stream.read(buf, len);
}
Modified: trunk/apps/CppFCPLib/Server.h
===================================================================
--- trunk/apps/CppFCPLib/Server.h 2007-08-07 22:24:26 UTC (rev 14522)
+++ trunk/apps/CppFCPLib/Server.h 2007-08-08 13:16:59 UTC (rev 14523)
@@ -21,7 +21,7 @@
public:
~Server();
std::string readln();
- void read(boost::asio::mutable_buffers_1);
+ void read(char*, std::size_t);
void send(const std::string &s);
void send(Message::Ptr m);
bool dataAvailable();
Modified: trunk/apps/CppFCPLib/ServerMessage.cpp
===================================================================
--- trunk/apps/CppFCPLib/ServerMessage.cpp 2007-08-07 22:24:26 UTC (rev 14522)
+++ trunk/apps/CppFCPLib/ServerMessage.cpp 2007-08-08 13:16:59 UTC (rev 14523)
@@ -230,18 +230,20 @@
bool
AllDataMessage::isLast(const JobTicketPtr job) const
{
+ log().log(NOISY, "AllDataMessage::isLast: top");
GetJob::Ptr job_ = boost::dynamic_pointer_cast<GetJob, JobTicket>( job );
std::ostream& stream = job_->getStream();
char buf[1024];
- int tmp = bytesToRead;
- while (tmp > 0) {
- int m = std::min<int>(tmp, 1024);
- server->read(boost::asio::buffer(buf, m));
+ std::size_t bytes_available = bytesToRead;
+ log().log(NOISY, "bytesToRead = " + boost::lexical_cast<std::string>( bytes_available ));
+ while (bytes_available > 0) {
+ std::size_t m = std::min<std::size_t>(bytes_available, 1024);
+ server->read(buf, m);
stream.write(buf, m);
- tmp -= m;
- log().log(DEBUG, "NODE: read "+ boost::lexical_cast<std::string>( m ) + " bytes of data, " + boost::lexical_cast<std::string>( tmp ) + " still left");
+ bytes_available -= m;
+ log().log(DEBUG, "NODE: read "+ boost::lexical_cast<std::string>( m ) + " bytes of data, " + boost::lexical_cast<std::string>( bytes_available ) + " still left");
}
stream.flush();
Modified: trunk/apps/CppFCPLib/ServerMessage.h
===================================================================
--- trunk/apps/CppFCPLib/ServerMessage.h 2007-08-07 22:24:26 UTC (rev 14522)
+++ trunk/apps/CppFCPLib/ServerMessage.h 2007-08-08 13:16:59 UTC (rev 14523)
@@ -98,7 +98,7 @@
friend class ServerMessage;
boost::shared_ptr<Server> server;
- int bytesToRead;
+ std::size_t bytesToRead;
void read(boost::shared_ptr<Server> s);
More information about the Cppfcplib
mailing list