#include "network_protocol.h"
#include <vector>

class network_interface{
  public:

  virtual ~network_interface() { };

  //find other nodes in the system, returns 0 for found
  virtual int join() = 0;
  
  //send a message to some number of other nodes dictated by hops
  virtual int broadcast(int hops, char *msg, int len) = 0;
  
  //send a message to another node in the system, this must be a known node
  virtual int send(node_id dest, char *msg, int len) = 0;   

  virtual std::vector<node_id> neighbors() = 0;

};
