mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-08-16 18:10:40 -04:00
added structures for generic turtle search and access functions in Gxs objects
This commit is contained in:
parent
b5c1b8210b
commit
7caf06b57d
31 changed files with 513 additions and 262 deletions
|
@ -173,6 +173,7 @@ class TurtleSearchRequestInfo
|
|||
int depth ; // depth of the request. Used to optimize tunnel length.
|
||||
uint32_t result_count; // responses to this request. Useful to avoid spamming tunnel responses.
|
||||
std::string keywords;
|
||||
RsTurtleClientService *client;// client who issues the request. This is null if the request does not have a local origin.
|
||||
};
|
||||
class TurtleTunnelRequestInfo
|
||||
{
|
||||
|
@ -244,11 +245,16 @@ class p3turtle: public p3Service, public RsTurtle, public p3Config
|
|||
// the request id, which will be further used by the gui to store results
|
||||
// as they come back.
|
||||
//
|
||||
// Eventually, search requests should be handled by client services. We will therefore
|
||||
// remove the specific file search packets from the turtle router.
|
||||
//
|
||||
virtual TurtleSearchRequestId turtleSearch(const std::string& string_to_match) ;
|
||||
virtual TurtleSearchRequestId turtleSearch(const RsRegularExpression::LinearizedExpression& expr) ;
|
||||
// The first two methods are old style search requests for FT, while the 3rd one is using a generic search data type, that is only to
|
||||
// be deserialized by the service. The memory ownership is kept by the calling function. Similarly, the search response will be a
|
||||
// generic data type that is to be deserialized by the client service.
|
||||
//
|
||||
// Eventually, search requests will use the generic system
|
||||
// even for FT. We need to keep the old method for a while for backward compatibility.
|
||||
//
|
||||
virtual TurtleRequestId turtleSearch(const RsRegularExpression::LinearizedExpression& expr) ;
|
||||
virtual TurtleRequestId turtleSearch(const std::string& string_to_match) ;
|
||||
virtual TurtleRequestId turtleSearch(unsigned char *search_bin_data,uint32_t search_bin_data_len,RsTurtleClientService *client_service) ;
|
||||
|
||||
// Initiates tunnel handling for the given file hash. tunnels. Launches
|
||||
// an exception if an error occurs during the initialization process. The
|
||||
|
@ -393,9 +399,6 @@ class p3turtle: public p3Service, public RsTurtle, public p3Config
|
|||
/// Performs a search calling local cache and search structure.
|
||||
void performLocalSearch(const std::string& match_string,std::list<TurtleFileInfo>& result) ;
|
||||
|
||||
/// Returns a search result upwards (possibly to the gui)
|
||||
void returnSearchResult(RsTurtleSearchResultItem *item) ;
|
||||
|
||||
/// Returns true if the file with given hash is hosted locally, and accessible in anonymous mode the supplied peer.
|
||||
virtual bool performLocalHashSearch(const TurtleFileHash& hash,const RsPeerId& client_peer_id,RsTurtleClientService *& service);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue