// unmarshall RPCs from lock_smain and hand them to lock_server

#include "../rpc/rpc.h"
#include <arpa/inet.h>
#include "lock_server.h"
#include "lock_server_cache.h"
#include "metadata_server.h"
int
main(int argc, char *argv[])
{
  setvbuf(stdout, NULL, _IONBF, 0);

  if(argc != 2){
    fprintf(stderr, "Usage: %s port\n", argv[0]);
    exit(1);
  }
  
  rpcs server(htons(atoi(argv[1])));
 /* lock_server ls;
  server.reg(lock_protocol::stat, &ls, &lock_server::stat);
  server.reg(lock_protocol::acquire, &ls, &lock_server::acquire);
  server.reg(lock_protocol::release, &ls, &lock_server::release); */
  
  // lock_server_cache lsc;
//   server.reg(cached_lock_protocol::stat, &lsc, &lock_server_cache::stat);
//   server.reg(cached_lock_protocol::acquire, &lsc, &lock_server_cache::acquire);
//   server.reg(cached_lock_protocol::release, &lsc, &lock_server_cache::release);
 
  metadata_server ms;
  server.reg(metadata_protocol::join, &ms, &metadata_server::join);
  server.reg(metadata_protocol::leave, &ms, &metadata_server::leave);
  server.reg(metadata_protocol::update, &ms, &metadata_server::update);
  server.reg(metadata_protocol::stats, &ms, &metadata_server::stats);
  //TODO: rest of metadata server calls
  
  while(1) {
     
     sleep(1000);
 }
 
}
