Wittyshare  0.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
WsMnoGoSearch.h
Go to the documentation of this file.
1 /*
2  * Filename: WsMnoGoSearch.h
3  *
4  * Description: Class used to search content thanks to mnogosearch
5  *
6  * Version: 1.0
7  * Created: 07/11/2011 01:44:44 PM
8  */
9 
10 #ifndef WS_MNOGOSEARCH_H__
11 #define WS_MNOGOSEARCH_H__
12 
13 #include <dlfcn.h>
14 
15 extern "C" {
16 #include <udmsearch.h>
17 #include <udm_utils.h>
18 }
19 
21 
22 typedef UDM_ENV* (*pf_UdmEnvInit) (UDM_ENV* Env);
23 typedef UDM_AGENT* (*pf_UdmAgentInit) (UDM_AGENT* Agent, UDM_ENV* Env, int id);
24 typedef int (*pf_UdmAgentAddLine) (UDM_AGENT* Agent, const char* line);
25 typedef UDM_RESULT* (*pf_UdmFind2) (UDM_AGENT* Agent, const char* query);
26 typedef int (*pf_UdmVarListFindInt) (UDM_VARLIST* vars, const char* name, const int defval);
27 typedef const char* (*pf_UdmVarListFindStr) (UDM_VARLIST* vars, const char* name, const char* defval);
28 typedef void (*pf_UdmResultFree) (UDM_RESULT* Result);
29 typedef void (*pf_UdmAgentFree) (UDM_AGENT* Agent);
30 typedef void (*pf_UdmEnvFree) (UDM_ENV* Env);
31 
33 public:
39  WsMnoGoSearch();
40 
41  virtual ~WsMnoGoSearch();
42 
49  int load(FileSystemTreePtr fst, string query);
50 
55  int getSize();
56 
62  vector<WsResultItem> getResults(const set<string>& groups);
63 
64 private:
66  char m_udmQuery[256];
67  string m_user;
68  int m_size;
69  list<WsResultItem> m_results;
70 
71  /* mnogosearch variable */
72  void* m_hndlMno;
82 
83  UDM_ENV m_env;
84  UDM_AGENT m_agent;
85  UDM_RESULT* m_res;
86 };
87 
88 extern "C" {
89  void WsMnoGoSearchInit(void) __attribute__((constructor));
91  {
92  return new WsMnoGoSearch();
93  }
94 }
95 
96 #endif
pf_UdmAgentFree mf_UdmAgentFree
Definition: WsMnoGoSearch.h:80
int(* pf_UdmAgentAddLine)(UDM_AGENT *Agent, const char *line)
Definition: WsMnoGoSearch.h:24
UDM_AGENT m_agent
Definition: WsMnoGoSearch.h:84
void * m_hndlMno
Definition: WsMnoGoSearch.h:72
FileSystemTreePtr m_fst
Definition: WsMnoGoSearch.h:65
WsMnoGoSearch * buildModule()
Definition: WsMnoGoSearch.h:90
int load(FileSystemTreePtr fst, string query)
Loads all search results.
pf_UdmAgentAddLine mf_UdmAgentAddLine
Definition: WsMnoGoSearch.h:75
pf_UdmVarListFindInt mf_UdmVarListFindInt
Definition: WsMnoGoSearch.h:77
UDM_ENV *(* pf_UdmEnvInit)(UDM_ENV *Env)
Definition: WsMnoGoSearch.h:22
void WsMnoGoSearchInit(void) __attribute__((constructor))
vector< WsResultItem > getResults(const set< string > &groups)
Get list of documents readable by person member of all groups passed in parameter.
pf_UdmAgentInit mf_UdmAgentInit
Definition: WsMnoGoSearch.h:74
list< WsResultItem > m_results
Definition: WsMnoGoSearch.h:69
void(* pf_UdmEnvFree)(UDM_ENV *Env)
Definition: WsMnoGoSearch.h:30
const char *(* pf_UdmVarListFindStr)(UDM_VARLIST *vars, const char *name, const char *defval)
Definition: WsMnoGoSearch.h:27
Abstract class for search.
boost::shared_ptr< WsFileSystemTree > FileSystemTreePtr
UDM_AGENT *(* pf_UdmAgentInit)(UDM_AGENT *Agent, UDM_ENV *Env, int id)
Definition: WsMnoGoSearch.h:23
char m_udmQuery[256]
Definition: WsMnoGoSearch.h:66
int getSize()
Loads all search results.
UDM_RESULT *(* pf_UdmFind2)(UDM_AGENT *Agent, const char *query)
Definition: WsMnoGoSearch.h:25
void(* pf_UdmResultFree)(UDM_RESULT *Result)
Definition: WsMnoGoSearch.h:28
pf_UdmResultFree mf_UdmResultFree
Definition: WsMnoGoSearch.h:79
void(* pf_UdmAgentFree)(UDM_AGENT *Agent)
Definition: WsMnoGoSearch.h:29
WsMnoGoSearch()
Constructor for the Search object.
pf_UdmFind2 mf_UdmFind2
Definition: WsMnoGoSearch.h:76
UDM_RESULT * m_res
Definition: WsMnoGoSearch.h:85
pf_UdmEnvFree mf_UdmEnvFree
Definition: WsMnoGoSearch.h:81
virtual ~WsMnoGoSearch()
pf_UdmVarListFindStr mf_UdmVarListFindStr
Definition: WsMnoGoSearch.h:78
int(* pf_UdmVarListFindInt)(UDM_VARLIST *vars, const char *name, const int defval)
Definition: WsMnoGoSearch.h:26
pf_UdmEnvInit mf_UdmEnvInit
Definition: WsMnoGoSearch.h:73