Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

TGo4BufferQueue.h

Go to the documentation of this file.
00001 //-------------------------------------------------------------
00002 //        Go4 Release Package v3.04-01 (build 30401)
00003 //                      28-November-2008
00004 //---------------------------------------------------------------
00005 //   The GSI Online Offline Object Oriented (Go4) Project
00006 //   Experiment Data Processing at EE department, GSI
00007 //---------------------------------------------------------------
00008 //
00009 //Copyright (C) 2000- Gesellschaft f. Schwerionenforschung, GSI
00010 //                    Planckstr. 1, 64291 Darmstadt, Germany
00011 //Contact:            http://go4.gsi.de
00012 //----------------------------------------------------------------
00013 //This software can be used under the license agreements as stated
00014 //in Go4License.txt file which is part of the distribution.
00015 //----------------------------------------------------------------
00016 #ifndef TGO4BUFFERQUEUE_H
00017 #define TGO4BUFFERQUEUE_H
00018 
00019 #include "TGo4Queue.h"
00020 
00021 class TMutex;
00022 class TIterator;
00023 class TList;
00024 
00029 class TGo4BufferQueue : public TGo4Queue {
00030 
00031    public:
00032 
00033       TGo4BufferQueue() ;
00034 
00035       TGo4BufferQueue(const char* name);
00036 
00042       void AddBufferFromObject(TObject * object);
00043 
00049       void AddBuffer(TBuffer * buffer, Bool_t clone=kFALSE);
00050 
00058       void FreeBuffer(TBuffer * buffer);
00059 
00061       virtual void Clear(Option_t* opt="");
00062 
00067       TBuffer * WaitBuffer();
00068 
00074       TObject * WaitObjectFromBuffer();
00075 
00076       virtual ~TGo4BufferQueue() ;
00077 
00085     static TBuffer* CreateValueBuffer(UInt_t val);
00086 
00094     static Int_t DecodeValueBuffer(TBuffer* buf);
00095 
00096 
00100     static const Int_t fgiISOWNER;
00101 
00102    private:
00106       void InitBuffers();
00107 
00111       void Realloc(TBuffer* buffer, Int_t oldsize, Int_t newsize);
00112 
00116       TBuffer* NewEntry();
00117 
00118 
00119 
00131       TList* fxBufferList; 
00132 
00134       TList* fxFreeList;   
00135       TMutex * fxBufferMutex; 
00136       Int_t fiOverflowcount;
00137 
00139       TIterator * fxBufferIterator; 
00140 
00145       Int_t fiMaxBuffers;
00146 
00147 };
00148 
00149 #endif //TGO4BUFFERQUEUE_H
00150 
00151 //----------------------------END OF GO4 SOURCE FILE ---------------------

Generated on Fri Nov 28 12:59:28 2008 for Go4-v3.04-1 by  doxygen 1.4.2