#ifndef DIGITALIOWRAPPER_H
#define DIGITALIOWRAPPER_H

#include <node.h>
#include <node_object_wrap.h>
#include "../DigitalIO/DigitalIO.h"

class DigitalIOWrapper : public node::ObjectWrap {
public:
  static void Init();
  static void NewInstance(const v8::FunctionCallbackInfo<v8::Value>& args);

private:
  explicit DigitalIOWrapper(uint8_t _header);
  ~DigitalIOWrapper();

  static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
  static void read(const v8::FunctionCallbackInfo<v8::Value>& args);

  static void release(const v8::FunctionCallbackInfo<v8::Value>& args);

  static v8::Persistent<v8::Function> constructor;

  DigitalIO *io;
};

#endif
