/**
 * @author
 *
 * This file was generated by Aldebaran Robotics ModuleGenerator
 */

#ifndef EVENTS_EVENTS_H
#define EVENTS_EVENTS_H

#include <boost/shared_ptr.hpp>
#include <alcommon/almodule.h>
#include <string>

#include <alproxies/almemoryproxy.h>

namespace AL
{
  class ALBroker;
}

class Events : public AL::ALModule
{
  public:

    Events(boost::shared_ptr<AL::ALBroker> broker, const std::string& name);

    virtual ~Events();

    /**
    * Will be called at module startup. Declares example event and subscribes to
    * it.
    */
    virtual void init();

    /**
    * Callback function every time the example event is called.
    */
    void callback(const std::string &key, const AL::ALValue &value, const AL::ALValue &msg);

    /**
    * A very simple function to generate the event.
    */
    void generateEvent(const float& value);

    /**
    * A very simple function to generate the event.
    */
    void generateMicroEvent(const float& value);

  private:

    AL::ALMemoryProxy fMemoryProxy;


};

#endif  // EVENTS_EVENTS_H

