| // 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. |
| |
| #ifndef COMPONENTS_LEVELDB_PUBLIC_CPP_UTIL_H_ |
| #define COMPONENTS_LEVELDB_PUBLIC_CPP_UTIL_H_ |
| |
| #include "components/leveldb/public/interfaces/leveldb.mojom.h" |
| |
| namespace leveldb { |
| |
| class Slice; |
| class Status; |
| |
| // Builds a mojo mojom::DatabaseError from a leveldb::Status object. |
| mojom::DatabaseError LeveldbStatusToError(const leveldb::Status& s); |
| |
| // Creates a leveldb Status object form a database error and two optional |
| // messages. A mojoification of the various static leveldb::Status |
| // constructors. |
| leveldb::Status DatabaseErrorToStatus(mojom::DatabaseError e, |
| const Slice& msg, |
| const Slice& msg2); |
| |
| // Returns an UMA value for a mojom::DatabaseError. |
| int GetLevelDBStatusUMAValue(mojom::DatabaseError status); |
| |
| // Builds a Slice pointing to the data inside |a|. This is not a type-converter |
| // as it is not a copy operation; the returned Slice points into |a| and must |
| // outlive |a|. |
| leveldb::Slice GetSliceFor(const std::vector<uint8_t>& a); |
| |
| // Copies the data that |s| points to into a std::vector. |
| std::vector<uint8_t> GetVectorFor(const leveldb::Slice& s); |
| |
| std::string Uint8VectorToStdString(const std::vector<uint8_t>& input); |
| |
| std::vector<uint8_t> StdStringToUint8Vector(const std::string& input); |
| |
| } // namespace leveldb |
| |
| #endif // COMPONENTS_LEVELDB_PUBLIC_CPP_UTIL_H_ |