[Cppfcplib] r14171 - trunk/apps/CppFCPLib
mkolar at freenetproject.org
mkolar at freenetproject.org
Wed Jul 18 08:21:40 UTC 2007
Author: mkolar
Date: 2007-07-18 08:21:39 +0000 (Wed, 18 Jul 2007)
New Revision: 14171
Modified:
trunk/apps/CppFCPLib/Node.cpp
trunk/apps/CppFCPLib/NodeThread.cpp
trunk/apps/CppFCPLib/ServerMessage.h
trunk/apps/CppFCPLib/todo.txt
Log:
Global commands ( ListPeer, ListPeers... ) don't use __global as a
job identifier, but an empty string.
Modified: trunk/apps/CppFCPLib/Node.cpp
===================================================================
--- trunk/apps/CppFCPLib/Node.cpp 2007-07-17 17:48:04 UTC (rev 14170)
+++ trunk/apps/CppFCPLib/Node.cpp 2007-07-18 08:21:39 UTC (rev 14171)
@@ -48,7 +48,7 @@
m->setField("Name", name);
m->setField("ExpectedVersion", "2.0");
- JobTicket::Ptr job = JobTicket::factory("__global", m, false);
+ JobTicket::Ptr job = JobTicket::factory("", m, false);
clientReqQueue->put(job);
log().log(DEBUG, "Node constructor: waiting for response to ClientHello");
@@ -73,7 +73,7 @@
m->setField("NodeIdentifier", identifier);
- JobTicket::Ptr job = JobTicket::factory( "__global", m, false);
+ JobTicket::Ptr job = JobTicket::factory( "", m, false);
clientReqQueue->put(job);
log().log(DEBUG, "waiting for Peer message");
@@ -93,7 +93,7 @@
if (fields.hasField("WithMetadata")) m->setField("WithMetadata", fields.getField("WithMetadata"));
if (fields.hasField("WithVolatile")) m->setField("WithVolatile", fields.getField("WithVolatile"));
- JobTicket::Ptr job = JobTicket::factory( "__global", m, false);
+ JobTicket::Ptr job = JobTicket::factory( "", m, false);
clientReqQueue->put(job);
log().log(DEBUG, "waiting for EndListPeers message");
@@ -112,7 +112,7 @@
Message::Ptr m = Message::factory( std::string("ListPeerNotes") );
m->setField("NodeIdentifier", identifier);
- JobTicket::Ptr job = JobTicket::factory( "__global", m, false);
+ JobTicket::Ptr job = JobTicket::factory( "", m, false);
clientReqQueue->put(job);
log().log(DEBUG, "waiting for EndListPeerNotes message");
@@ -133,7 +133,7 @@
else
m->setField("URL", value);
- JobTicket::Ptr job = JobTicket::factory( "__global", m, false);
+ JobTicket::Ptr job = JobTicket::factory( "", m, false);
clientReqQueue->put(job);
log().log(DEBUG, "waiting for Peer message");
@@ -153,7 +153,7 @@
m->setFields(message);
- JobTicket::Ptr job = JobTicket::factory( "__global", m, false);
+ JobTicket::Ptr job = JobTicket::factory( "", m, false);
clientReqQueue->put(job);
log().log(DEBUG, "waiting for Peer message");
@@ -177,7 +177,7 @@
if (fields.hasField("IsDisabled")) m->setField("IsDisabled", fields.getField("IsDisabled"));
if (fields.hasField("IsListenOnly")) m->setField("IsListenOnly", fields.getField("IsListenOnly"));
- JobTicket::Ptr job = JobTicket::factory( "__global", m, false);
+ JobTicket::Ptr job = JobTicket::factory( "", m, false);
clientReqQueue->put(job);
log().log(DEBUG, "waiting for Peer message");
@@ -200,7 +200,7 @@
m->setField("NoteText", noteText);
m->setField("PeerNoteType", "1"); // TODO: change to peerNoteType once it is used
- JobTicket::Ptr job = JobTicket::factory( "__global", m, false);
+ JobTicket::Ptr job = JobTicket::factory( "", m, false);
clientReqQueue->put(job);
log().log(DEBUG, "waiting for PeerNote message");
@@ -220,7 +220,7 @@
m->setField("NodeIdentifier", identifier);
- JobTicket::Ptr job = JobTicket::factory( "__global", m, false);
+ JobTicket::Ptr job = JobTicket::factory( "", m, false);
clientReqQueue->put(job);
log().log(DEBUG, "waiting for PeerRemoved message");
@@ -241,7 +241,7 @@
if (fields.hasField("WithPrivate")) m->setField("WithPrivate", fields.getField("WithPrivate"));
if (fields.hasField("WithVolatile")) m->setField("WithVolatile", fields.getField("WithVolatile"));
- JobTicket::Ptr job = JobTicket::factory( "__global", m, false);
+ JobTicket::Ptr job = JobTicket::factory( "", m, false);
clientReqQueue->put(job);
log().log(DEBUG, "waiting for NodeData message");
@@ -267,7 +267,7 @@
if (fields.hasField("WithShortDescription")) m->setField("WithShortDescription", fields.getField("WithShortDescription"));
if (fields.hasField("WithLongDescription")) m->setField("WithLongDescription", fields.getField("WithLongDescription"));
- JobTicket::Ptr job = JobTicket::factory( "__global", m, false);
+ JobTicket::Ptr job = JobTicket::factory( "", m, false);
clientReqQueue->put(job);
log().log(DEBUG, "waiting for ConfigData message");
@@ -286,7 +286,7 @@
if (m->getHeader() != "ModifyConfig")
throw std::logic_error("ModifyConfig message expected, " + m->getHeader() + " received");
- JobTicket::Ptr job = JobTicket::factory( "__global", m, false);
+ JobTicket::Ptr job = JobTicket::factory( "", m, false);
clientReqQueue->put(job);
log().log(DEBUG, "waiting for ConfigData message");
@@ -310,7 +310,7 @@
if (write)
m->setField("WantWriteDirectory", "true");
- JobTicket::Ptr job = JobTicket::factory( "__global", m, false);
+ JobTicket::Ptr job = JobTicket::factory( "", m, false);
clientReqQueue->put(job);
log().log(DEBUG, "waiting for TestDDAReply");
@@ -332,7 +332,7 @@
if (readContent != "")
m->setField("ReadContent", readContent);
- JobTicket::Ptr job = JobTicket::factory( "__global", m, false);
+ JobTicket::Ptr job = JobTicket::factory( "", m, false);
clientReqQueue->put(job);
log().log(DEBUG, "waiting for TestDDAComplete");
Modified: trunk/apps/CppFCPLib/NodeThread.cpp
===================================================================
--- trunk/apps/CppFCPLib/NodeThread.cpp 2007-07-17 17:48:04 UTC (rev 14170)
+++ trunk/apps/CppFCPLib/NodeThread.cpp 2007-07-18 08:21:39 UTC (rev 14171)
@@ -93,16 +93,34 @@
it = jobs->find(message->getIdOfJob());
if (it == jobs->end()) {
log().log(DETAIL, "doMessage : received " + message->toString() + ", cannot find " + message->getIdOfJob() + " in started jobs");
- return;
+ /// message from global queue or error
+ Message::Ptr m = message->getMessage();
+ if ( m->getField("Identifier") == "" ) { // error
+ log().log(DEBUG, "doMessage : received error message");
+ // TODO: create a mean of passing error messages to client programme
+ return;
+ } else { // global queue, create a job
+ log().log(DEBUG, "doMessage : received message from a global queue");
+ JobTicket::Ptr job = JobTicket::factory(m->getField("Identifier"), m, false);
+ (*jobs)[m->getField("Identifier")] = job;
+ return;
+ }
}
job = it->second;
if ( message->isLast( job->getCommandName() ) ) {
+ log().log(NOISY, "doMessage : last message for the job");
job->putResponse(1, message);
job->putResult();
+
+ if (!job->keep) {
+ log().log(NOISY, "doMessage : job should not be kept, erasing");
+ jobs->erase( it );
+ }
}
- else
+ else {
job->putResponse(0, message);
+ }
}
Modified: trunk/apps/CppFCPLib/ServerMessage.h
===================================================================
--- trunk/apps/CppFCPLib/ServerMessage.h 2007-07-17 17:48:04 UTC (rev 14170)
+++ trunk/apps/CppFCPLib/ServerMessage.h 2007-07-18 08:21:39 UTC (rev 14171)
@@ -74,7 +74,7 @@
struct IdentifierIdOfJob {
inline std::string operator()(const std::string& id){
- return id.size() ? id : "__global";
+ return id.size() ? id : "";
}
};
Modified: trunk/apps/CppFCPLib/todo.txt
===================================================================
--- trunk/apps/CppFCPLib/todo.txt 2007-07-17 17:48:04 UTC (rev 14170)
+++ trunk/apps/CppFCPLib/todo.txt 2007-07-18 08:21:39 UTC (rev 14171)
@@ -14,7 +14,6 @@
* create examples, tests
* what should be status for the callback function
* what do you do with close connection message?
-* update IsLastPeer
Questions
=========
More information about the Cppfcplib
mailing list