00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _CQUERYPLUGIN
00027 #define _CQUERYPLUGIN
00028 #include "libMRML/include/uses-declarations.h"
00029 #include <sys/types.h>
00030 #include <dirent.h>
00031 #include <dlfcn.h>
00032
00033 #include <iostream>
00034 #include <string>
00035 #include <map>
00036
00037
00038 class CQuery;
00039 class CAlgorithm;
00040 class CAccessorAdminCollection;
00041
00042 class CQueryPlugin{
00043 protected:
00045 void* mDlOpenHandle;
00047 string mName;
00049 CQuery* (*mMakeQuery)(CAccessorAdminCollection& inAccessorAdminCollection,
00050 CAlgorithm& inAlgorithm);
00052 char* (*mGetName)(void);
00054 bool mIsSane;
00055 public:
00057 CQuery* makeQuery(CAccessorAdminCollection& inAccessorAdminCollection,
00058 CAlgorithm& inAlgorithm);
00060 char* getName();
00062 CQueryPlugin(string,string,string);
00064 CQueryPlugin(CQueryPlugin&);
00066 ~CQueryPlugin();
00068 bool isSane()const;
00069 };
00070
00071 #endif