Interface to AgataKey. More...
#include <AgataKeyFactory.h>
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 BufferIO * | GetRealBuffer () const |
const FactoryItem & | GetSignature () 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 BufferIO * | RealBuffer () |
Used by specific methods. More... | |
virtual void | SetMessage (UInt_t)=0 |
To set the message type. More... | |
Protected Attributes | |
BufferIO * | fBuffer |
the buffer that fills in/out the Key More... | |
UInt_t | fMask |
UInt_t | fMessage |
UInt_t | kKeyLength |
UInt_t | kMaxDataLength |
Friends | |
class | AgataKeyFactory |
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.