Converting TEvtGen to native cmake
[u/mrichter/AliRoot.git] / TEvtGen / EvtGen / EvtGenBase / EvtExtGeneratorCommandsTable.hh
CommitLineData
0ca57c2f 1//--------------------------------------------------------------------------
2//
3// Environment:
4// This software is part of the EvtGen package. If you use all or part
5// of it, please give an appropriate acknowledgement.
6//
7// Copyright Information: See EvtGen/COPYRIGHT
8// Copyright (C) 2012 University of Warwick, UK
9//
10// Module: EvtExtGeneratorCommandsTable
11//
12// Description: Table of commands to pass to external generators
13//
14// Modification history:
15//
16// Daniel Craik March 2012 Module created
17//
18//------------------------------------------------------------------------
19
20#include <map>
21#include <vector>
22#include <string>
23
24#ifndef EVTEXTGENERATORCOMMANDSTABLE_HH
25#define EVTEXTGENERATORCOMMANDSTABLE_HH
26
27typedef std::map<std::string, std::string> Command;
28typedef std::vector<Command> GeneratorCommands;
29typedef std::map<std::string, GeneratorCommands > GlobalCommandMap;
30
31class EvtExtGeneratorCommandsTable {
32
33public:
34
35 static EvtExtGeneratorCommandsTable* getInstance();
36
37 void addCommand(std::string extGenerator, Command command) { _commandMap[extGenerator].push_back(command); }
38 const GeneratorCommands& getCommands(std::string extGenerator) { return _commandMap[extGenerator]; }
39
40protected:
41
42 EvtExtGeneratorCommandsTable();
43 ~EvtExtGeneratorCommandsTable();
44
45private:
46
47 GlobalCommandMap _commandMap;
48
49 EvtExtGeneratorCommandsTable(const EvtExtGeneratorCommandsTable&) {};
50
51};
52
53#endif