/** 
 * Método privado que recepciona y gestiona los eventos generados en el nodo
 * JAUS NodeManager
 * @param[in] e Evento capturado
 */
void JausHandler::handleEvent(NodeManagerEvent *e) {

  switch (e->getType()) {
    case NodeManagerEvent::SystemTreeEvent:
      SystemTreeEvent *treeEvent;
      treeEvent = (SystemTreeEvent *) e;
      // Actualizacion subsistema MyC añadido
      if(treeEvent->getSubType() == SystemTreeEvent::SubsystemAdded && treeEvent->getSubsystem()->id == JAUS_SUBSYSTEM_MYC){
        mycAvailable = true;
      }
      // Actualizacion nodo tablet añadido
      if(treeEvent->getSubType() == SystemTreeEvent::NodeAdded && treeEvent->getNode()->id == JAUS_NODE_TABLET){
        tabletAvailable = true;
      }
      printf("%s\n", treeEvent->toString().c_str());
      delete e;
      break;

    case NodeManagerEvent::ErrorEvent:
      ErrorEvent *errorEvent;
      errorEvent = (ErrorEvent *) e;
      //printf("%s\n", errorEvent->toString().c_str());
      delete e;
      break;
    default:
      delete e;
      break;
  }
}
void HandlerJAUS::handleEvent(NodeManagerEvent *e)
{
	SystemTreeEvent *treeEvent;
	ErrorEvent *errorEvent;
	JausMessageEvent *messageEvent;
	DebugEvent *debugEvent;
	ConfigurationEvent *configEvent;
	string evento;

	JausMessage jausMessage;
	switch(e->getType())
	{
		case NodeManagerEvent::SystemTreeEvent:
			treeEvent = (SystemTreeEvent *)e;
			evento=treeEvent->toString();
			if(treeEvent->getSubType()==SystemTreeEvent::SubsystemRemoved)
				eventConexion=JAUS_EVENT_DISCONNECT;
			else if(treeEvent->getSubType()==SystemTreeEvent::SubsystemAdded)
				eventConexion=JAUS_EVENT_CONNECT;
			printf("%s\n", treeEvent->toString().c_str());
			delete e;
			break;

		case NodeManagerEvent::ErrorEvent:
			errorEvent = (ErrorEvent *)e;
			//printf("%s\n", errorEvent->toString().c_str());
			delete e;
			break;

		case NodeManagerEvent::JausMessageEvent:
			messageEvent = (JausMessageEvent *)e;
			jausMessage=messageEvent->getJausMessage();
			delete e;
			break;

		case NodeManagerEvent::DebugEvent:
			debugEvent = (DebugEvent *)e;
			//printf("%s\n", debugEvent->toString().c_str());
			delete e;
			break;

		case NodeManagerEvent::ConfigurationEvent:
			configEvent = (ConfigurationEvent *)e;
			//printf("%s\n", configEvent->toString().c_str());
			delete e;
			break;

		default:
			delete e;
			break;
	}
}