put in the changes by Andrea to make it as static and remove as many destructors bugs

This commit is contained in:
Dhanya Maliakal
2015-11-02 17:33:10 +01:00
parent f77b78b5c6
commit e9f51e2ef5
7 changed files with 46 additions and 76 deletions

View File

@ -6,25 +6,38 @@
#include <iostream>
#include <string.h>
#include <signal.h> //SIGINT
#include "utilities.h"
#include "logger.h"
using namespace std;
slsReceiverUsers *receiver;
void deleteReceiver(slsReceiverUsers* r){
if(r){delete r;r=0;}
}
void closeFile(int p){
deleteReceiver(receiver);
}
int main(int argc, char *argv[]) {
//Catch signal SIGINT to close files properly
signal(SIGINT,closeFile);
int ret = slsReceiverDefs::OK;
receiver = new slsReceiverUsers(argc, argv, ret);
slsReceiverUsers *user = new slsReceiverUsers(argc, argv, ret);
if(ret==slsReceiverDefs::FAIL)
if(ret==slsReceiverDefs::FAIL){
deleteReceiver(receiver);
return -1;
}
//register callbacks
/**
callback arguments are
filepath
@ -37,10 +50,8 @@ int main(int argc, char *argv[]) {
1 callback writes file, we have to open, close it
2 we open, close, write file, callback does not do anything
registerCallBackStartAcquisition(int (*func)(char*, char*,int, int, void*),void *arg);
*/
//receiver->registerCallBackStartAcquisition(func,arg);
@ -49,32 +60,25 @@ int main(int argc, char *argv[]) {
total farmes caught
registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg);
*/
//receiver->registerCallBackAcquisitionFinished(func,arg);
/**
args to raw data ready callback are
framenum
datapointer
file descriptor
guidatapointer (NULL, no data required)
NEVER DELETE THE DATA POINTER
REMEMBER THAT THE CALLBACK IS BLOCKING
registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg);
*/
//receiver->registerCallBackRawDataReady(func,arg);
//start tcp server thread
if(user->start() == slsReceiverDefs::OK){
if(receiver->start() == slsReceiverDefs::OK){
FILE_LOG(logDEBUG1) << "DONE!" << endl;
string str;
cin>>str;
@ -82,10 +86,10 @@ int main(int argc, char *argv[]) {
while(str.find("exit") == string::npos)
cin>>str;
//stop tcp server thread, stop udp socket
user->stop();
receiver->stop();
}
delete user;
deleteReceiver(receiver);
cout << "Goodbye!" << endl;
return 0;
}