dataCallback has an argument provided by user

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@194 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
wang_x1 2012-06-19 10:04:15 +00:00
parent bc85c26bdd
commit 7582cf9781
5 changed files with 10 additions and 9 deletions

View File

@ -346,7 +346,7 @@ class slsDetectorUsers
\param userCallback function for plotting/analyzing the data
*/
virtual void registerDataCallback(int( *userCallback)(detectorData*))=0;
virtual void registerDataCallback(int( *userCallback)(detectorData*, void*), void *pArg)=0;
/**
@short register calbback for reading detector position

View File

@ -10,7 +10,8 @@ postProcessing::postProcessing(){
pthread_mutex_init(&mg, NULL);
//cout << "reg callback "<< endl;
dataReady = 0;
registerDataCallback(&defaultDataReadyFunc);
pCallbackArg = 0;
registerDataCallback(&defaultDataReadyFunc, NULL);
//cout << "done "<< endl;
}
@ -301,7 +302,7 @@ void postProcessing::doProcessing(float *lfdata, int delflag, string fname) {
if (dataReady) {
dataReady(thisData);
dataReady(thisData, pCallbackArg);
delete thisData;
}
@ -338,7 +339,7 @@ void postProcessing::doProcessing(float *lfdata, int delflag, string fname) {
if (dataReady) {
dataReady(thisData);
dataReady(thisData, pCallbackArg);
delete thisData;
}
// pthread_mutex_lock(&mg);

View File

@ -241,7 +241,7 @@ s
void registerDataCallback(int( *userCallback)(detectorData*)) {dataReady = userCallback;};
void registerDataCallback(int( *userCallback)(detectorData*, void*), void *pArg) {dataReady = userCallback; pCallbackArg = pArg;};
@ -363,8 +363,8 @@ s
/* virtual int getTotalNumberOfChannels()=0; */
int (*dataReady)(detectorData*);
int (*dataReady)(detectorData*,void*);
void *pCallbackArg;
};

View File

@ -323,7 +323,7 @@ int defaultDisconnectChannels() {
int defaultDataReadyFunc(detectorData* d) {
int defaultDataReadyFunc(detectorData* d, void* p) {
#ifdef VERBOSE
printf("UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU Data received \n");
#endif

View File

@ -37,7 +37,7 @@ extern "C" {
int defaultDisconnectChannels();
float defaultGetI0(int t);
int defaultDataReadyFunc(detectorData* d);
int defaultDataReadyFunc(detectorData* d, void* p);