-
Notifications
You must be signed in to change notification settings - Fork 0
/
RuntimeVarsData.cpp
38 lines (33 loc) · 939 Bytes
/
RuntimeVarsData.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#include "RuntimeVarsData.h"
#include "mcrouter/lib/fbi/cpp/util.h"
namespace facebook {
namespace memcache {
namespace mcrouter {
RuntimeVarsData::RuntimeVarsData(folly::StringPiece json) {
auto data = parseJsonString(json);
for (const auto& jiter : data.items()) {
auto& key = jiter.first;
auto& value = jiter.second;
if (!key.isString()) {
throw std::runtime_error("Bad config format, must have string keys");
}
configData_.emplace(key.asString(), value);
}
}
folly::dynamic RuntimeVarsData::getVariableByName(
const std::string& name) const {
auto value = configData_.find(name);
if (value == configData_.end()) {
return nullptr;
}
return value->second;
}
}
}
} // facebook::memcache::mcrouter