cleaning the project

This commit is contained in:
2014-09-10 09:19:35 +02:00
parent dc04efbbb1
commit 27780d02d8
46 changed files with 24 additions and 57 deletions

View File

@ -0,0 +1,161 @@
/********************************************//**
* @file slsReceiver.cpp
* @short creates the UDP and TCP class objects
***********************************************/
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
#include <stdlib.h>
#include <getopt.h>
#include "slsReceiver.h"
//#include "UDPInterface.h"
using namespace std;
slsReceiver::slsReceiver(int argc, char *argv[], int &success){
/**
* Constructor method to start up a Receiver server. Reads configuration file, options, and
* assembles a Receiver using TCP and UDP detector interfaces
*
* @param iarg
*
* @return
*/
//creating base receiver
int tcpip_port_no = 1984;
success=OK;
string fname = "";
string udp_interface_type = "standard";
//parse command line for config
static struct option long_options[] = {
/* These options set a flag. */
//{"verbose", no_argument, &verbose_flag, 1},
/* These options dont set a flag.
We distinguish them by their indices. */
{"type", required_argument, 0, 't'},
{"config", required_argument, 0, 'f'},
{"rx_tcpport", required_argument, 0, 'b'},
{"help", no_argument, 0, 'h'},
{0, 0, 0, 0}
};
/* getopt_long stores the option index here. */
int option_index = 0;
int c;
while ( c != -1 ){
c = getopt_long (argc, argv, "bfht", long_options, &option_index);
/* Detect the end of the options. */
if (c == -1)
break;
switch(c){
case 'f':
fname = optarg;
//cout << long_options[option_index].name << " " << optarg << endl;
break;
case 'b':
sscanf(optarg, "%d", &tcpip_port_no);
break;
case 't':
udp_interface_type = optarg;
break;
case 'h':
string help_message = """\nSLS Receiver Server\n\n""";
help_message += """usage: slsReceiver --config config_fname [--rx_tcpport port]\n\n""";
help_message += """\t--config:\t configuration filename for SLS Detector receiver\n""";
help_message += """\t--rx_tcpport:\t TCP Communication Port with the client. Default: 1954.\n\n""";
help_message += """\t--type:\t Type of the receiver. Possible arguments are: standard, REST. Default: standard.\n\n""";
cout << help_message << endl;
break;
}
}
// if required fname parameter not available, fail
if (fname == "")
success = FAIL;
if((!fname.empty()) && (success == OK)){
FILE_LOG(logINFO) << "config file name " << fname;
success = read_config_file(fname, &tcpip_port_no);
//VERBOSE_PRINT("Read configuration file of " + iline + " lines");
}
else {
FILE_LOG(logERROR) << "Error opening configuration file " << fname ;
success = FAIL;
}
if(success != OK){
FILE_LOG(logERROR) << "Failed: see output above for more information " ;
}
if (success==OK){
cout << "SLS Receiver starting " << udp_interface_type << endl;
udp_interface = UDPInterface::create(udp_interface_type);
tcpipInterface = new slsReceiverTCPIPInterface(success, udp_interface, tcpip_port_no);
//tcp ip interface
}
}
slsReceiver::~slsReceiver() {
if(udp_interface)
delete udp_interface;
if(tcpipInterface)
delete tcpipInterface;
}
int slsReceiver::start() {
return tcpipInterface->start();
}
void slsReceiver::stop() {
tcpipInterface->stop();
}
void slsReceiver::closeFile(int p) {
tcpipInterface->closeFile(p);
}
int64_t slsReceiver::getReceiverVersion(){
tcpipInterface->getReceiverVersion();
}
void slsReceiver::registerCallBackStartAcquisition(int (*func)(char*, char*,int, int, void*),void *arg){
//tcpipInterface
udp_interface->registerCallBackStartAcquisition(func,arg);
}
void slsReceiver::registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg){
//tcpipInterface
udp_interface->registerCallBackAcquisitionFinished(func,arg);
}
void slsReceiver::registerCallBackRawDataReady(void (*func)(int, char*, int, FILE*, char*, void*),void *arg){
//tcpipInterface
udp_interface->registerCallBackRawDataReady(func,arg);
}