/** * * Version : $Id$ * This file was generated by Aldebaran Robotics ModuleGenerator */ #include "events.h" #include #include #include #include Events::Events( boost::shared_ptr broker, const std::string& name): AL::ALModule(broker, name), fMemoryProxy(getParentBroker()) { setModuleDescription(""); functionName("callback", getName(), ""); BIND_METHOD(Events::callback); } Events::~Events() { fMemoryProxy.unsubscribeToEvent("ExampleEvent", "Events"); fMemoryProxy.unsubscribeToMicroEvent("ExampleMicroEvent", "Events"); } void Events::init() { try { //Allow ALMemory to start the Events module when someone subscribe to ExampleEvent //This module should inherit from ALExtractor //It's not necessary to call this function when you dont want the autostart feature. //fMemoryProxy.declareEvent("ExampleEvent", "Events"); fMemoryProxy.subscribeToEvent("ExampleEvent", "Events", "userDataToIdentifyEvent", "callback"); fMemoryProxy.subscribeToMicroEvent("ExampleMicroEvent", "Events", "AnotherUserDataToIdentifyEvent", "callback"); //generate a simple event for the test generateEvent(42.0); generateMicroEvent(42.0); } catch (const AL::ALError& e) { qiLogError("module.example") << e.what() << std::endl; } } void Events::generateEvent(const float& value) { /** Raise an event with its value (here a float, but could be something else.*/ fMemoryProxy.raiseEvent("ExampleEvent", value); } void Events::generateMicroEvent(const float& value) { /** Raise an event with its value (here a float, but could be something else.*/ fMemoryProxy.raiseMicroEvent("ExampleMicroEvent", value); } void Events::callback(const std::string &key, const AL::ALValue &value, const AL::ALValue &msg) { qiLogInfo("module.example") << "Callback:" << key << std::endl; qiLogInfo("module.example") << "Value :" << value << std::endl; qiLogInfo("module.example") << "Msg :" << msg << std::endl; }