#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "RHexCom.hh"
#define MAILBOX_ID 100
struct MailStruct {
  int a, b;
  unsigned char c;
};
int main(int argc, char** argv)
{
  if (argc != 4) {
    fprintf(stderr, "Usage: mailer <port> <dest_machine> <dest_port>\n");
    exit(-1);
  }
  
  
  unsigned short port = atoi(argv[1]);
  CommManager* mgr = new CommManager(port);
  
  
  Mailer* mailer = mgr->createMailer(argv[2], atoi(argv[3]),
                                     sizeof(MailStruct), MAILBOX_ID);
  for (int i=1;;i++) {
    Message* msg = mailer->createMsg(); 
    
    MailStruct* ms = (MailStruct*) msg->getData();
    ms->a = i;
    ms->b = i*2;
    ms->c = i % 2;
    
    if (mailer->sendMsg(msg) < 0) {
      
      
      
      
      printf("Mailbox invalidated\n");
      mailer->releaseMsg(msg);
      break;
    }
    printf("Sent %d\n", i);
    usleep(1000000);
  }
  delete mgr;   
}