Index: storage/common/blob_storage/blob_storage_constants.cc |
diff --git a/storage/common/blob_storage/blob_storage_constants.cc b/storage/common/blob_storage/blob_storage_constants.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..744910040cb6e9ed34b2a0c0bd7e44ef1d30ca7d |
--- /dev/null |
+++ b/storage/common/blob_storage/blob_storage_constants.cc |
@@ -0,0 +1,38 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "storage/common/blob_storage/blob_storage_constants.h" |
+ |
+#include "base/logging.h" |
+ |
+namespace storage { |
+ |
+bool BlobStatusIsError(BlobStatus status) { |
+ return static_cast<int>(status) <= static_cast<int>(BlobStatus::LAST_ERROR); |
+} |
+ |
+bool BlobStatusIsBadIPC(BlobStatus status) { |
+ return status == BlobStatus::ERR_INVALID_CONSTRUCTION_ARGUMENTS; |
+} |
+ |
+bool BlobStatusIsPending(BlobStatus status) { |
+ switch (status) { |
+ case BlobStatus::ERR_INVALID_CONSTRUCTION_ARGUMENTS: |
+ case BlobStatus::ERR_OUT_OF_MEMORY: |
+ case BlobStatus::ERR_FILE_WRITE_FAILED: |
+ case BlobStatus::ERR_SOURCE_DIED_IN_TRANSIT: |
+ case BlobStatus::ERR_BLOB_DEREFERENCED_WHILE_BUILDING: |
+ case BlobStatus::ERR_REFERENCED_BLOB_BROKEN: |
+ case BlobStatus::DONE: |
+ return false; |
+ case BlobStatus::PENDING_MEMORY_REQUEST: |
+ case BlobStatus::PENDING_MEMORY_QUOTA: |
+ case BlobStatus::PENDING_DATA_POPULATION: |
+ return true; |
+ } |
+ NOTREACHED(); |
+ return false; |
+} |
+ |
+} // namespace storage |