#include "connect.h"

ConnectWorker::ConnectWorker(Handler *handler, const std::string &uri, Nan::Callback *callback) :
    AsyncWorker(callback), _handler(handler), _uri(uri)
{
}

void ConnectWorker::Execute()
{
  std::string err;

  if (!this->_handler->connect(this->_uri, err))
    SetErrorMessage(err.c_str());
}

void ConnectWorker::HandleOKCallback()
{
  v8::Local<v8::Value> argv[] = { Nan::Null() };

  this->callback->Call(1, argv);
}

void ConnectWorker::HandleErrorCallback()
{
  v8::Local<v8::Value> argv[] = { v8::String::NewFromUtf8(Nan::GetCurrentContext()->GetIsolate(), this->ErrorMessage()) };

  this->callback->Call(1, argv);
}