#ifndef VEGA_VVirtualFrameChannel #define VEGA_VVirtualFrameChannel //*-- Author : Damir Buskulic 19/11/01 ////////////////////////////////////////////////////////////////////////// // // // VVirtualFrameChannel // // // // Virtual frame data access engine // // // ////////////////////////////////////////////////////////////////////////// #include "VVirtualFrameInfoDB.h" #include "VGPSTime.h" #include "FrameL.h" #include "VFrVectObject.h" class VVirtualFrameInfoDB; class VConditionSet; class VVirtualFrameChannel : public TObject { private : VGPSTime mRefTime; // Reference time of this frame channel VVirtualFrameInfoDB* mFrameInfoDB; // Frame info database referenced by this frame channel Int_t mTimerInterval; public : VVirtualFrameChannel(); virtual ~VVirtualFrameChannel(); virtual VVirtualFrameInfoDB* GetFrameInfoDB() {return mFrameInfoDB;} virtual void SetFrameInfoDB(VVirtualFrameInfoDB* fidb) {mFrameInfoDB = fidb;} // Opening and building the frame channel and the associated frame info database virtual Bool_t Connect(char* pathtoDB, Option_t* openopt = ""); virtual void Disconnect(); virtual void BuildInfoDB(char* nameDB, char* frameFiles, Option_t* opt); // Methods related to player, viewer and processing of data in a loop Int_t GetTimerInterval() {return mTimerInterval;} void SetTimerInterval(Int_t msec = 500) {mTimerInterval = msec;} // Drawing and getting information about the metadatabase virtual void DrawCondition(const char* selexp, const char* selection="", Option_t* option = "", Double_t start = 0, Double_t length = 0){}; virtual Double_t GetStart(){return 0;}; virtual Double_t GetEnd(){return 0;}; virtual void Print(Option_t* opt=""){}; // Factory part. Creating objects exchanged by the database virtual VConditionSet* CreateConditionSet(const char* condfs, const char* selfs=0) {return 0;} // Getting/setting the current status of the database virtual const char* GetInfoDBName() {return 0;} // Handles the reference time Double_t GetRefTime() {return mRefTime.GetTimeD();} void SetRefTime(Double_t reftime) {mRefTime = reftime;} void SetRefTime(const char* when, Int_t leaps=0); // Get frames directly virtual FrameH* GetFrameDirectB(VMetaData* meta, Option_t* opt="full"){return 0;}; virtual FrameH* GetFrameDirectB(char* vectname, VMetaData* meta, Option_t* opt="full"){return 0;}; virtual FrameH* GetFrame(Double_t time){return 0;}; virtual FrameH* GetFrameR(Double_t time){return 0;}; virtual FrameH* GetNextFrame(Double_t time, const char* selection){return 0;}; virtual FrameH* GetNextFrame(Double_t time, VConditionSet* conds){return 0;}; virtual FrameH* GetNextFrameR(Double_t time, const char* selection){return 0;}; virtual FrameH* GetNextFrameR(Double_t time, VConditionSet* conds){return 0;}; // Get vectors directly virtual FrVect* GetVect(char* nameofvect, Double_t start, Double_t length, Option_t* opt=""){return 0;}; virtual FrVect* GetVectR(char* nameofvect, Double_t start, Double_t length, Option_t* opt=""){return 0;}; virtual FrVect* GetNextVect(char* nameofvect, Double_t gpstime, const char* selection, Option_t* opt=""){return 0;}; virtual FrVect* GetNextVectR(char* nameofvect, Double_t gpstime, const char* selection, Option_t* opt=""){return 0;}; virtual VFrVectObject* GetSignal(char* nameofvect, Double_t start, Double_t length, Option_t* opt=""){return 0;}; virtual VFrVectObject* GetSignalR(char* nameofvect, Double_t start, Double_t length, Option_t* opt=""){return 0;}; virtual VFrVectObject* GetNextSignal(char* nameofvect, Double_t gpstime, const char* selection, Option_t* opt=""){return 0;}; virtual VFrVectObject* GetNextSignalR(char* nameofvect, Double_t gpstime, const char* selection, Option_t* opt=""){return 0;}; virtual FrAdcData* GetAdcDirectB(VMetaData* meta, char* vectname){return 0;}; virtual FrProcData* GetProcDirectB(VMetaData* meta, char* vectname){return 0;}; virtual FrSimData* GetSimDirectB(VMetaData* meta, char* vectname){return 0;}; // Get frames sequentialy virtual FrameH* GetNextFrame(){return 0;}; virtual FrameH* GetPreviousFrame(){return 0;}; virtual FrameH* GetNextFrame(VConditionSet* condset, Option_t* option=""){return 0;}; // Get vectors sequentialy virtual FrVect* GetNextVect(char* nameofvect, VConditionSet* condset, Option_t* opt=""){return 0;}; virtual VFrVectObject* GetNextSignal(char* nameofvect, VConditionSet* condset, Option_t* opt=""){return 0;}; // Get slow monitoring data virtual FrVect* ExtractSMSVect(char* name0, Double_t start, Double_t length){return 0;}; virtual FrVect* ExtractSMSVectR(char* name0, Double_t start, Double_t length){return 0;}; ClassDef(VVirtualFrameChannel,0) // ABC describing a frame channel }; #endif