Receiver API slsReceiverUsers implemented

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@500 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
bergamaschi 2013-04-04 09:32:44 +00:00
parent b0870216a1
commit 4a133d8f6e
2 changed files with 121 additions and 0 deletions

View File

@ -0,0 +1,38 @@
#include "slsReceiverUsers.h"
#include "slsReceiver_funcs.h"
slsReceiverUsers::slsReceiverUsers(int argc, char *argv[], int &success) {
receiver=new slsReceiverFuncs(argc, argv, success);
}
slsReceiverUsers::~slsReceiverUsers() {
delete receiver;
}
void slsReceiverUsers::start() {
receiver->start();
}
void slsReceiverUsers::closeFile(int p) {
slsReceiverFuncs::closeFile(0);
}
void slsReceiverUsers::registerCallBackStartAcquisition(int (*func)(char*, char*,int, int, void*),void *arg){slsReceiverList->registerCallBackStartAcquisition(func,arg);};;
int slsReceiverUsers::registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg){
receiver->registerCallBackAcquisitionFinished(func,arg);
}
int slsReceiverUsers::registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg){
receiver->registerCallBackRawDataReady(func,arg);
};
#endif

View File

@ -0,0 +1,83 @@
/********************************************//**
* @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