summaryrefslogtreecommitdiff
path: root/key_value_store.h
diff options
context:
space:
mode:
authorPeter Qiu <zqiu@chromium.org>2015-07-09 10:29:19 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-07-10 03:39:59 +0000
commitbd7e9fb921e993b2a56e7338a60848d9edddf3ba (patch)
treeb340bccb691796d66b405e1a36d78c58f46155b3 /key_value_store.h
parentac73f094a8f8671032459ec9b5823afa64e37e5d (diff)
downloadshill-bd7e9fb921e993b2a56e7338a60848d9edddf3ba.tar.gz
shill: supporting more types in KeyValueStore
This is needed in order to use KeyValueStore as the internal variant map type for interfacing with the RPC proxy interfaces. The goal is to remove all usage of RPC specifc types from shill's internal code. BUG=chromium:507966 TEST=USE="asan clang" FEATURES=test emerge-$BOARD shill Change-Id: Ib31ec62aa6a8d771b7706619f0f9ddd7fcbd8a2d Reviewed-on: https://chromium-review.googlesource.com/284635 Tested-by: Zeping Qiu <zqiu@chromium.org> Reviewed-by: Paul Stewart <pstew@chromium.org> Commit-Queue: Zeping Qiu <zqiu@chromium.org>
Diffstat (limited to 'key_value_store.h')
-rw-r--r--key_value_store.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/key_value_store.h b/key_value_store.h
index 53c97c23..67ecf723 100644
--- a/key_value_store.h
+++ b/key_value_store.h
@@ -34,37 +34,63 @@ class KeyValueStore {
bool IsEmpty();
bool ContainsBool(const std::string& name) const;
+ bool ContainsByteArrays(const std::string& name) const;
bool ContainsInt(const std::string& name) const;
+ bool ContainsInt16(const std::string& name) const;
bool ContainsKeyValueStore(const std::string& name) const;
+ bool ContainsRpcIdentifier(const std::string& name) const;
bool ContainsString(const std::string& name) const;
bool ContainsStringmap(const std::string& name) const;
bool ContainsStrings(const std::string& name) const;
bool ContainsUint(const std::string& name) const;
+ bool ContainsUint16(const std::string& name) const;
+ bool ContainsUint8s(const std::string& name) const;
+ bool ContainsUint32s(const std::string& name) const;
bool GetBool(const std::string& name) const;
+ const std::vector<std::vector<uint8_t>>& GetByteArrays(
+ const std::string& name) const;
int32_t GetInt(const std::string& name) const;
+ int16_t GetInt16(const std::string& name) const;
const KeyValueStore& GetKeyValueStore(const std::string& name) const;
+ const std::string& GetRpcIdentifier(const std::string& name) const;
const std::string& GetString(const std::string& name) const;
const std::map<std::string, std::string>& GetStringmap(
const std::string& name) const;
const std::vector<std::string>& GetStrings(const std::string& name) const;
uint32_t GetUint(const std::string& name) const;
+ uint16_t GetUint16(const std::string& name) const;
+ const std::vector<uint8_t>& GetUint8s(const std::string& name) const;
+ const std::vector<uint32_t>& GetUint32s(const std::string& name) const;
void SetBool(const std::string& name, bool value);
+ void SetByteArrays(const std::string& name,
+ const std::vector<std::vector<uint8_t>>& value);
void SetInt(const std::string& name, int32_t value);
+ void SetInt16(const std::string& name, int16_t value);
void SetKeyValueStore(const std::string& name, const KeyValueStore& value);
+ void SetRpcIdentifier(const std::string& name, const std::string& value);
void SetString(const std::string& name, const std::string& value);
void SetStringmap(const std::string& name,
const std::map<std::string, std::string>& value);
void SetStrings(const std::string& name,
const std::vector<std::string>& value);
void SetUint(const std::string& name, uint32_t value);
+ void SetUint16(const std::string& name, uint16_t value);
+ void SetUint8s(const std::string& name, const std::vector<uint8_t>& value);
+ void SetUint32s(const std::string& name, const std::vector<uint32_t>& value);
void RemoveString(const std::string& name);
void RemoveStringmap(const std::string& name);
void RemoveStrings(const std::string& name);
void RemoveInt(const std::string& name);
void RemoveKeyValueStore(const std::string& name);
+ void RemoveInt16(const std::string& name);
+ void RemoveRpcIdentifier(const std::string& name);
+ void RemoveByteArrays(const std::string& name);
+ void RemoveUint16(const std::string& name);
+ void RemoveUint8s(const std::string& name);
+ void RemoveUint32s(const std::string& name);
// If |name| is in this store returns its value, otherwise returns
// |default_value|.
@@ -76,13 +102,24 @@ class KeyValueStore {
const std::map<std::string, bool>& bool_properties() const {
return bool_properties_;
}
+ const std::map<std::string, std::vector<std::vector<uint8_t>>>&
+ byte_arrays_properties() const {
+ return byte_arrays_properties_;
+ }
+
const std::map<std::string, int32_t>& int_properties() const {
return int_properties_;
}
+ const std::map<std::string, int16_t>& int16_properties() const {
+ return int16_properties_;
+ }
const std::map<std::string, KeyValueStore>
&key_value_store_properties() const {
return key_value_store_properties_;
}
+ const std::map<std::string, std::string>& rpc_identifier_properties() const {
+ return rpc_identifier_properties_;
+ }
const std::map<std::string, std::string>& string_properties() const {
return string_properties_;
}
@@ -98,19 +135,36 @@ class KeyValueStore {
const std::map<std::string, uint32_t>& uint_properties() const {
return uint_properties_;
}
+ const std::map<std::string, uint16_t>& uint16_properties() const {
+ return uint16_properties_;
+ }
+ const std::map<std::string, std::vector<uint8_t>>& uint8s_properties() const {
+ return uint8s_properties_;
+ }
+ const std::map<std::string, std::vector<uint32_t>>&
+ uint32s_properties() const {
+ return uint32s_properties_;
+ }
private:
// Recursively compare KeyValueStore properties with |other|.
bool KeyValueStorePropertiesAreEqual(const KeyValueStore& other) const;
std::map<std::string, bool> bool_properties_;
+ std::map<std::string, std::vector<std::vector<uint8_t>>>
+ byte_arrays_properties_;
std::map<std::string, int32_t> int_properties_;
+ std::map<std::string, int16_t> int16_properties_;
std::map<std::string, KeyValueStore> key_value_store_properties_;
+ std::map<std::string, std::string> rpc_identifier_properties_;
std::map<std::string, std::string> string_properties_;
std::map<std::string,
std::map<std::string, std::string>> stringmap_properties_;
std::map<std::string, std::vector<std::string>> strings_properties_;
std::map<std::string, uint32_t> uint_properties_;
+ std::map<std::string, uint16_t> uint16_properties_;
+ std::map<std::string, std::vector<uint8_t>> uint8s_properties_;
+ std::map<std::string, std::vector<uint32_t>> uint32s_properties_;
};
} // namespace shill