mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-15 04:22:27 -04:00
Bugfixes and testing stuff.
- Modified dummy data so new comments / votes get added in (testing background processing). - exposed fns for GUI rankings & testing. - corrected order of extraction from ranking Map. - fixed up debug output. git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-new_cache_system@5280 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
388bd5da9f
commit
2d31efd69b
5 changed files with 100 additions and 17 deletions
|
@ -125,6 +125,15 @@ virtual bool submitPost(uint32_t &token, RsPostedPost &post, bool isNew) = 0;
|
||||||
virtual bool submitVote(uint32_t &token, RsPostedVote &vote, bool isNew) = 0;
|
virtual bool submitVote(uint32_t &token, RsPostedVote &vote, bool isNew) = 0;
|
||||||
virtual bool submitComment(uint32_t &token, RsPostedComment &comment, bool isNew) = 0;
|
virtual bool submitComment(uint32_t &token, RsPostedComment &comment, bool isNew) = 0;
|
||||||
|
|
||||||
|
// Special Ranking Request.
|
||||||
|
virtual bool requestRanking(uint32_t &token, std::string groupId) = 0;
|
||||||
|
virtual bool getRankedPost(const uint32_t &token, RsPostedPost &post) = 0;
|
||||||
|
|
||||||
|
virtual bool extractPostedCache(const std::string &str, uint32_t &votes, uint32_t &comments) = 0;
|
||||||
|
|
||||||
|
// exposed for testing...
|
||||||
|
virtual float calcPostScore(const RsMsgMetaData &meta) = 0;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -349,6 +349,11 @@ static bool checkGroupFilter(const RsTokReqOptions &opts, const RsGroupMetaData
|
||||||
// Exact Flags match required.
|
// Exact Flags match required.
|
||||||
if ((opts.mStatusMask & opts.mStatusFilter) == (opts.mStatusMask & group.mGroupStatus))
|
if ((opts.mStatusMask & opts.mStatusFilter) == (opts.mStatusMask & group.mGroupStatus))
|
||||||
{
|
{
|
||||||
|
std::cerr << "checkGroupFilter() Accepting Group as StatusMatches: ";
|
||||||
|
std::cerr << " Mask: " << opts.mStatusMask << " StatusFilter: " << opts.mStatusFilter;
|
||||||
|
std::cerr << " GroupStatus: " << group.mGroupStatus << " GroupId: " << group.mGroupId;
|
||||||
|
std::cerr << std::endl;
|
||||||
|
|
||||||
statusMatch = true;
|
statusMatch = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -371,6 +376,11 @@ static bool checkGroupFilter(const RsTokReqOptions &opts, const RsGroupMetaData
|
||||||
// Exact Flags match required.
|
// Exact Flags match required.
|
||||||
if (opts.mSubscribeFilter & group.mSubscribeFlags)
|
if (opts.mSubscribeFilter & group.mSubscribeFlags)
|
||||||
{
|
{
|
||||||
|
std::cerr << "checkGroupFilter() Accepting Group as SubscribeMatches: ";
|
||||||
|
std::cerr << " SubscribeFilter: " << opts.mSubscribeFilter;
|
||||||
|
std::cerr << " GroupSubscribeFlags: " << group.mSubscribeFlags << " GroupId: " << group.mGroupId;
|
||||||
|
std::cerr << std::endl;
|
||||||
|
|
||||||
subMatch = true;
|
subMatch = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -399,6 +409,11 @@ static bool checkMsgFilter(const RsTokReqOptions &opts, const RsMsgMetaData &msg
|
||||||
// Exact Flags match required.
|
// Exact Flags match required.
|
||||||
if ((opts.mStatusMask & opts.mStatusFilter) == (opts.mStatusMask & msg.mMsgStatus))
|
if ((opts.mStatusMask & opts.mStatusFilter) == (opts.mStatusMask & msg.mMsgStatus))
|
||||||
{
|
{
|
||||||
|
std::cerr << "checkMsgFilter() Accepting Msg as StatusMatches: ";
|
||||||
|
std::cerr << " Mask: " << opts.mStatusMask << " StatusFilter: " << opts.mStatusFilter;
|
||||||
|
std::cerr << " MsgStatus: " << msg.mMsgStatus << " MsgId: " << msg.mMsgId;
|
||||||
|
std::cerr << std::endl;
|
||||||
|
|
||||||
statusMatch = true;
|
statusMatch = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -769,8 +769,8 @@ void p3IdService::generateDummyData()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MAX_RANDOM_GPGIDS 1000
|
#define MAX_RANDOM_GPGIDS 10 //1000
|
||||||
#define MAX_RANDOM_PSEUDOIDS 5000
|
#define MAX_RANDOM_PSEUDOIDS 50 //5000
|
||||||
|
|
||||||
int nFakeGPGs = (RSRandom::random_u32() % MAX_RANDOM_GPGIDS);
|
int nFakeGPGs = (RSRandom::random_u32() % MAX_RANDOM_GPGIDS);
|
||||||
int nFakePseudoIds = (RSRandom::random_u32() % MAX_RANDOM_PSEUDOIDS);
|
int nFakePseudoIds = (RSRandom::random_u32() % MAX_RANDOM_PSEUDOIDS);
|
||||||
|
|
|
@ -99,6 +99,7 @@ int p3PostedService::tick()
|
||||||
|
|
||||||
if (doCheck)
|
if (doCheck)
|
||||||
{
|
{
|
||||||
|
addExtraDummyData();
|
||||||
background_requestGroups();
|
background_requestGroups();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -979,8 +980,8 @@ bool p3PostedService::generateDummyData()
|
||||||
{
|
{
|
||||||
#define MAX_GROUPS 10 //100
|
#define MAX_GROUPS 10 //100
|
||||||
#define MAX_POSTS 100 //1000
|
#define MAX_POSTS 100 //1000
|
||||||
#define MAX_COMMENTS 100 //10000
|
#define MAX_COMMENTS 5000 //10000
|
||||||
#define MAX_VOTES 100 //10000
|
#define MAX_VOTES 10000 //10000
|
||||||
|
|
||||||
std::list<RsPostedGroup> mGroups;
|
std::list<RsPostedGroup> mGroups;
|
||||||
std::list<RsPostedGroup>::iterator git;
|
std::list<RsPostedGroup>::iterator git;
|
||||||
|
@ -1025,7 +1026,7 @@ bool p3PostedService::generateDummyData()
|
||||||
float rnd = RSRandom::random_f32();
|
float rnd = RSRandom::random_f32();
|
||||||
if (rnd < 0.1)
|
if (rnd < 0.1)
|
||||||
{
|
{
|
||||||
group.mMeta.mSubscribeFlags = RSGXS_GROUP_SUBSCRIBE_ADMIN;
|
group.mMeta.mSubscribeFlags = RSGXS_GROUP_SUBSCRIBE_ADMIN | RSGXS_GROUP_SUBSCRIBE_SUBSCRIBED;
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (rnd < 0.3)
|
else if (rnd < 0.3)
|
||||||
|
@ -1190,19 +1191,67 @@ bool p3PostedService::generateDummyData()
|
||||||
for(cit = mComments.begin(); cit != mComments.end(); cit++)
|
for(cit = mComments.begin(); cit != mComments.end(); cit++)
|
||||||
{
|
{
|
||||||
/* pushback */
|
/* pushback */
|
||||||
|
#define COMMENT_FRAC_FOR_LATER (0.70)
|
||||||
|
if (RSRandom::random_f32() > COMMENT_FRAC_FOR_LATER)
|
||||||
|
{
|
||||||
mPostedProxy->addComment(*cit);
|
mPostedProxy->addComment(*cit);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mDummyLaterComments.push_back(*cit);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
for(vit = mVotes.begin(); vit != mVotes.end(); vit++)
|
for(vit = mVotes.begin(); vit != mVotes.end(); vit++)
|
||||||
{
|
{
|
||||||
/* pushback */
|
/* pushback */
|
||||||
|
|
||||||
|
#define VOTE_FRAC_FOR_LATER (0.70)
|
||||||
|
if (RSRandom::random_f32() > VOTE_FRAC_FOR_LATER)
|
||||||
|
{
|
||||||
mPostedProxy->addVote(*vit);
|
mPostedProxy->addVote(*vit);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mDummyLaterVotes.push_back(*vit);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define EXTRA_COMMENT_ADD (20)
|
||||||
|
#define EXTRA_VOTE_ADD (50)
|
||||||
|
|
||||||
|
bool p3PostedService::addExtraDummyData()
|
||||||
|
{
|
||||||
|
std::cerr << "p3PostedService::addExtraDummyData()";
|
||||||
|
std::cerr << std::endl;
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
std::list<RsPostedVote>::iterator vit;
|
||||||
|
std::list<RsPostedComment>::iterator cit;
|
||||||
|
|
||||||
|
for(cit = mDummyLaterComments.begin(); (cit != mDummyLaterComments.end()) && (i < EXTRA_COMMENT_ADD); i++)
|
||||||
|
{
|
||||||
|
mPostedProxy->addComment(*cit);
|
||||||
|
cit = mDummyLaterComments.erase(cit);
|
||||||
|
}
|
||||||
|
|
||||||
|
i = 0;
|
||||||
|
for(vit = mDummyLaterVotes.begin(); (vit != mDummyLaterVotes.end()) && (i < EXTRA_VOTE_ADD); i++)
|
||||||
|
{
|
||||||
|
mPostedProxy->addVote(*vit);
|
||||||
|
vit = mDummyLaterVotes.erase(vit);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/********************************************************************************************/
|
/********************************************************************************************/
|
||||||
/********************************************************************************************/
|
/********************************************************************************************/
|
||||||
|
@ -1518,7 +1567,7 @@ bool p3PostedService::processPosts()
|
||||||
}
|
}
|
||||||
|
|
||||||
std::multimap<float, std::string> postMap;
|
std::multimap<float, std::string> postMap;
|
||||||
std::multimap<float, std::string>::iterator mit;
|
std::multimap<float, std::string>::reverse_iterator mit;
|
||||||
|
|
||||||
for(it = postList.begin(); it != postList.end(); it++)
|
for(it = postList.begin(); it != postList.end(); it++)
|
||||||
{
|
{
|
||||||
|
@ -1536,7 +1585,7 @@ bool p3PostedService::processPosts()
|
||||||
RsStackMutex stack(mPostedMtx); /********** STACK LOCKED MTX ******/
|
RsStackMutex stack(mPostedMtx); /********** STACK LOCKED MTX ******/
|
||||||
|
|
||||||
unsigned int i = 0;
|
unsigned int i = 0;
|
||||||
for(mit = postMap.begin(); (mit != postMap.end()) && (i < mViewStart); mit++, i++)
|
for(mit = postMap.rbegin(); (mit != postMap.rend()) && (i < mViewStart); mit++, i++)
|
||||||
{
|
{
|
||||||
std::cerr << "p3PostedService::processPosts() Skipping PostId: " << mit->second;
|
std::cerr << "p3PostedService::processPosts() Skipping PostId: " << mit->second;
|
||||||
std::cerr << " with score: " << mit->first;
|
std::cerr << " with score: " << mit->first;
|
||||||
|
@ -1544,7 +1593,7 @@ bool p3PostedService::processPosts()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for(i = 0; (mit != postMap.end()) && (i < mViewCount); mit++, i++)
|
for(i = 0; (mit != postMap.rend()) && (i < mViewCount); mit++, i++)
|
||||||
{
|
{
|
||||||
std::cerr << "p3PostedService::processPosts() Adding PostId: " << mit->second;
|
std::cerr << "p3PostedService::processPosts() Adding PostId: " << mit->second;
|
||||||
std::cerr << " with score: " << mit->first;
|
std::cerr << " with score: " << mit->first;
|
||||||
|
@ -1672,7 +1721,7 @@ bool p3PostedService::background_requestNewMessages()
|
||||||
|
|
||||||
if (!getGroupList(token, groupIds))
|
if (!getGroupList(token, groupIds))
|
||||||
{
|
{
|
||||||
std::cerr << "p3PostedService::background_requestNewMessages() ERROR";
|
std::cerr << "p3PostedService::background_requestNewMessages() ERROR No Group List";
|
||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
background_cleanup();
|
background_cleanup();
|
||||||
return false;
|
return false;
|
||||||
|
@ -1717,7 +1766,7 @@ bool p3PostedService::background_processNewMessages()
|
||||||
|
|
||||||
if (!getMsgSummary(token, newMsgList))
|
if (!getMsgSummary(token, newMsgList))
|
||||||
{
|
{
|
||||||
std::cerr << "p3PostedService::background_processNewMessages() ERROR";
|
std::cerr << "p3PostedService::background_processNewMessages() ERROR No New Msgs";
|
||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
background_cleanup();
|
background_cleanup();
|
||||||
return false;
|
return false;
|
||||||
|
@ -1747,13 +1796,13 @@ bool p3PostedService::background_processNewMessages()
|
||||||
/* discard threadheads */
|
/* discard threadheads */
|
||||||
if (it->mParentId.empty())
|
if (it->mParentId.empty())
|
||||||
{
|
{
|
||||||
std::cerr << "\tIgnoring ThreadHead";
|
std::cerr << "\tIgnoring ThreadHead: " << *it;
|
||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
}
|
}
|
||||||
else if (it->mMsgFlags & RSPOSTED_MSGTYPE_COMMENT)
|
else if (it->mMsgFlags & RSPOSTED_MSGTYPE_COMMENT)
|
||||||
{
|
{
|
||||||
/* Comments are counted by Thread Id */
|
/* Comments are counted by Thread Id */
|
||||||
std::cerr << "\tProcessing Comment";
|
std::cerr << "\tProcessing Comment: " << *it;
|
||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
|
|
||||||
vit = mBgCommentMap.find(it->mThreadId);
|
vit = mBgCommentMap.find(it->mThreadId);
|
||||||
|
@ -1769,6 +1818,7 @@ bool p3PostedService::background_processNewMessages()
|
||||||
|
|
||||||
std::cerr << "\tThreadId: " << it->mThreadId;
|
std::cerr << "\tThreadId: " << it->mThreadId;
|
||||||
std::cerr << " Comment Total: " << mBgCommentMap[it->mThreadId];
|
std::cerr << " Comment Total: " << mBgCommentMap[it->mThreadId];
|
||||||
|
std::cerr << std::endl;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1778,11 +1828,14 @@ bool p3PostedService::background_processNewMessages()
|
||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (it->mMsgFlags & RSPOSTED_MSGTYPE_COMMENT)
|
else if (it->mMsgFlags & RSPOSTED_MSGTYPE_VOTE)
|
||||||
{
|
{
|
||||||
/* Votes are organised by Parent Id,
|
/* Votes are organised by Parent Id,
|
||||||
* ie. you can vote for both Posts and Comments
|
* ie. you can vote for both Posts and Comments
|
||||||
*/
|
*/
|
||||||
|
std::cerr << "\tProcessing Vote: " << *it;
|
||||||
|
std::cerr << std::endl;
|
||||||
|
|
||||||
vit = mBgVoteMap.find(it->mParentId);
|
vit = mBgVoteMap.find(it->mParentId);
|
||||||
if (vit == mBgVoteMap.end())
|
if (vit == mBgVoteMap.end())
|
||||||
{
|
{
|
||||||
|
@ -1796,6 +1849,7 @@ bool p3PostedService::background_processNewMessages()
|
||||||
|
|
||||||
std::cerr << "\tParentId: " << it->mParentId;
|
std::cerr << "\tParentId: " << it->mParentId;
|
||||||
std::cerr << " Vote Total: " << mBgVoteMap[it->mParentId];
|
std::cerr << " Vote Total: " << mBgVoteMap[it->mParentId];
|
||||||
|
std::cerr << std::endl;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -128,12 +128,12 @@ virtual bool getRankedPost(const uint32_t &token, RsPostedPost &post);
|
||||||
// These are exposed for GUI usage.
|
// These are exposed for GUI usage.
|
||||||
virtual bool encodePostedCache(std::string &str, uint32_t votes, uint32_t comments);
|
virtual bool encodePostedCache(std::string &str, uint32_t votes, uint32_t comments);
|
||||||
virtual bool extractPostedCache(const std::string &str, uint32_t &votes, uint32_t &comments);
|
virtual bool extractPostedCache(const std::string &str, uint32_t &votes, uint32_t &comments);
|
||||||
|
virtual float calcPostScore(const RsMsgMetaData &meta);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
//
|
//
|
||||||
bool checkRankingRequest();
|
bool checkRankingRequest();
|
||||||
float calcPostScore(const RsMsgMetaData &meta);
|
|
||||||
bool processPosts();
|
bool processPosts();
|
||||||
|
|
||||||
// background processing of Votes.
|
// background processing of Votes.
|
||||||
|
@ -152,6 +152,7 @@ bool background_cleanup();
|
||||||
|
|
||||||
std::string genRandomId();
|
std::string genRandomId();
|
||||||
bool generateDummyData();
|
bool generateDummyData();
|
||||||
|
bool addExtraDummyData();
|
||||||
|
|
||||||
PostedDataProxy *mPostedProxy;
|
PostedDataProxy *mPostedProxy;
|
||||||
|
|
||||||
|
@ -179,6 +180,10 @@ bool generateDummyData();
|
||||||
std::map<std::string, uint32_t> mBgVoteMap; // ParentId -> Vote Count.
|
std::map<std::string, uint32_t> mBgVoteMap; // ParentId -> Vote Count.
|
||||||
std::map<std::string, uint32_t> mBgCommentMap; // ThreadId -> Comment Count.
|
std::map<std::string, uint32_t> mBgCommentMap; // ThreadId -> Comment Count.
|
||||||
|
|
||||||
|
// extra dummy data.
|
||||||
|
std::list<RsPostedVote> mDummyLaterVotes;
|
||||||
|
std::list<RsPostedComment> mDummyLaterComments;
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue