]>
Commit | Line | Data |
---|---|---|
8356cc1d | 1 | //////////////////////////////////////////////////////////////////////////////// |
2 | // | |
3 | // Author: Artur Szostak | |
4 | // Email: artur@alice.phy.uct.ac.za | artursz@iafrica.com | |
5 | // | |
6 | //////////////////////////////////////////////////////////////////////////////// | |
7 | ||
8 | #ifndef dHLT_DECISION_IO_INTERFACE_HPP | |
9 | #define dHLT_DECISION_IO_INTERFACE_HPP | |
10 | ||
11 | #include "BasicTypes.hpp" | |
12 | #include "EventID.hpp" | |
13 | #include "DecisionRecord.hpp" | |
14 | #include "Track.hpp" | |
15 | ||
16 | namespace dHLT | |
17 | { | |
18 | namespace Decision | |
19 | { | |
20 | ||
21 | ||
22 | class IOCallback; | |
23 | ||
24 | ||
25 | class IOInterface | |
26 | { | |
27 | public: | |
28 | ||
29 | // Do not free memory of tracks until the corresponding ReleaseTracks | |
30 | // method is called. | |
31 | ||
32 | /* When found tracks are made available to the framework then it should | |
33 | pass them on to a decision object using this method. | |
34 | */ | |
35 | virtual void AddTracks(const EventID event, const Track* tracks, const UInt count) = 0; | |
36 | ||
37 | /* When no more tracks can be found for the given event then this method | |
38 | should be called. | |
39 | */ | |
40 | virtual void EndOfTracks(const EventID event) = 0; | |
41 | ||
42 | }; | |
43 | ||
44 | ||
45 | class IOCallback | |
46 | { | |
47 | public: | |
48 | ||
49 | // Do not free the returned memory block until the ReturnDecision method | |
50 | // is called for the memory block. | |
51 | virtual DecisionRecord* AllocateDecisionBlock(const UInt size) = 0; | |
52 | ||
53 | virtual void ReturnDecision(const EventID event, DecisionRecord* decision) = 0; | |
54 | ||
55 | virtual void EndOfDecisions(const EventID event) = 0; | |
56 | ||
57 | // Do not free track blocks until this method is called for the given block of memory. | |
58 | virtual void ReleaseTracks(const Track* tracks) = 0; | |
59 | ||
60 | }; | |
61 | ||
62 | ||
63 | } // Decision | |
64 | } // dHLT | |
65 | ||
66 | #endif // dHLT_DECISION_IO_INTERFACE_HPP |