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();
140 virtual void xStartDetection(
const int pPeriod,
141 const float pPrecision) = 0;
159 virtual void xStopDetection() = 0;
169 virtual int getDefaultPeriod();
178 virtual float getDefaultPrecision();
188 virtual int getMinimumPeriod();
197 virtual int getMaximumPeriod();
203 virtual std::vector<std::string> getOutputNames(
void);
209 std::vector<std::string> getEventList(
void);
215 std::vector<std::string> getMemoryKeyList(
void);
220 void declareEvent(
const std::string& event);
225 void declareMemoryKey(
const std::string& key);
229 boost::scoped_ptr<ALExtractorPrivate> _private;
233 void xUpdateParameters();
236 boost::mutex fSubscriptionMutex;
240 #endif // _LIBALEXTRACTOR_ALEXTRACTOR_ALEXTRACTOR_H_