added more virtual methods to network exchange service

removed xml parser utility
removed extraneous info from retrodb

git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-new_cache_system@5073 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
chrisparker126 2012-04-01 21:10:55 +00:00
parent 030b009f9a
commit e560e00029
8 changed files with 316 additions and 10940 deletions

View File

@ -11,48 +11,41 @@ Please not all request* functions have a receive pair if not noted below
1.1) Display of subscribed forums. Service must provide:
1.1.1) list of subscribed Groups.
----------------
int GXService::requestSubscribedGroupList(); @return token
void receiveGroupList(token, list<grpId>); //call back
int requestSubscribedGrps();
-> This function will get the group list from
Component:
GDService::requestGroup()
Component:
RsGnp::requestGroups()
->
----------------
1.1.2) list of messages for each Group.
----------------
int GDService::requestGroupMsgs(std::string grpId); @return token
-> Return a request token that will be redeemed by:
void receiveMsgs(int token, std::list<RsGxsMsg*>); // call back
Component:
GDService::request(string grpId) X
-> which further uses the client service's implemented
----------------
----------------
int requestGrpMsgs(std::list<RsGxsGrpId>&);
----------------
1.1.3) details of group by group Id.
----------------
int GDService::requestGroup(std::string grpId);
----------------
----------------
int requestGrp(std::list<RsGxsGrpId>& grpIds);
----------------
1.1.4) details of messages by message Id.
----------------
int GXService::requestMessages(multimap<grpId, pair<msgId,version> >)
void receiveMsgs(int token, std::list<RsGxsMsg*>); // call back
----------------
----------------
int requestMsgs(std::list<RsGxsMsgId>& msgs);
----------------
1.1.5) newest version of each message -> get version list.
1.1.5) newest version of each message
----------------
? newest version returned by default
int GDService::requestMsgVersions(multimap<grpId, msgId>)
int receiveMsgVersionList(list<uint32_t>)
1.1.4 : not intitialising RsGxsMsgId::version default to returning
newest version of message
----------------
1.1.6) status of message (read / unread).
----------------
returned with msgs see 1.1.2 & 1.1.3
returned with msg data
int flagMsgRead(const RsGxsMsgId& msgId, bool read)
----------------
1.1.7) access to Identity associated with Group and Messages
@ -64,62 +57,58 @@ Please not all request* functions have a receive pair if not noted below
1.1.8) updates when new groups arrive.
----------------
int receivedNewGrp(list<string> grpIds)
virtual void notifyGroupChanged(std::list<RsGxsGrpId> grpId) = 0
----------------
1.1.9) updates when new messages arrive.
----------------
int receivedNewMsgs(multimap<grpId, pair<msgId,version> >)
virtual void notifyMsgChanged(std::list<RsGxsMsgId> msgId) = 0
----------------
1.1.10) updates when groups / messages change.
----------------
int receivedNewUpdates(multimap<grpId, pair<msgId,version> >)
int receivedNewUpdates(map<grpId, version> >)
1.1.8 and 1.1.9
----------------
1.1.11) Search forums for Keywords.
----------------
int searchForum(string keyword, grpId)
// all msgs and grps that contain keyword
int receiveSearchResult(list<RsGxsMsg*>, list<RsGxsGrp*>)
int requestLocalSearch(RsGxsSearch* term);
----------------
1.1.12) Access new (time restricted) messages.
----------------
? explain
? explain
----------------
1.2) Creation of new material.
1.2.1) ability to create Groups.
----------------
GDService::createGroup(name, descrip, title, thumbnail);
//or rather user
int pushGrp(std::set<RsGxsGroup*>& grp, std::string& profileName);
int pushGrp(std::set<RsGxsGroup*>& grp, RsIdentityExchangeService::IdentityType type, const std::set<std::string>& peers,
const std::string& pseudonymName = "");
// user needs to instantiate their top class members
// where RsGxpGrp is base class
// user provides identity to associate group to
bool GDService::publishGroup(const RsGxsGrp&, identity);
RsGixsProfile* GXIService::createIdentity(int type, string pseudonym);
RsGixsProfile* GXIService::getRealIdentity();
----------------
1.2.2) ability to create Messages.
GXService::publishMsg(const RsGxsMsg&, identity);
void pushMsg(std::set<RsGxsMsg*>& msg);
1.3) Deletion of forums and posts.
1.3.1) discard forum (can't do this currently).
----------------
done automatically by GDService based on cutoff
----------------
1.3.2) delete post.
----------------
// post is removed from system and note made in db not to syn it
// this is cleaned from db after grp expires
int GXService::deleteMsg(multimap<grpId, msgId >)
int GXService::deleteGrp(grpId)
// this is cleaned from db post expires
// very likely to also propagate to friends
int requestDeleteMsg(const RsGxsMsgId& msgId);
int requestDeleteGrp(const RsGxsGrpId& grpId);
----------------
1.3.3) discard old posts.
@ -132,13 +121,13 @@ Please not all request* functions have a receive pair if not noted below
1.4.1) Storage Period of subscribed forums
----------------
int GXService::setSubscribedGrpsCutOff(uint32_t secs)
void setSubscribedGroupDiscardAge(uint32_t length);
----------------
1.4.2) Storage Period of unsubscribed forums.
----------------
int GXService::setUnSubscribedGrpsCutOff(uint32_t secs)
void setUnsubscribedGrpDiscardAge(uint32_t length);
----------------
1.4.3) transfer unsubscribed forums and posts (yes/no)
@ -161,12 +150,12 @@ Please not all request* functions have a receive pair if not noted below
1.4.5) modify read status.
----------------
int GXService::setMsgRead(multimap<grpId, version> >)
int flagMsgRead(const RsGxsMsgId& msgId, bool read) ;
----------------
1.4.6) Subscribe to forums
----------------
bool GXService::subscribeToGroup(grpId)
int requestSubscribeToGrp(const RsGxsGrpId& grpId, bool subscribe);
----------------
1.5) Finding other forums.
@ -180,13 +169,12 @@ Please not all request* functions have a receive pair if not noted below
// service will have to provide own search module (can RsGDService can
// service remote search requests concurrent with GXS)
// module return message and groups (msgs can be marked compile time as not // searchable
GXService::localSearch(RsGxsSearch key)
GXService::searchRemote(RsGxsSearch key)
int requestRemoteSearch(RsGxsSearch* term, uint32_t hops);
----------------
1.5.4) optional download of friends forums.
----------------
int GXService::downloadPeersGroups(sslid)
int GXService::downloadPeersMessage(ssld, grpId)
int requestPeersGrps(const std::string& sslId);
----------------
@ -202,18 +190,20 @@ Please not all request* functions have a receive pair if not noted below
2.2) Comments
2.2.1) Write a comment.
----------------
see 1.2.2. Message with required top level members
see 1.2.2. RsGxsMsg with required indirection data members
to associate with message the comment is being made on
----------------
2.2.2) Reject (downgrade) bad comment.
----------------
user just needs to verify publisher sent message
bool GIXService::verify(Identity, data, dataLen, signature)
user needs to verify publisher sent downgrage message
bool RsGxis::bool verify(const KeyRef& keyref, unsigned char* data, uint32_t dataLen, std::string& signature);
----------------
2.2.3) Control Comments: Allow / Disallow, Pseudo / Authed Comments.
----------------
bool GIXService::verify(Identity, data, dataLen, signature)
bool RsGxis::bool sign(const KeyRef& keyref, unsigned char* data, uint32_t dataLen, std::string& signature);
----------------
@ -230,7 +220,7 @@ Please not all request* functions have a receive pair if not noted below
3.1.2) Access to Version History. (including who edited).
----------------
// need to include list<authors> as top level RsGxsMsg
// need to include std::map<version,authors> as top level RsGxsMsg
----------------
3.2) Controlling Editing Rights.
@ -267,6 +257,7 @@ using 1.2.2, publisher sends new publish key under old private key signature, an
----------------
Bit more detail on search type
RsGxsSearch{ int searchType; const int PATTERN_TYPE, TERM_TYPE; ....}
----------------
@ -318,7 +309,7 @@ using 1.2.2, publisher sends new publish key under old private key signature, an
5.1.4) Deleting Album.
----------------
1.3.2
1.3.2
----------------
6) Acadeeb

View File

@ -33,10 +33,28 @@
#include "inttypes.h"
#include "rsgnp.h"
typedef std::map<std::string, std::set<std::string> > MsgGrpId;
typedef std::map<std::string, std::set<RsGxsSignedMessage*> > SignedMsgGrp;
#include "gxs/rsgxs.h"
class RsGxsSignedMsg {
RsGxsMsgId mMsgId;
RsTlvBinaryData mMsgData;
};
/*!
* Might be better off simply sending request codes
*
*/
class RsGxsSearch {
/*!
*
*/
virtual int code() = 0;
};
/*!
* The main role of GDS is the preparation and handing out of messages requested from
* RsGeneralExchangeService and RsGeneralExchangeService
@ -56,158 +74,100 @@ typedef std::map<std::string, std::set<RsGxsSignedMessage*> > SignedMsgGrp;
* - As this is the point where data is accessed by both the GNP and GXS the identities
* used to decrypt, encrypt and verify is handle here.
*
*
* Please note all function are blocking.
*/
class RsGeneralDataService
{
public:
/*!
* Retrieves signed message
* @param msgGrp this contains grp and the message to retrieve
* @return error code
*/
virtual int retrieveMsgs(const std::list<RsGxsMsgId>& msgId, std::set<RsGxsMsg*> msg, bool cache) = 0;
/*!
* Retrieves a group item by grpId
* @param grpId the ID of the group to retrieve
* @return error code
*/
virtual int retrieveGrps(const std::list<RsGxsGrpId>& grpId, std::set<RsGxsGroup*> grp, bool cache) = 0;
/*!
* allows for more complex queries specific to the service
* BLOBs type columns will not be searched
* @param search generally stores parameters needed for query
* @param msgId is set with msg ids which satisfy the gxs search
* @return error code
*/
virtual int searchMsgs(RsGxsSearch* search, std::list<RsMsgId>& msgId) = 0;
/*!
* allows for more complex queries specific to the associated service
* BLOBs type columns will not be searched
* @param search generally stores parameters needed for query
* @param msgId is set with msg ids which satisfy the gxs search
* @return error code
*/
virtual int searchGrps(RsGxsSearch* search, std::list<RsGroupId>& grpId) = 0;
/*!
* @return the cache size set for this RsGeneralDataService
*/
virtual uint32_t cacheSize() const;
/*!
* Stores a list signed messages into data store
* @param msg list of signed messages to store
* @return error code
*/
virtual int storeMessage(std::set<RsGxsSignedMsg*> msg) = 0;
/*!
* Stores a list of groups in data store
* @param msg list of messages
* @return error code
*/
virtual int storeGroup(std::set<RsGxsGroup*> grp) = 0;
/*!
* Retrieves group ids
* @param grpIds
*/
virtual void retrieveGrpIds(std::list<std::string>& grpIds) = 0;
/*!
* Retrieves msg ids
*/
virtual void retrieveMsgIds(std::list<std::string>& msgIds) = 0;
protected:
/*!
* Retrieves signed message
* @param msgGrp this contains grp and the message to retrieve
* @return request code to be redeemed later
*/
virtual int request(const MsgGrpId& msgGrp) = 0;
virtual int retrieveMsgs(const std::list<RsGxsMsgId>& msgId, std::set<RsGxsMsg*> msg) = 0;
/*!
* Retrieves a group item by grpId
* @param grpId the ID of the group to retrieve
* @return request code to be redeemed later
*/
virtual int request(const std::string grpId) = 0;
virtual int retrieveGrps(const std::list<RsGxsGrpId>& grpId, std::set<RsGxsGroup*> grp) = 0;
/*!
* allows for more complex queries specific to the service
* Service should implement its own specific filter
* @param filter generally stores parameters needed for query
* @param cacheRequest set to true to cache the messages requested
* @return request code to be redeemed later
*/
virtual int request(RsGxsSearch* filter, bool cacheRequest) = 0;
/*!
* stores signed message
* @param msgs signed messages to store
*/
virtual bool store(SignedMsgGrp& msgs) = 0;
/*!
* Gets group and any associated meta data
* @param grpIds set with group Ids available from storage
* @return request code to be redeemed later
*/
virtual int getGroups(const std::set<std::string>& grpIds) = 0;
/*!
* Gets list of message ids in storage
* @param msgIds gets message ids in storage
* @return request code to be redeemed later
*/
virtual int getMessageIds(std::set<std::string>& msgIds) = 0;
/*!
* caches message for faster retrieval later
* @return false if caching failed, msg may not exist, false otherwise
*/
virtual bool cacheMsg(const std::string& grpId, const std::string& msgId) = 0;
/*!
* caches all messages of this grpId for faster retrieval later
* @param grpId all message of this grpId are cached
* @return false if caching failed, msg may not exist, false otherwise
*/
bool cacheGrp(const std::string& grpId) = 0;
/*!
* checks if msg is cached
* @param msgId message to check if cached
* @param grpId
* @return false if caching failed, msg may not exist, false otherwise
*/
bool msgCached(const std::string& grpId, const std::string& msgId) = 0;
/*!
* check if messages of the grpId are cached
* @param grpId all message of this grpId are checked
* @return false if caching failed, msg may not exist, false otherwise
*/
bool grpCached(const std::string& grpId) = 0;
};
/*!
* Might be better off simply sending request codes
*
*/
class RsGxsSearch {
/*!
*
*/
virtual int code() = 0;
};
/*!
*
* This is implemented by the concrete GXS class to represent and define how \n
* RsGxsSignedMessage is stored and retrieved from disk \n
* More complicated queries are enabled through the use of \n
* RequestFilter which through rtti store generic parameters used by the RsGeneralStorageService implementation \n
*
*
* The main reason for layering RsGeneralDataService between this and RsGeneralExchangeService implementer \n
* is to avoid the overhead of storage access and while allowing a rich variety of implementations not having to \n
* worry about efficiency \n
*/
class RsGeneralStorageService {
public:
/*!
* Retrieves signed messages from storage
* @param msgGrp this contains grp and the message to retrieve
*/
virtual void retrieve(const MsgGrpId& msgGrp, SignedMsgGrp& result, bool decrypted) = 0;
/*!
* allows for more complex queries specific to the service
* Service should implement method taking case
* @param filter
*/
virtual void retrieve(RsGxsSearch* search, SignedMsgGrp& msgs) = 0;
/*!
* stores signed message in internal storage
* @param msgs signed messages to store
*/
virtual void store(SignedMsgGrp& msgs) = 0;
/*!
* retrieves the group ids from storage
* @param grpIds set with grpIds available from storage
*/
virtual void getGroups(std::set<std::string>& grpIds) = 0;
/*!
* retrieve message in this stored in this storage
* @param msgIds gets message ids in storage
*/
virtual bool getMessageIds(std::set<std::string>& msgIds) = 0;
/*!
* Use this find out if Rss i/o status
* @return the io status
*/
virtual uint8_t getIoStat() = 0;
static uint8_t IOSTAT_READ_ONLY;
static uint8_t IOSTAT_READ_AND_WRITE;
};
#endif // RSGDP_H

View File

@ -96,15 +96,78 @@ class RsNetworktExchangeService : public p3Service
{
public:
RsNetworkExchangeService(uint16_t subtype);
/*!
* Use this to set how far back synchronisation of messages should take place
* @param range how far back from current time to synchronise with other peers
*/
virtual void setTimeRange(uint64_t range) = 0;
/*!
* requests all the groups contained by a peer
* @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 RsGroupId& grpId);
/*!
* subscribes the associated service to this group. This RsNetworktExchangeService
* now regularly polls all peers for new messages of this group
* @param grpId the id of the group to subscribe to
* @param subscribe set to true to subscribe or false to unsubscribe
*/
virtual void subscribeToGroup(const RsGroupId& grpId, bool subscribe) = 0;
/*!
* Initiates a search through the network
* This returns messages which contains the search terms set in RsGxsSearch
* @param search contains search terms of requested from service
* @param hops how far into friend tree for search
* @return search token that can be redeemed later, implementation should indicate how this should be used
*/
virtual int searchMsgs(RsGxsSearch* search, uint8_t hops = 1, bool retrieve = 0) = 0;
/*!
* Initiates a search of groups through the network which goes
* a given number of hosp deep into your friend's network
* @param search contains search term requested from service
* @param hops number of hops deep into peer network
* @return search token that can be redeemed later
*/
virtual int searchGrps(RsGxsSearch* search, uint8_t hops = 1, bool retrieve = 0) = 0;
/*!
* pauses synchronisation of subscribed groups and request for group id
* from peers
* @param enabled set to false to disable pause, and true otherwise
*/
virtual void pauseSynchronisation(bool enabled);
/*!
* Request for this message is sent through to peers on your network
* and how many hops from them you've indicated
* @param msgId the messages to retrieve
* @return request token to be redeemed
*/
virtual int requestMsg(const std::list<RsGxsMsgId>& msgId, uint8_t hops) = 0;
/*!
* Request for this group is sent through to peers on your network
* and how many hops from them you've indicated
* @param enabled set to false to disable pause, and true otherwise
* @return request token to be redeemed
*/
virtual int requestGrp(const std::list<RsGxsGrpId>& grpId, uint8_t hops) = 0;
};
#endif // RSGNP_H

View File

@ -87,15 +87,19 @@ class RsGxsSearchResult {
class RsGxsMsg
{
RsGxsMsgId mId;
std::string mMsgId;
std::string mOrigMsgId;
RsGxsTime mTime;
std::list<std::string> mHashtags;
std::list<RsGxsLink> mLinked;
std::set<uint32_t> versions;
RsGxsSignature mSignature;
RsGxsMsgId mId;
std::string mMsgId;
std::string mOrigMsgId;
RsGxsTime mTime;
std::list<std::string> mHashtags;
std::list<RsGxsLink> mLinked;
std::set<uint32_t> mVersions;
RsGxsSignature mPersonalSignature;
RsGxsSignature mPublishSignature;
};
/*!
@ -142,13 +146,23 @@ public:
/***************** Group request receive API ********************/
/*!
* Request group, not intialising version member of RsGxsGrpId
* results in the latest version of groups being returned
* @param grpIds the id/version of the group requested
* @return token for request
* @see receiveGrp()
*/
int requestGrp(std::list<RsGxsGrpId>& grpIds);
/*!
* Request group, not intialising version member of RsGxsGrpId
* results in the latest version of group being returned
* @param grpIds the id/version of the group requested
* @return token for request
* @see receiveGrpList()
*/
int requestGrp(std::list<RsGxsGrpId>& grpIds);
int requestSubscribedGrpList();
/*!
* pulls in all grps held by peer
@ -160,24 +174,26 @@ public:
/*!
* returns IDs of groups which are still in valid time range
* returns Ids of groups which are still in valid time range
* @return token for request
*/
int requestGrpList();
/*!
* @param token the token to be redeemed
* @param errCode error code, can be exchanged for error string
* @param grpList list of group ids associated to request token
*/
virtual void receiveGrpList(int token, std::list<RsGxsGrpId>& grpList) = 0;
virtual void receiveGrpList(int token, int errCode, std::list<RsGxsGrpId>& grpList) = 0;
/*!
* Event call back from Gxs runner
* after requested Grp(s) have been retrieved
* @param token the token to be redeemed
* @param errCode error code, can be exchanged for error string
* @param grps list of groups associated to request token
*/
virtual void receiveGrp(int token, std::set<RsGxsGroup*>& grps) = 0;
virtual void receiveGrp(int token, int errCode, std::set<RsGxsGroup*>& grps) = 0;
/*************** Start: Msg request receive API ********************/
@ -213,7 +229,7 @@ public:
* after request msg(s) have been received
* @param token token to be redeemed
*/
virtual void receiveMsg(int token, std::set<RsGxsMsg*>& msgs) = 0;
virtual void receiveMsg(int token, int errCode, std::set<RsGxsMsg*>& msgs) = 0;
/*!
* request message ids for grp
@ -226,16 +242,18 @@ public:
/*!
*
* @param token to be redeemed
* @param errCode error code, can be exchanged for error string
* @param the msgIdSet associated to request token
*/
virtual void receiveMsgIdList(int token, std::list<RsGxsMsgId>& msgIdList) = 0;
virtual void receiveMsgIdList(int token, int errCode, std::list<RsGxsMsgId>& msgIdList) = 0;
/*!
* @param searchToken token to be redeemed
* @param errCode error code, can be exchanged for error string
* @param result result set
*/
void receivedSearchResult(int searchToken, std::set<RsGxsSearchResult*> results);
void receivedSearchResult(int searchToken, int errCode, std::set<RsGxsSearchResult*> results);
/*************** End: Msg request receive API ********************/
@ -247,7 +265,17 @@ public:
* Pushes a RsGxsItem for publication
* @param msg set of messages to push onto service for publication
*/
void pushMsg(std::set<RsGxsMsg*>& msg);
int pushMsg(std::set<RsGxsMsg*>& msg);
/*!
* Updates an already published message
* on your network with this one
* Message must be associated to an identity on
* publication for this to work
* @param msg the message to update
* @return
*/
int updateMsg(std::set<RsGxsMsg*>& msg);
/*!
@ -259,15 +287,26 @@ public:
int pushGrp(std::set<RsGxsGroup*>& grp, std::string& profileName);
/*!
* Pushes a RsGxsGroup onto RsGxs network, associates it with an RsGixs profile to be
* Update an already published group with
* new information
* This increments the version number
* @param grp grp to update
* @return token to be redeemed
*/
int updateGrp(std::set<RsGxsGroup*>& grp);
/*!
* Pushes a set of RsGxsGroups onto RsGxs network, associates it with an RsGixs profile to be
* created given the parameters below
* @param grp set of messages to push onto service for publication
* @param type the type of identity to create
* @param peers peers to share this identity with
* @param pseudonym if type is pseudonym then uses this as the name of the pseudonym Identity
* @return token to be redeemed
* @see errorMsg
*/
void pushGrp(std::set<RsGxsGroup*>& grp, RsIdentityExchangeService::IdentityType type, const std::set<std::string>& peers,
RsGxsGroup*& group, const std::string& pseudonymName = "");
int pushGrp(std::set<RsGxsGroup*>& grp, RsIdentityExchangeService::IdentityType type, const std::set<std::string>& peers,
const std::string& pseudonymName = "");
/*********** End: publication *****************/
@ -287,10 +326,14 @@ public:
/*!
*
* This sets an RsGroup to be able to share file between its members
* This says listed group can are only ones that can
* share grp/msgs between themselves for grpId
* Default behaviour on group sharing is share with between all peers
* @param rsGrpId list of group id sharing will be allowed
* @param grpId groupId that share behaviour is being set
* @return status token to be redeemed
*/
void setShareGroup(const std::list<RsGroupId>&, const RsGxsGrpId& grpId);
int setShareGroup(const std::list<RsGroupId>& rsGrpId, const RsGxsGrpId& grpId);
/*********** End: Identity control and groups *****************/
@ -319,6 +362,11 @@ public:
int flagGroupRead(const RsGxsGrpId& grpId, bool read);
/*!
* This marks a local message created by yourself to
* no longer distributed and removed
* Entry in db is discarded after expiration date has passed
* TODO: this may send a standard marker to user that message
* should be removed
* @param msgId
*/
int requestDeleteMsg(const RsGxsMsgId& msgId);
@ -337,13 +385,15 @@ public:
* How long to keep subscribed groups
* @param length how long to keep group in seconds
*/
void setSubscirbedGroupDiscardAge(uint32_t length);
int setSubscribedGroupDiscardAge(uint32_t length);
/*!
* How long to keep unsubscribed groups
* @param length how long to keep groups in seconds
* @return status token to be redeemed
* @see statusMsg()
*/
void setUnsubscribedGrpDiscardAge(uint32_t length);
int setUnsubscribedGrpDiscardAge(uint32_t length);
/*!
* How long to keep messages, group discard age supercedes this \n
@ -364,9 +414,17 @@ public:
/*!
* This called by event runner on status of subscription
* @param token the token to be redeemed
* @param errCode error code, can be exchanged for error string
* @param gxsStatus the status of subscription request
*/
virtual void receiveSubscribeToGrp(int token, int gxsStatus) = 0;
virtual void receiveSubscribeToGrp(int token, int errCode, int gxsStatus) = 0;
/*!
*
* @param error_code
* @param errorMsg
*/
virtual void statusMsg(int error_code, const std::string& errorMsg);
/******************* End: Configuration *************************/
@ -407,39 +465,56 @@ public:
/*!
*
* @param term This contains the search term
* @param hops how many hops to search up to
* @param hops how many hops from your immediate peer on the network for search
* @param delay lenght of time search should persist (if you are online search will be saved \n
* delay seconds, max is 2 days
* @return token to redeem search
*/
int requestRemoteSearch(RsGxsSearch* term, uint32_t hops);
int requestRemoteSearchGrps(RsGxsSearch* term, uint32_t hops, uint32_t delay, bool immediate);
// Remote Search...(2 hops ?)
/*!
*
* @param term This contains the search term
* @param hops how many hops from your immediate peer on the network for search
* @param delay lenght of time search should persist (if you are online search will be saved \n
* delay seconds, max is 2 days
* @return token to redeem search
*/
int requestRemoteSearchMsgs(RsGxsSearch* term, uint32_t hops, uint32_t delay, bool immediate);
/*!
*
* @param token
* @param errCode error code, can be exchanged for error string
* @param grpIds list of grp ids
*/
virtual void receiveLocalSearchGrps(int token, std::list<RsGxsGrpId>& grpIds);
virtual void receiveLocalSearchGrps(int token, int errCode, std::list<RsGxsGrpId>& grpIds);
/*!
*
* @param token the request token to be redeemed
* @param errCode error code, can be exchanged for error string
* @param msgIds the message ids that contain contain search term
*/
virtual void receiveLocalSearchMsgs(int token, std::list<RsGxsMsgId> &msgIds) = 0;
virtual void receiveLocalSearchMsgs(int token, int errCode, std::list<RsGxsMsgId> &msgIds) = 0;
/*!
*
* @param token request token to be redeemed
* @param errCode error code, can be exchanged for error string
* @param grps
*/
virtual void receiveRemoteSearchGrps(int token, std::list<RsGxsGrpId>& grps) = 0;
virtual void receiveRemoteSearchGrps(int token, int errCode, std::list<RsGxsGrpId>& grps) = 0;
/*!
*
* @param token the request token to be redeemed
* @param errCode error code, can be exchanged for error string
* @param msgIds
*/
virtual void recieveRemoteSearchMsgs(int token, std::list<RsGxsMsgId>& msgs) = 0;
virtual void recieveRemoteSearchMsgs(int token, int errCode, std::list<RsGxsMsgId>& msgs) = 0;
/*!
* Note if parent group is not present this will be requested \n

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -42,7 +42,7 @@ const int RetroDb::OPEN_READONLY = SQLITE_OPEN_READONLY;
const int RetroDb::OPEN_READWRITE = SQLITE_OPEN_READWRITE;
const int RetroDb::OPEN_READWRITE_CREATE = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE;
RetroDb::RetroDb(const std::string &dbPath, int flags) : mDb(NULL), mCurrStmt(NULL) {
RetroDb::RetroDb(const std::string &dbPath, int flags) : mDb(NULL) {
int rc = sqlite3_open_v2(dbPath.c_str(), &mDb, flags, NULL);

View File

@ -141,11 +141,6 @@ public:
*/
void vacuum();
/*!
* TODO: remove, do not use; for testing
*/
sqlite3_stmt* getCurrStmt();
public:
static const int OPEN_READONLY;
@ -156,7 +151,6 @@ private:
sqlite3* mDb;
sqlite3_stmt* mCurrStmt; // TODO: remove
};