00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef _SIMLOG_H_
00018 #define _SIMLOG_H_
00019
00020 #include <oasys/io/FileIOClient.h>
00021 #include <oasys/util/Singleton.h>
00022 #include <oasys/util/StringBuffer.h>
00023
00024 namespace dtn {
00025 class Bundle;
00026 }
00027
00028 using namespace dtn;
00029
00030 namespace dtnsim {
00031
00032 class Node;
00033
00037 class SimLog : public oasys::Singleton<SimLog> {
00038 public:
00039 SimLog();
00040
00041 void log_gen(Node* n, Bundle* b) { log_entry("GEN", n, b); }
00042 void log_recv(Node* n, Bundle* b) { log_entry("RECV", n, b); }
00043 void log_xmit(Node* n, Bundle* b) { log_entry("XMIT", n, b); }
00044 void log_arrive(Node* n, Bundle* b) { log_entry("ARR", n, b); }
00045 void log_dup(Node* n, Bundle* b) { log_entry("DUP", n, b); }
00046 void log_expire(Node* n, Bundle* b) { log_entry("EXP", n, b); }
00047 void log_inqueue(Node* n, Bundle* b) { log_entry("INQ", n, b); }
00048
00049 void flush();
00050
00051 protected:
00052 void log_entry(const char* what, Node* n, Bundle* b);
00053
00054 oasys::FileIOClient* file_;
00055 oasys::StringBuffer buf_;
00056 };
00057
00058 }
00059
00060 #endif