#ifndef COMMS_BEHAVIOUR_h
#define COMMS_BEHAVIOUR_h
#include "Arduino.h"
#include "Behaviours.h"
#include <VizBlocks.h>

/*
 * --------------------------------------------------
 * ---------------- SendCapabilities ----------------
 * --------------------------------------------------
 */

class SendCapabilities : public Behaviour
{
	VizBlocks* _node;

public:
	SendCapabilities(VizBlocks* node, String name = "SendCapabilities");
	/**
	   @brief What does this do?
	 */
	String start(String args);

};

/*
 * --------------------------------------------------
 * ---------------------- Link ----------------------
 * --------------------------------------------------
 */

class Link : public Behaviour
{
	VizBlocks* _node;
	String _peerId;
	const int _timeoutInterval = 5000;
	unsigned long _t = 0;

public:
	Link(VizBlocks* node, String name = "Link");
  /**
	   @brief What does this do?
	 */
	char* args();

	/**
	   @brief What does this do?
	 */
	String start(String args);

	/**
	   @brief What does this do?
	 */
	void update();

};

/*
 * --------------------------------------------------
 * ------------------- PingServer -------------------
 * --------------------------------------------------
 */

class PingServer : public Behaviour
{
	VizBlocks* _node;
	String str;
	const int _interval = 4000;
	unsigned long _t = 0;

public:
	PingServer(VizBlocks* node, String name = "PingServer");
	String start(String args);
	void update();

};

#endif