* Improvements to Link Cloud Service. You can now vote anonymously on a Link,

this will spread it to your friends anonymously.
 
 * Completed Mutex Locking on Connection Manager.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@551 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
drbob 2008-05-13 15:41:40 +00:00
parent ffe371c4e5
commit d48205286a
6 changed files with 124 additions and 124 deletions

View file

@ -997,10 +997,16 @@ bool p3Ranking::updateComment(std::string rid, std::wstring comment, int32_t sco
/*************************************************************************/
/****************************** LINK SPECIFIC ****************************/
/*************************************************************************/
std::string p3Ranking::anonRankMsg(std::wstring link, std::wstring title)
std::string p3Ranking::anonRankMsg(std::string rid, std::wstring link, std::wstring title)
{
/* generate an id */
std::string rid = generateRandomLinkId();
bool alreadyExists = true;
if (rid == "")
{
alreadyExists = false;
/* generate an id */
rid = generateRandomLinkId();
}
RsRankLinkMsg *msg1 = new RsRankLinkMsg();
RsRankLinkMsg *msg2 = new RsRankLinkMsg();
@ -1034,7 +1040,15 @@ std::string p3Ranking::anonRankMsg(std::wstring link, std::wstring title)
msg2->linktype = RS_LINK_TYPE_WEB;
msg2->link = link;
addRankMsg(msg1);
if (alreadyExists)
{
delete msg1;
}
else
{
addRankMsg(msg1);
}
addAnonToList(msg2);
return rid;
@ -1202,6 +1216,19 @@ bool p3Ranking::addAnonToList(RsRankLinkMsg *msg)
{
{
RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/
std::list<RsRankLinkMsg *>::iterator it;
for(it = mAnon.begin(); it != mAnon.end(); it++)
{
if (msg->rid == (*it)->rid)
break;
}
if (it != mAnon.end())
{
delete msg;
return false;
}
mAnon.push_back(msg);
mRepublishFriends = true;
}

View file

@ -103,7 +103,7 @@ virtual bool getRankDetails(std::string rid, RsRankDetails &details);
/* Add New Comment / Msg */
virtual std::string newRankMsg(std::wstring link, std::wstring title, std::wstring comment, int32_t score);
virtual bool updateComment(std::string rid, std::wstring comment, int32_t score);
virtual std::string anonRankMsg(std::wstring link, std::wstring title);
virtual std::string anonRankMsg(std::string rid, std::wstring link, std::wstring title);
void tick();