Third attempt at link rank system.

* Added Anonymous links, stored in configuration file.
 * Friends recommendations are also shared anonymously with peers.
 * Own recommendations are shared with friends.
 * TODO include ranking (+2 <-> -2) in score.
 * some bugfixes too.

Added RandomId to p3service file.
Improved forum interface.
Added dummy forum system (not transmitted) for testing.
Switched on new features as well.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@505 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
drbob 2008-04-15 16:35:46 +00:00
parent 2def35c6f2
commit 129c07a553
14 changed files with 513 additions and 46 deletions

View file

@ -51,6 +51,7 @@ std::ostream &RsRankMsg::print(std::ostream &out, uint16_t indent)
printIndent(out, int_Indent);
out << "timestamp: " << timestamp << std::endl;
printIndent(out, int_Indent);
std::string cnv_title(title.begin(), title.end());
@ -60,6 +61,9 @@ std::ostream &RsRankMsg::print(std::ostream &out, uint16_t indent)
std::string cnv_comment(comment.begin(), comment.end());
out << "comment: " << cnv_comment << std::endl;
printIndent(out, int_Indent);
out << "score: " << score << std::endl;
printRsItemEnd(out, "RsRankMsg", indent);
return out;
}
@ -73,6 +77,7 @@ void RsRankLinkMsg::clear()
timestamp = 0;
title.clear();
comment.clear();
score = 0;
linktype = 0;
link.clear();
}
@ -98,6 +103,9 @@ std::ostream &RsRankLinkMsg::print(std::ostream &out, uint16_t indent)
std::string cnv_comment(comment.begin(), comment.end());
out << "comment: " << cnv_comment << std::endl;
printIndent(out, int_Indent);
out << "score: " << score << std::endl;
printIndent(out, int_Indent);
out << "linktype: " << linktype << std::endl;
printIndent(out, int_Indent);
@ -117,6 +125,7 @@ uint32_t RsRankSerialiser::sizeLink(RsRankLinkMsg *item)
s += 4; /* timestamp */
s += GetTlvWideStringSize(item->title);
s += GetTlvWideStringSize(item->comment);
s += 4; /* score */
s += 4; /* linktype */
s += GetTlvWideStringSize(item->link);
@ -158,6 +167,9 @@ bool RsRankSerialiser::serialiseLink(RsRankLinkMsg *item, void *data, uint32
ok &= SetTlvWideString(data, tlvsize, &offset, TLV_TYPE_WSTR_COMMENT, item->comment);
std::cerr << "RsRankLinkSerialiser::serialiseLink() Comment: " << ok << std::endl;
ok &= setRawUInt32(data, tlvsize, &offset, *((uint32_t *) &(item->score)));
std::cerr << "RsRankLinkSerialiser::serialiseLink() timestamp: " << ok << std::endl;
ok &= setRawUInt32(data, tlvsize, &offset, item->linktype);
std::cerr << "RsRankLinkSerialiser::serialiseLink() linktype: " << ok << std::endl;
@ -184,7 +196,7 @@ RsRankLinkMsg *RsRankSerialiser::deserialiseLink(void *data, uint32_t *pktsize)
if ((RS_PKT_VERSION_SERVICE != getRsItemVersion(rstype)) ||
(RS_SERVICE_TYPE_RANK != getRsItemService(rstype)) ||
(RS_PKT_SUBTYPE_RANK_LINK2 != getRsItemSubType(rstype)))
(RS_PKT_SUBTYPE_RANK_LINK3 != getRsItemSubType(rstype)))
{
return NULL; /* wrong type */
}
@ -210,6 +222,7 @@ RsRankLinkMsg *RsRankSerialiser::deserialiseLink(void *data, uint32_t *pktsize)
ok &= getRawUInt32(data, rssize, &offset, &(item->timestamp));
ok &= GetTlvWideString(data, rssize, &offset, TLV_TYPE_WSTR_TITLE, item->title);
ok &= GetTlvWideString(data, rssize, &offset, TLV_TYPE_WSTR_COMMENT, item->comment);
ok &= getRawUInt32(data, rssize, &offset, (uint32_t *) &(item->score));
ok &= getRawUInt32(data, rssize, &offset, &(item->linktype));
ok &= GetTlvWideString(data, rssize, &offset, TLV_TYPE_WSTR_LINK, item->link);

View file

@ -33,8 +33,10 @@
#include "serialiser/rstlvtypes.h"
const uint8_t RS_PKT_SUBTYPE_RANK_OLD_LINK = 0x02; /* defunct - don't use! */
const uint8_t RS_PKT_SUBTYPE_RANK_LINK2 = 0x03;
const uint8_t RS_PKT_SUBTYPE_RANK_PHOTO = 0x04;
const uint8_t RS_PKT_SUBTYPE_RANK_OLD_LINK2 = 0x03;
const uint8_t RS_PKT_SUBTYPE_RANK_LINK3 = 0x04;
const uint8_t RS_PKT_SUBTYPE_RANK_PHOTO = 0x05;
/**************************************************************************/
@ -54,6 +56,7 @@ virtual std::ostream& print(std::ostream &out, uint16_t indent = 0);
uint32_t timestamp;
std::wstring title;
std::wstring comment;
int32_t score;
};
@ -65,7 +68,7 @@ class RsRankLinkMsg: public RsRankMsg
{
public:
RsRankLinkMsg()
:RsRankMsg(RS_PKT_SUBTYPE_RANK_LINK2) { return; }
:RsRankMsg(RS_PKT_SUBTYPE_RANK_LINK3) { return; }
virtual ~RsRankLinkMsg() { return; }
virtual void clear();
virtual std::ostream& print(std::ostream &out, uint16_t indent = 0);
@ -75,6 +78,7 @@ virtual std::ostream& print(std::ostream &out, uint16_t indent = 0);
uint32_t timestamp;
std::wstring title;
std::wstring comment;
int32_t score;
***************************/
/* Link specific Fields */