Change ErrorCode into an enum class.
This change is needed in order for us to be able to import ErrorCode
symbols from chromeos_update_engine into chromeos_update_manager.
Unfortunately, shifting from plain 'enum' into an 'enum class' means
that the compiler treats the new class as a distinct type from int,
which in turn means that plenty of seamless arithmetic/bitwise
operations we used for manipulating error code values throughout the
code needed to be retrofitted with static_cast operators.
In the future, we should consider imposing a proper abstraction on
update engine error codes that'll prevent mingling with value encoding
directly and prevent such nastiness. It'll also make things more
coherent (types, semantics) and safer.
BUG=chromium:358329
TEST=Unit tests.
Change-Id: Ie55fa566b764cdab6c4785d995fb6daee4cb32d3
Reviewed-on: https://chromium-review.googlesource.com/203209
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Gilad Arnold <garnold@chromium.org>
diff --git a/omaha_request_action.h b/omaha_request_action.h
index c8505a9..c005cc4 100644
--- a/omaha_request_action.h
+++ b/omaha_request_action.h
@@ -54,11 +54,11 @@
OmahaEvent()
: type(kTypeUnknown),
result(kResultError),
- error_code(kErrorCodeError) {}
+ error_code(ErrorCode::kError) {}
explicit OmahaEvent(Type in_type)
: type(in_type),
result(kResultSuccess),
- error_code(kErrorCodeSuccess) {}
+ error_code(ErrorCode::kSuccess) {}
OmahaEvent(Type in_type, Result in_result, ErrorCode in_error_code)
: type(in_type),
result(in_result),