11 #ifndef _LIBALEXTRACTOR_ALEXTRACTOR_ALEXTRACTOR_H_
12 #define _LIBALEXTRACTOR_ALEXTRACTOR_ALEXTRACTOR_H_
17 #include <boost/scoped_ptr.hpp>
18 #include <boost/shared_ptr.hpp>
19 #include <boost/thread/mutex.hpp>
20 #include <boost/thread/shared_mutex.hpp>
25 class ALExtractorPrivate;
46 const std::string& pName);
58 virtual void subscribe(
const std::string &pSubscribedName,
60 const float &pPrecision);
69 virtual void subscribe(
const std::string &pSubscribedName);
77 virtual void updatePeriod(
const std::string &pSubscribedName,
85 virtual void updatePrecision(
const std::string &pSubscribedName,
86 const float &pPrecision);
93 virtual void unsubscribe(
const std::string &pSubscribedName);
100 virtual int getCurrentPeriod();
107 virtual float getCurrentPrecision();
114 virtual int getMyPeriod(
const std::string &pSubscribedName);
121 virtual float getMyPrecision(
const std::string &pSubscribedName);
128 ALValue getSubscribersInfo();
134 virtual std::string httpGet();
146 virtual void xStartDetection(
const int pPeriod,
147 const float pPrecision) = 0;
165 virtual void xStopDetection() = 0;
175 virtual int getDefaultPeriod();
184 virtual float getDefaultPrecision();
194 virtual int getMinimumPeriod();
203 virtual int getMaximumPeriod();
209 virtual std::vector<std::string> getOutputNames(
void);
215 std::vector<std::string> getEventList(
void);
221 std::vector<std::string> getMemoryKeyList(
void);
226 void declareEvent(
const std::string& event);
231 void declareMemoryKey(
const std::string& key);
235 boost::scoped_ptr<ALExtractorPrivate> _private;
239 void xUpdateParameters();
242 boost::mutex fSubscriptionMutex;
246 #endif // _LIBALEXTRACTOR_ALEXTRACTOR_ALEXTRACTOR_H_