/** delete an instance of the manager */
static void Delete(AliHLTEsdManager* instance);
+ /**
+ * Set the options for the ESD merging and writing
+ * Takes a string of blank separated options.
+ * \li -writelocal use local file writing in the specified diectory
+ * The file name is derived from the data origin
+ * \li -directory=<> Set the directory path
+ * This makes the SetDirectory method obsolete
+ * @return neg error code if failed
+ */
+ virtual int SetOption(const char* option)=0;
+
/**
* Convert data buffer to ESD.
* The buffer is supposed to describe a streamed AliESDEvent object.
* where 'det' is derived from the data type origin. Each time the function is invoked
* a new event is created. Dummy events are added if the previous events did not contain
*
- * @param pBuffer [in] the data buffer
- * @param size [in] data buffer size
- * @param dt [in] data type of the block
- * @param tgtesd [out] optional target
- * @param eventno [in] optional event no
+ * @param [in] pBuffer the data buffer
+ * @param [in] size data buffer size
+ * @param [in] dt data type of the block
+ * @param [out] tgtesd optional target
+ * @param [in] eventno optional event no
*/
virtual int WriteESD(const AliHLTUInt8_t* pBuffer, AliHLTUInt32_t size, AliHLTComponentDataType dt,
AliESDEvent* tgtesd=NULL, int eventno=-1)=0;
*/
virtual TString GetFileNames(AliHLTComponentDataType dt=kAliHLTAnyDataType) const = 0;
+ /**
+ * Create an AliESDEvent object.
+ * The standard content can optionally be initialized.
+ */
+ virtual TObject* CreateEsdEvent(bool bCreateStdContent=false) const = 0;
+
+ /**
+ * Delete instance of AliESDEvent
+ */
+ virtual int DestroyEsdEvent(TObject* pESDInstance) const=0;
+
+ /**
+ * Add object to ESD event.
+ * Checks the existance of the object under the name 'branchname'
+ * Note: some of the objects have (branch-)names which differ from the object name
+ * However, parameter branchname is never used when adding an object not yet existing.
+ */
+ virtual int AddObject(TObject* pESDInstance, const TObject* pObject, const char* branchname) const = 0;
+
+ /**
+ * Reset the specified object.
+ * The purpose of this method is to disentangle library dependencies.
+ * The actual implementation is outside the HLT base library in a
+ * child class.
+ */
+ virtual int ResetEsdEvent(TObject* pESDInstance) const = 0;
+
protected:
/** constructor */
AliHLTEsdManager();