From 55f78c0dbd19cd8cef86295938fe023bf88978d7 Mon Sep 17 00:00:00 2001 From: slindal Date: Thu, 11 Nov 2010 12:48:32 +0000 Subject: [PATCH] Updated buffer handling with mutex and faster response --- EVE/EveHLT/AliEveEventBuffer.cxx | 1 + EVE/EveHLT/AliEveHLTEventManagerHomer.cxx | 44 +++++++++++------------ EVE/EveHLT/AliEveHLTEventManagerHomer.h | 21 ++++++++++- 3 files changed, 43 insertions(+), 23 deletions(-) diff --git a/EVE/EveHLT/AliEveEventBuffer.cxx b/EVE/EveHLT/AliEveEventBuffer.cxx index d064439bd52..483732790a2 100644 --- a/EVE/EveHLT/AliEveEventBuffer.cxx +++ b/EVE/EveHLT/AliEveEventBuffer.cxx @@ -84,6 +84,7 @@ void AliEveEventBuffer::CreateBufferThread() { cout << "Started BufferThread"<UnLock(); } } } diff --git a/EVE/EveHLT/AliEveHLTEventManagerHomer.cxx b/EVE/EveHLT/AliEveHLTEventManagerHomer.cxx index 635743d2cd7..b1f558c4757 100644 --- a/EVE/EveHLT/AliEveHLTEventManagerHomer.cxx +++ b/EVE/EveHLT/AliEveHLTEventManagerHomer.cxx @@ -13,22 +13,25 @@ #include "TList.h" #include "AliEveHOMERManager.h" #include "TEveManager.h" +#include "TTimer.h" +#include "TGLOverlayButton.h" ClassImp(AliEveHLTEventManagerHomer) AliEveHLTEventManagerHomer::AliEveHLTEventManagerHomer() : AliEveHLTEventManager(), - fEventBuffer(NULL) + fEventBuffer(NULL), + fNextEventTimer(NULL), + fInfoButton(NULL) { // see header file for class documentation - // or - // refer to README to build package - // or - // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt + fEventBuffer = new AliEveEventBufferHomer(); fEventBuffer->StartBufferMonitor(); - //AliEveHOMERManager * hm = fEventBuffer->GetHomerManager(); - //if(hm) GetEveManager()->AddToListTree(hm, kTRUE); + + fNextEventTimer = new TTimer(); + fNextEventTimer->Connect("Timeout()", "AliEveHLTEventManagerHomer", this, "TryNextEvent()" ); + } @@ -51,17 +54,22 @@ void AliEveHLTEventManagerHomer::ProcessList(TList * blockList) { UpdateDisplay(); } - - +void AliEveHLTEventManagerHomer::NextEvent() { + fNextEventTimer->Start(1000); +} ///________________________________________________________________________________ -void AliEveHLTEventManagerHomer::NextEvent() { +void AliEveHLTEventManagerHomer::TryNextEvent() { //See header file for documentation - if(fEventBuffer->LockMutex() ) { - cout << "event buffer already busy"<LockMutex() ) { + cout << "try again in 1 sec"<Stop(); + + cout << "Mutex is freeee!!"<GetASyncEvent(); TList * event = static_cast(fEventBuffer->NextEvent()); if(event) { @@ -83,14 +91,6 @@ void AliEveHLTEventManagerHomer::NextEvent() { cout << "couldn't get the sync event"<(fEventBuffer->GetAList()); - // if(async) { - // ProcessEvent(async); - // } else { - // cout << "No async bloc"<UnLockMutex(); } diff --git a/EVE/EveHLT/AliEveHLTEventManagerHomer.h b/EVE/EveHLT/AliEveHLTEventManagerHomer.h index 7548720d7c0..36a1457c43f 100644 --- a/EVE/EveHLT/AliEveHLTEventManagerHomer.h +++ b/EVE/EveHLT/AliEveHLTEventManagerHomer.h @@ -1,3 +1,6 @@ +// Author: 2010 Svein Lindal * +// for The ALICE HLT Project. * + #ifndef ALIEVEHLTEVENTMANAGERHOMER_H #define ALIEVEHLTEVENTMANAGERHOMER_H @@ -7,6 +10,8 @@ class AliESDEvent; #include "AliEveEventBufferHomer.h" #include "AliEveEventBuffer.h" class TList; +class TTimer; +class TGLOverlayButton; class AliEveHLTEventManagerHomer : public AliEveHLTEventManager { @@ -17,10 +22,16 @@ public: virtual ~AliEveHLTEventManagerHomer(); + //Get Next Event void NextEvent(); + //Try to get the next event + void TryNextEvent(); + //Get next event in buffer void NavigateFwd(); + //Get Previous event in buffer void NavigateBack(); + //Process block list void ProcessList(TList * blockList); private: @@ -32,11 +43,19 @@ public: /** assignment operator prohibited */ AliEveHLTEventManagerHomer& operator=(const AliEveHLTEventManagerHomer&); - AliEveEventBufferHomer * fEventBuffer; + AliEveEventBufferHomer * fEventBuffer; //Event buffer + ///Get event buffer AliEveEventBuffer * GetEventBuffer() { return dynamic_cast(fEventBuffer); } + + TTimer * fNextEventTimer; //Timer to fetch next event + TGLOverlayButton * fInfoButton; //Information button + + ClassDef(AliEveHLTEventManagerHomer, 0); + + }; #endif -- 2.31.1