mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-21 23:40:26 -04:00
added author pull code
-- problem, still need to figure out how to get peer auth req should go to git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs_finale@6881 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
a6f62caef4
commit
f2884d580f
5 changed files with 87 additions and 20 deletions
|
@ -766,6 +766,8 @@ void RsGxsNetService::run(){
|
|||
// vetting of id and circle info
|
||||
runVetting();
|
||||
|
||||
processExplicitGroupRequests();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2063,3 +2065,40 @@ void RsGxsNetService::setSyncAge(uint32_t age)
|
|||
|
||||
}
|
||||
|
||||
int RsGxsNetService::requestGrp(const std::list<RsGxsGroupId>& grpId, const std::string& peerId)
|
||||
{
|
||||
RsStackMutex stack(mNxsMutex);
|
||||
mExplicitRequest[peerId].assign(grpId.begin(), grpId.end());
|
||||
return 1;
|
||||
}
|
||||
|
||||
void RsGxsNetService::processExplicitGroupRequests()
|
||||
{
|
||||
RsStackMutex stack(mNxsMutex);
|
||||
|
||||
std::map<std::string, std::list<RsGxsGroupId> >::const_iterator cit = mExplicitRequest.begin();
|
||||
|
||||
for(; cit != mExplicitRequest.end(); cit++)
|
||||
{
|
||||
const std::string& peerId = cit->first;
|
||||
const std::list<RsGxsGroupId>& groupIdList = cit->second;
|
||||
|
||||
std::list<RsNxsItem*> grpSyncItems;
|
||||
std::list<RsGxsGroupId>::const_iterator git = groupIdList.begin();
|
||||
uint32_t transN = locked_getTransactionId();
|
||||
for(; git != groupIdList.end(); git++)
|
||||
{
|
||||
RsNxsSyncGrpItem* item = new RsNxsSyncGrpItem(mServType);
|
||||
item->grpId = *git;
|
||||
item->PeerId(peerId);
|
||||
item->flag = RsNxsSyncGrpItem::FLAG_REQUEST;
|
||||
item->transactionNumber = transN;
|
||||
grpSyncItems.push_back(item);
|
||||
}
|
||||
|
||||
if(!grpSyncItems.empty())
|
||||
locked_pushGrpTransactionFromList(grpSyncItems, peerId, transN);
|
||||
}
|
||||
|
||||
mExplicitRequest.clear();
|
||||
}
|
||||
|
|
|
@ -115,7 +115,7 @@ public:
|
|||
* @param msgId the messages to retrieve
|
||||
* @return request token to be redeemed
|
||||
*/
|
||||
int requestMsg(const std::string& msgId, uint8_t hops){ return 0;}
|
||||
int requestMsg(const RsGxsGrpMsgIdPair& msgId){ return 0;}
|
||||
|
||||
/*!
|
||||
* Request for this group is sent through to peers on your network
|
||||
|
@ -123,7 +123,7 @@ public:
|
|||
* @param enabled set to false to disable pause, and true otherwise
|
||||
* @return request token to be redeemed
|
||||
*/
|
||||
int requestGrp(const std::list<std::string>& grpId, uint8_t hops){ return 0;}
|
||||
int requestGrp(const std::list<RsGxsGroupId>& grpId, const std::string& peerId);
|
||||
|
||||
/* p3Config methods */
|
||||
|
||||
|
@ -322,6 +322,8 @@ private:
|
|||
|
||||
bool locked_canReceive(const RsGxsGrpMetaData * const grpMeta, const std::string& peerId);
|
||||
|
||||
void processExplicitGroupRequests();
|
||||
|
||||
private:
|
||||
|
||||
typedef std::vector<RsNxsGrp*> GrpFragments;
|
||||
|
@ -422,6 +424,8 @@ private:
|
|||
// need to be verfied
|
||||
std::vector<AuthorPending*> mPendingResp;
|
||||
std::vector<GrpCircleVetting*> mPendingCircleVets;
|
||||
|
||||
std::map<std::string, std::list<RsGxsGroupId> > mExplicitRequest;
|
||||
};
|
||||
|
||||
#endif // RSGXSNETSERVICE_H
|
||||
|
|
|
@ -68,21 +68,6 @@ public:
|
|||
*/
|
||||
virtual void setSyncAge(uint32_t age) = 0;
|
||||
|
||||
/*!
|
||||
* Explicitly requests all the groups contained by a peer
|
||||
* Circumvents polling of peers for message
|
||||
* @param peerId id of peer
|
||||
*/
|
||||
virtual void requestGroupsOfPeer(const std::string& peerId) = 0;
|
||||
|
||||
/*!
|
||||
* get messages of a peer for a given group id, this circumvents the normal
|
||||
* polling of peers for messages of given group id
|
||||
* @param peerId Id of peer
|
||||
* @param grpId id of group to request messages for
|
||||
*/
|
||||
virtual void requestMessagesOfPeer(const std::string& peerId, const std::string& grpId) = 0;
|
||||
|
||||
/*!
|
||||
* Initiates a search through the network
|
||||
* This returns messages which contains the search terms set in RsGxsSearch
|
||||
|
@ -116,7 +101,7 @@ public:
|
|||
* @param msgId the messages to retrieve
|
||||
* @return request token to be redeemed
|
||||
*/
|
||||
virtual int requestMsg(const std::string& msgId, uint8_t hops) = 0;
|
||||
virtual int requestMsg(const RsGxsGrpMsgIdPair& msgId) = 0;
|
||||
|
||||
/*!
|
||||
* Request for this group is sent through to peers on your network
|
||||
|
@ -124,7 +109,7 @@ public:
|
|||
* @param enabled set to false to disable pause, and true otherwise
|
||||
* @return request token to be redeemed
|
||||
*/
|
||||
virtual int requestGrp(const std::list<std::string>& grpId, uint8_t hops) = 0;
|
||||
virtual int requestGrp(const std::list<RsGxsGroupId>& grpId, const std::string& peerId) = 0;
|
||||
|
||||
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue