Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00034 #ifndef KEYVALUE_MNGT_PROCESSORMNGR_H_
00035 #define KEYVALUE_MNGT_PROCESSORMNGR_H_
00036
00037 #include <map>
00038 #include <typeinfo>
00039
00040 #include <boost/utility.hpp>
00041
00042 #include "keyvalue/extern/SharedPtr.h"
00043 #include "keyvalue/extern/String.h"
00044 #include "keyvalue/value/Vector.h"
00045
00046 namespace keyvalue {
00047
00048
00049 class DataSet;
00050 class Processor;
00051 class Command;
00052 class AbstractBuilder;
00053
00067 class ProcessorMngr :
00068
00069 private ::boost::noncopyable {
00070
00071 public:
00072
00078 void
00079 add(const Processor& processor);
00080
00091 const Processor&
00092 getProcessor(const string& name) const;
00093
00105 const AbstractBuilder*
00106 findBuilder(const ::std::type_info& type) const;
00107
00118 const Command&
00119 getCommand(const string& name) const;
00120
00126 value::Vector
00127 getCmdList() const;
00128
00129 private:
00130
00131
00132 typedef ::std::map<string, const Processor*> PrcMapType_;
00133 PrcMapType_ prcMap_;
00134
00135
00136 typedef ::std::map<string, const Command*> CmdMapType_;
00137 CmdMapType_ cmdMap_;
00138
00139
00140 typedef ::std::map<const std::type_info*, const AbstractBuilder*>
00141 BldMapType_;
00142 BldMapType_ bldMap_;
00143
00144 };
00145
00146 }
00147
00148 #endif // KEYVALUE_MNGT_PROCESSORMNGR_H_