mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-15 20:42:29 -04:00
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:
parent
2def35c6f2
commit
129c07a553
14 changed files with 513 additions and 46 deletions
|
@ -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);
|
||||
|
||||
|
|
|
@ -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 */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue