23 #ifndef ADF_AgataKeyFactory
24 #define ADF_AgataKeyFactory
25 #define ADF_AGATAKEYFACTORY_H ADF_AgataKeyFactory
27 #ifndef ADF_KeyFactory
162 virtual void Print(std::ostream &out = std::cout)
const;
248 std::map<std::string,std::pair<UInt_t,UInt_t> > fMessageTable;
252 std::map<std::string,std::pair<UInt_t,UInt_t> > fHardcodedMessageTable;
256 Bool_t fIsPatchEvent;
273 virtual void Reset(
const Char_t * =
"");
281 const std::map<std::string,std::pair<UInt_t,UInt_t> > &
GetKnownKeys()
const
283 return fMessageTable;
287 Bool_t
GetMessage(std::string keyName, UInt_t &message, UInt_t &mask);
virtual void Reset(const Char_t *="")
Reset the table.
header file for KeyFactory.cpp
BufferIO * fBuffer
the buffer that fills in/out the Key
const FactoryItem & GetSignature() const
virtual void SetDataLength(UInt_t i)
stream in buffer the data length
virtual void SetEndian(BaseBuffer::EEndian)
Agata files are always little endian !!
virtual Bool_t DoConfigure(std::ostream &)
write the message table
virtual Bool_t IsAKey(const Key *akey) const
Compare it to another key.
virtual Bool_t ProcessLine(const std::string &)
During configuration, process a single line.
virtual void Print(std::ostream &out=std::cout) const
Print the content of the key.
const std::map< std::string, std::pair< UInt_t, UInt_t > > & GetKnownKeys() const
to just browse the list of known keys
virtual Bool_t Convert(const Key *akey)
convert a key to another key ... not an easy task ... use it carefully
virtual ULong64_t GetTimeStamp() const =0
To set the timestamp.
virtual Key * DoNew(const FactoryItem &)
Ask this factory for a new AgataKey.
virtual UInt_t GetEventNumber() const =0
To get the event number encoded.
virtual Bool_t DoConfigure(std::istream &in, Bool_t allow_init)
just call DotConf method
virtual UInt_t GetDataLength() const
virtual void SetTimeStamp(ULong64_t)=0
virtual void SetEventNumber(UInt_t)=0
To set the event number.
virtual Bool_t DoConfigure(std::istream &, Bool_t allow_init)
configure this from an input stream
virtual void ChangeType(UInt_t messtype, UInt_t messmask)
to modify the Agata type for this key
const std::string & GetFactoryName() const
header file for DotConf.cpp
AgataKey(BaseBuffer::EEndian e, UInt_t s=4u *aByte)
virtual UInt_t GetFrameLength() const
virtual void SetDataLength(UShort_t s)
stream in buffer the data length
virtual void SetEndian(BaseBuffer::EEndian e)
Set Endian type for the keys delivered by this factory.
Bool_t GetMessage(std::string keyName, UInt_t &message)
virtual void SetMessage(UInt_t)=0
To set the message type.
Bool_t GetMessage(std::string keyName, UInt_t &message, UInt_t &mask)
to check if a given keyname is in the list of known keys (return true in this case, false otherwise) and to access the corresponding message type, mask
Base class for a AgataKeyFactory.
Base class for any KeyFactory implementation.
Base class that described an item in a Factory.
virtual UInt_t GetMessage() const =0
To get the message type encoded.
UInt_t SetOffset(UInt_t off=0u) const
change the current position.