mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-22 07:41:20 -04:00
added grouter as a msg sending service. Not enable yet. Added serialisation for grouter items and test methods in tests/serialiser/. Added saveList/loadList for grouter. set connectToTurtleRouter() and connectToGRouter() to be mandatory methods
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6970 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
da1b6ac845
commit
5c52890ad5
17 changed files with 784 additions and 80 deletions
|
@ -68,6 +68,55 @@ RsSerialType* init_item(RsGRouterPublishKeyItem& cmi)
|
|||
|
||||
return new RsGRouterSerialiser();
|
||||
}
|
||||
RsSerialType* init_item(RsGRouterRoutingInfoItem& cmi)
|
||||
{
|
||||
cmi.origin = SSLIdType::random() ;
|
||||
cmi.received_time = RSRandom::random_u64() ;
|
||||
cmi.status_flags = RSRandom::random_u32() ;
|
||||
|
||||
cmi.data_item = new RsGRouterGenericDataItem ;
|
||||
|
||||
uint32_t n = 10+(RSRandom::random_u32()%30) ;
|
||||
|
||||
for(uint32_t i=0;i<n;++i)
|
||||
{
|
||||
FriendTrialRecord ftr ;
|
||||
ftr.friend_id = SSLIdType::random() ;
|
||||
ftr.time_stamp = RSRandom::random_u64() ;
|
||||
|
||||
cmi.tried_friends.push_back(ftr) ;
|
||||
}
|
||||
|
||||
return init_item(*cmi.data_item) ;
|
||||
}
|
||||
RsSerialType* init_item(RsGRouterMatrixFriendListItem& cmi)
|
||||
{
|
||||
uint32_t n = 10+(RSRandom::random_u32()%30) ;
|
||||
|
||||
cmi.reverse_friend_indices.clear() ;
|
||||
for(uint32_t i=0;i<n;++i)
|
||||
cmi.reverse_friend_indices.push_back(SSLIdType::random()) ;
|
||||
|
||||
return new RsGRouterSerialiser();
|
||||
}
|
||||
RsSerialType* init_item(RsGRouterMatrixCluesItem& cmi)
|
||||
{
|
||||
cmi.destination_key = Sha1CheckSum::random() ;
|
||||
|
||||
uint32_t n = 10+(RSRandom::random_u32()%30) ;
|
||||
|
||||
for(uint32_t i=0;i<n;++i)
|
||||
{
|
||||
RoutingMatrixHitEntry rmhe ;
|
||||
rmhe.friend_id = RSRandom::random_u32() ;
|
||||
rmhe.weight = RSRandom::random_f32() ;
|
||||
rmhe.time_stamp = RSRandom::random_u64() ;
|
||||
|
||||
cmi.clues.push_back(rmhe) ;
|
||||
}
|
||||
|
||||
return new RsGRouterSerialiser();
|
||||
}
|
||||
bool operator ==(const RsGRouterGenericDataItem& cmiLeft,const RsGRouterGenericDataItem& cmiRight)
|
||||
{
|
||||
if(cmiLeft.routing_id != cmiRight.routing_id) return false;
|
||||
|
@ -94,12 +143,66 @@ bool operator ==(const RsGRouterACKItem& cmiLeft,const RsGRouterACKItem& cmiRigh
|
|||
|
||||
return true;
|
||||
}
|
||||
bool operator ==(const RsGRouterMatrixCluesItem& cmiLeft,const RsGRouterMatrixCluesItem& cmiRight)
|
||||
{
|
||||
if(!(cmiLeft.destination_key == cmiRight.destination_key)) return false;
|
||||
if(cmiLeft.clues.size() != cmiRight.clues.size()) return false;
|
||||
|
||||
std::list<RoutingMatrixHitEntry>::const_iterator itl = cmiLeft.clues.begin() ;
|
||||
std::list<RoutingMatrixHitEntry>::const_iterator itr = cmiRight.clues.begin() ;
|
||||
|
||||
while(itl != cmiLeft.clues.end())
|
||||
{
|
||||
if( (*itl).friend_id != (*itr).friend_id) return false ;
|
||||
if( (*itl).time_stamp != (*itr).time_stamp) return false ;
|
||||
|
||||
++itl ;
|
||||
++itr ;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
bool operator ==(const RsGRouterMatrixFriendListItem& cmiLeft,const RsGRouterMatrixFriendListItem& cmiRight)
|
||||
{
|
||||
if(cmiLeft.reverse_friend_indices.size() != cmiRight.reverse_friend_indices.size()) return false;
|
||||
|
||||
for(uint32_t i=0;i<cmiLeft.reverse_friend_indices.size();++i)
|
||||
if(cmiLeft.reverse_friend_indices[i] != cmiRight.reverse_friend_indices[i])
|
||||
return false ;
|
||||
|
||||
return true;
|
||||
}
|
||||
bool operator ==(const RsGRouterRoutingInfoItem& cmiLeft,const RsGRouterRoutingInfoItem& cmiRight)
|
||||
{
|
||||
if(cmiLeft.status_flags != cmiRight.status_flags) return false ;
|
||||
if(cmiLeft.origin != cmiRight.origin) return false ;
|
||||
if(cmiLeft.received_time != cmiRight.received_time) return false ;
|
||||
if(cmiLeft.tried_friends.size() != cmiRight.tried_friends.size()) return false ;
|
||||
|
||||
std::list<FriendTrialRecord>::const_iterator itl(cmiLeft.tried_friends.begin()) ;
|
||||
std::list<FriendTrialRecord>::const_iterator itr(cmiRight.tried_friends.begin()) ;
|
||||
|
||||
while(itl != cmiLeft.tried_friends.end())
|
||||
{
|
||||
if( (*itl).friend_id != (*itr).friend_id) return false ;
|
||||
if( (*itl).time_stamp != (*itr).time_stamp) return false ;
|
||||
|
||||
++itl ;
|
||||
++itr ;
|
||||
}
|
||||
|
||||
if(!(*cmiLeft.data_item == *cmiRight.data_item)) return false ;
|
||||
|
||||
return true;
|
||||
}
|
||||
int main()
|
||||
{
|
||||
test_RsItem<RsGRouterGenericDataItem >(); REPORT("Serialise/Deserialise RsGRouterGenericDataItem");
|
||||
test_RsItem<RsGRouterACKItem >(); REPORT("Serialise/Deserialise RsGRouterACKItem");
|
||||
test_RsItem<RsGRouterPublishKeyItem >(); REPORT("Serialise/Deserialise RsGRouterPublishKeyItem");
|
||||
test_RsItem<RsGRouterRoutingInfoItem >(); REPORT("Serialise/Deserialise RsGRouterRoutingInfoItem");
|
||||
test_RsItem<RsGRouterMatrixFriendListItem >(); REPORT("Serialise/Deserialise RsGRouterMatrixFriendListItem");
|
||||
test_RsItem<RsGRouterMatrixCluesItem >(); REPORT("Serialise/Deserialise RsGRouterMatrixCluesItem");
|
||||
|
||||
std::cerr << std::endl;
|
||||
|
||||
|
|
|
@ -142,9 +142,16 @@ template<class T> int test_RsItem()
|
|||
|
||||
CHECK(outfi != NULL);
|
||||
|
||||
if(!(*outfi == rsfi))
|
||||
{
|
||||
std::cerr << "Items differ: "<< std::endl;
|
||||
outfi->print(std::cerr,0) ;
|
||||
rsfi.print(std::cerr,0) ;
|
||||
}
|
||||
if (outfi)
|
||||
CHECK(*outfi == rsfi) ;
|
||||
|
||||
|
||||
sersize2 = MAX_BUFSIZE;
|
||||
bool done2 = srl.serialise(outfi, (void *) &(buffer[16*8]), &sersize2);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue