GammaWare  Head Version for release 0.9
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ADF::AgataKey Class Referenceabstract

Interface to AgataKey. More...

#include <AgataKeyFactory.h>

Inheritance diagram for ADF::AgataKey:

Public Member Functions

 AgataKey (BaseBuffer::EEndian e, UInt_t s=4u *aByte)
 
virtual void ChangeType (UInt_t messtype, UInt_t messmask)
 to modify the Agata type for this key More...
 
virtual void ClearKeyStatus ()
 
virtual Bool_t Convert (const Key *akey)
 convert a key to another key ... not an easy task ... use it carefully More...
 
virtual Bool_t Copy (const Char_t *, UInt_t)
 Copy an external buffer to this key. More...
 
virtual Bool_t Copy (const Key *)
 copy the content of an external key to this key More...
 
virtual Bool_t Export (BufferIO &buf) const
 to copy the content of the key to an external buffer More...
 
virtual const Char_t * GetAddress () const
 
virtual UInt_t GetDataLength () const
 
virtual BaseBuffer::EEndian GetEndian () const
 
virtual UInt_t GetEventNumber () const =0
 To get the event number encoded. More...
 
virtual UInt_t GetFrameLength () const
 
virtual UInt_t GetKeyLength () const
 Unique number corresponding to a type of Key. More...
 
virtual BaseBuffer::EStatus GetKeyStatus () const
 
virtual UInt_t GetMessage () const =0
 To get the message type encoded. More...
 
virtual const BufferIOGetRealBuffer () const
 
const FactoryItemGetSignature () const
 
virtual ULong64_t GetTimeStamp () const =0
 To set the timestamp. More...
 
virtual Bool_t IsAKey (const Key *akey) const
 Compare it to another key. More...
 
virtual Bool_t IsLinked () const
 
virtual Bool_t Link (const Char_t *, UInt_t)
 Link an external buffer to this key. More...
 
virtual Bool_t Link (const BufferIO &buf, UInt_t pos, UInt_t size)
 Link an external buffer to this key. More...
 
virtual void Print (std::ostream &out=std::cout) const
 Print the content of the key. More...
 
virtual void SetDataLength (UShort_t s)
 stream in buffer the data length More...
 
virtual void SetDataLength (UInt_t i)
 stream in buffer the data length More...
 
virtual void SetEventNumber (UInt_t)=0
 To set the event number. More...
 
virtual void SetTimeStamp (ULong64_t)=0
 
virtual void Unlink ()
 Unlink the buffer attached to this key. More...
 
virtual ~AgataKey ()
 

Protected Member Functions

Version GetVersion () const
 
virtual BufferIORealBuffer ()
 Used by specific methods. More...
 
virtual void SetMessage (UInt_t)=0
 To set the message type. More...
 

Protected Attributes

BufferIOfBuffer
 the buffer that fills in/out the Key More...
 
UInt_t fMask
 
UInt_t fMessage
 
UInt_t kKeyLength
 
UInt_t kMaxDataLength
 

Friends

class AgataKeyFactory
 

Detailed Description

Interface to AgataKey.

All AgataKeys inherit from this class that defined the interface for an agata key i.e. the type of key that structure the data flow in Narval.

As a Key, it defines the length of the frame, a message type, an event number and a timestamp : [length][message][event#][TS]

All this fields are not necessarely written on the data flow. It depends of which version of the Agatakey you are working with. If a field is not coded, for instance the timestamp, the value returns by the corresponding GetXX method is the default value, mainly 0. As well, the Set method does not write anything but instead set the flag of the key to kCorrupt.

AgataKeys are allocated by the AgataKeyFactory. A factory name, a type of key and a version number (FactoryItem) are then required.

The comparison of two agata key is done by comparing the Message type which has to be identical.

Definition at line 60 of file AgataKeyFactory.h.


The documentation for this class was generated from the following files: