libchromeos: Move Any from Buffet to libchromeos. Move the Any class from Buffet to libchromeos and changed its namespace from buffet:: to chromeos:: Updated the rest of Buffet code to with the changes to the class's namespace and header file location. Also, now that move constructors are officially allowed by Google C++ coding style for project with C++11 feature support, added back the move constructor to Any as per http://crbug.com/387902 BUG=chromium:405714,chromium:387902 TEST=USE=buffet ./build_packages Change-Id: Id007f51b874934e4f6428fe90674495edeb79107 Reviewed-on: https://chromium-review.googlesource.com/213831 Tested-by: Alex Vakulenko <avakulenko@chromium.org> Reviewed-by: Ben Chan <benchan@chromium.org> Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/commands/prop_types.cc b/buffet/commands/prop_types.cc index 694d74e..f4de059 100644 --- a/buffet/commands/prop_types.cc +++ b/buffet/commands/prop_types.cc
@@ -11,6 +11,7 @@ #include <base/json/json_writer.h> #include <base/logging.h> #include <base/values.h> +#include <chromeos/any.h> #include <chromeos/string_utils.h> #include "buffet/commands/object_schema.h" @@ -149,7 +150,7 @@ return val->FromJson(value, error) && ValidateConstraints(*val, error); } -bool PropType::ValidateValue(const Any& value, +bool PropType::ValidateValue(const chromeos::Any& value, chromeos::ErrorPtr* error) const { std::shared_ptr<PropValue> val = CreateValue(value); CHECK(val) << "Failed to create value object";
diff --git a/buffet/commands/prop_types.h b/buffet/commands/prop_types.h index 506c822..86a2960 100644 --- a/buffet/commands/prop_types.h +++ b/buffet/commands/prop_types.h
@@ -13,6 +13,7 @@ #include <utility> #include <vector> +#include <chromeos/any.h> #include <chromeos/error.h> #include "buffet/commands/prop_constraints.h" @@ -81,7 +82,8 @@ // Creates an instance of associated value object, using the parameter // type as a factory class. virtual std::shared_ptr<PropValue> CreateValue() const = 0; - virtual std::shared_ptr<PropValue> CreateValue(const Any& val) const = 0; + virtual std::shared_ptr<PropValue> CreateValue( + const chromeos::Any& val) const = 0; // Saves the parameter type definition as a JSON object. // If |full_schema| is set to true, the full type definition is saved, @@ -122,7 +124,8 @@ bool ValidateValue(const base::Value* value, chromeos::ErrorPtr* error) const; // Similar to the above method, but uses Any as the value container. - bool ValidateValue(const Any& value, chromeos::ErrorPtr* error) const; + bool ValidateValue(const chromeos::Any& value, + chromeos::ErrorPtr* error) const; // Additional helper static methods to help with converting a type enum // value into a string and back. @@ -186,7 +189,8 @@ std::shared_ptr<PropValue> CreateValue() const override { return std::make_shared<Value>(this); } - std::shared_ptr<PropValue> CreateValue(const Any& v) const override { + std::shared_ptr<PropValue> CreateValue( + const chromeos::Any& v) const override { auto value = std::make_shared<Value>(this); value->SetValue(v.Get<T>()); return std::move(value);
diff --git a/buffet/commands/prop_values.h b/buffet/commands/prop_values.h index f568dd8..106ab1d 100644 --- a/buffet/commands/prop_values.h +++ b/buffet/commands/prop_values.h
@@ -9,9 +9,9 @@ #include <memory> #include <string> +#include <chromeos/any.h> #include <chromeos/error.h> -#include "buffet/any.h" #include "buffet/commands/schema_utils.h" namespace base { @@ -103,7 +103,7 @@ chromeos::ErrorPtr* error) = 0; // Returns the contained C++ value as Any. - virtual Any GetValueAsAny() const = 0; + virtual chromeos::Any GetValueAsAny() const = 0; // Return the type definition of this value. const PropType* GetPropType() const { return type_; } @@ -149,7 +149,7 @@ } // Helper methods to get and set the C++ representation of the value. - Any GetValueAsAny() const override { return value_; } + chromeos::Any GetValueAsAny() const override { return value_; } const T& GetValue() const { return value_; } void SetValue(T value) { value_ = std::move(value); }