00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "SchemeTable.h"
00019 #include "DTNScheme.h"
00020 #include "EthernetScheme.h"
00021 #include "StringScheme.h"
00022 #include "WildcardScheme.h"
00023 #include "TCAScheme.h"
00024
00025 namespace dtn {
00026
00027 template <>
00028 SchemeTable* oasys::Singleton<SchemeTable>::instance_ = 0;
00029
00030
00031 SchemeTable::SchemeTable()
00032 {
00033 table_["dtn"] = DTNScheme::instance();
00034 table_["str"] = StringScheme::instance();
00035 table_["*"] = WildcardScheme::instance();
00036 #ifdef __linux__
00037 table_["eth"] = EthernetScheme::instance();
00038 #endif
00039 table_["tca"] = TCAScheme::instance();
00040 }
00041
00042
00043 SchemeTable::~SchemeTable()
00044 {
00045 table_.clear();
00046 }
00047
00048
00049 Scheme*
00050 SchemeTable::lookup(const std::string& scheme_str)
00051 {
00052 SchemeMap::iterator iter = table_.find(scheme_str);
00053 if (iter == table_.end()) {
00054 return NULL;
00055 }
00056
00057 return (*iter).second;
00058 }
00059
00060 }