/** @file "_cluster.cc"
 * @brief cluster main task
 *
 * @author Frederic Py <fpy@mbari.org>
 */
#include "Cluster.hh"

#include "System.h"
#include "Syslog.h"

int main(int argc, char *argv[]) {
  if( System::setTaskPriority(BackgroundPriority-2)==-1 ) {
    Syslog::write("cluster - unable to fix my task priority.");
    return 1;
  }
  Cluster *cluster = NULL;
  
  try {
    cluster = new Cluster(CLUSTER_PERIOD); 

    Syslog::write("cluster - loading configuration.");
    cluster->loadConfig("cluster.cfg");
    Syslog::write("cluster - starting the task.");
    cluster->run();
 
    Syslog::write("cluster - end of task.");
    Cluster *tmp = cluster;
    cluster = NULL;
    delete tmp;

    return 0;
  } catch(ParseError pe) { 
    Syslog::write("%s", pe.msg);
  } catch(Exception e) {
    Syslog::write("cluster - caught exception: %s", e.msg);
  } catch(...) {
    Syslog::write("cluster - caught exception!");
  }
  if( NULL!=cluster )
    delete cluster;
  return 2;
} // main
