00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifdef HAVE_CONFIG_H
00018 #include <dtn-config.h>
00019 #endif
00020
00021 #include "ProphetNode.h"
00022
00023 namespace dtn {
00024
00025 ProphetNode::ProphetNode(const prophet::NodeParams* params)
00026 : prophet::Node(params)
00027 {
00028 }
00029
00030 ProphetNode::ProphetNode(const ProphetNode& node)
00031 : prophet::Node(node),
00032 oasys::SerializableObject(node),
00033 remote_eid_(node.remote_eid_)
00034 {
00035 }
00036
00037 ProphetNode::ProphetNode(const prophet::Node& node)
00038 : prophet::Node(node),
00039 oasys::SerializableObject(),
00040 remote_eid_(node.dest_id())
00041 {
00042 }
00043
00044 ProphetNode::ProphetNode(const oasys::Builder&)
00045 : prophet::Node(),
00046 oasys::SerializableObject()
00047 {
00048 }
00049
00050 void
00051 ProphetNode::serialize(oasys::SerializeAction* a)
00052 {
00053 a->process("age",&age_);
00054 a->process("custody",&custody_);
00055 a->process("relay",&relay_);
00056 a->process("internet_gw",&internet_gateway_);
00057
00058
00059 u_int8_t p_value_pass = 0;
00060
00061
00062 if (a->action_code() == oasys::Serialize::UNMARSHAL)
00063 {
00064 a->process("remote_eid",&remote_eid_);
00065 set_dest_id(remote_eid_.c_str());
00066
00067 a->process("p_value",&p_value_pass);
00068 p_value_ = ((p_value_pass & 0xff) + 0.0) / (255.0);
00069 }
00070
00071 else
00072 {
00073 remote_eid_.assign(dest_id_);
00074 a->process("remote_eid",&remote_eid_);
00075
00076 p_value_pass = (u_int8_t) ( (int) (p_value_ * (255.0)) ) & 0xff;
00077 a->process("p_value",&p_value_pass);
00078 }
00079 }
00080
00081 };