bergamaschi 4a133d8f6e Receiver API slsReceiverUsers implemented
git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@500 951219d9-93cf-4727-9268-0efd64621fa3
2013-04-04 09:32:44 +00:00

84 lines
1.8 KiB
C++

/********************************************//**
* @file slsReceiverUsers.h
* @short API for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data
*
***********************************************/
#ifndef SLS_RECEIVER_USERS_H
#define SLS_RECEIVER_USERS_H
#include "slsReceiver_funcs.h"
class slsReceiverFuncs;
class slsReceiverUsers {
public:
/**
* Constructor
* reads config file, creates socket, assigns function table
* @param argc from command line
* @param argv from command line
* @param succecc socket creation was successfull
*/
slsReceiverUsers(int argc, char *argv[], int &success);
/** Destructor */
~slsReceiverUsers();
/** Close File */
static void closeFile(int p);
/** starts listening on the TCP port for client comminication */
void start();
/**
callback arguments are
filepath
filename
fileindex
data size
return value is
0 callback takes care of open,close,wrie file
1 callback writes file, we have to open, close it
2 we open, close, write file, callback does not do anything
*/
void registerCallBackStartAcquisition(int (*func)(char*, char*,int, int, void*),void *arg){slsReceiverList->registerCallBackStartAcquisition(func,arg);};;
/**
callback argument is
total frames caught
*/
int registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg){slsReceiverList->registerCallBackAcquisitionFinished(func,arg);};
/**
args to raw data ready callback are
framenum
datapointer
file descriptor
guidatapointer (NULL, no data required)
*/
int registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg){slsReceiverList->registerCallBackRawDataReady(func,arg);};
private:
slsReceiverFuncs *receiver;
};
#endif