added libAliHLTHOMER dynamic manager
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTHOMERLibManager.h
CommitLineData
6580df1c 1//-*- Mode: C++ -*-
2// @(#) $Id$
3
4#ifndef ALIHLTHOMERLIBMANAGER_H
5#define ALIHLTHOMERLIBMANAGER_H
6/* This file is property of and copyright by the ALICE HLT Project *
7 * ALICE Experiment at CERN, All rights reserved. *
8 * See cxx source for full Copyright notice */
9
10/** @file AliHLTHOMERLibManager.h
11 @author Matthias Richter
12 @date
13 @brief dynamic HLT HOMER reader/writer generation and destruction
14
15// see below for class documentation
16// or
17// refer to README to build package
18// or
19// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
20 */
21
22#include "AliHLTLogging.h"
23
24class AliHLTHOMERReader;
25class AliHLTHOMERWriter;
26
27/**
28 * @class AliHLTHOMERLibManager
29 * Handler of HLTOUT data for buffer input.
30 */
31class AliHLTHOMERLibManager : public AliHLTLogging {
32 public:
33 /** standard constructor */
34 AliHLTHOMERLibManager();
35 /** destructor */
36 virtual ~AliHLTHOMERLibManager();
37
38 /**
39 * Open a HOMER reader.
40 * Load HOMER library dynamically and create object working on the provided
41 * buffer.
42 */
43 AliHLTHOMERReader* OpenReader(const AliHLTUInt8_t* pBuffer, int size);
44
45 /**
46 * Delete a HOMER reader.
47 * Clean-up of the object is done inside the HOMER library.
48 */
49 int DeleteReader(AliHLTHOMERReader* pReader);
50
51 /**
52 * Open a HOMER writer.
53 * Load HOMER library dynamically and create object working on the provided
54 * buffer.
55 */
56 AliHLTHOMERWriter* OpenWriter();
57
58 /**
59 * Delete a HOMER writer.
60 * Clean-up of the object is done inside the HOMER library.
61 */
62 int DeleteWriter(AliHLTHOMERWriter* pWriter);
63
64 protected:
65
66 private:
67 /** copy constructor prohibited */
68 AliHLTHOMERLibManager(const AliHLTHOMERLibManager&);
69 /** assignment operator prohibited */
70 AliHLTHOMERLibManager& operator=(const AliHLTHOMERLibManager&);
71
72 /**
73 * Load the HOMER library.
74 */
75 int LoadHOMERLibrary();
76
77 /** status of the loading of the HOMER library */
78 int fLibraryStatus; //!transient
79
80 /** entry in the HOMER library */
81 void* fFctCreateReaderFromBuffer; //!transient
82
83 /** entry in the HOMER library */
84 void* fFctDeleteReader; //!transient
85
86 /** entry in the HOMER library */
87 void* fFctCreateWriter; //!transient
88
89 /** entry in the HOMER library */
90 void* fFctDeleteWriter; //!transient
91
92 ClassDef(AliHLTHOMERLibManager, 0)
93};
94#endif