1// Copyright (c) 2011 The LevelDB Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. See the AUTHORS file for names of contributors. 4// 5// Must not be included from any .h files to avoid polluting the namespace 6// with macros. 7 8#ifndef STORAGE_LEVELDB_UTIL_LOGGING_H_ 9#define STORAGE_LEVELDB_UTIL_LOGGING_H_ 10 11#include <stdio.h> 12#include <stdint.h> 13#include <string> 14#include "port/port.h" 15 16namespace leveldb { 17 18class Slice; 19class WritableFile; 20 21// Append a human-readable printout of "num" to *str 22extern void AppendNumberTo(std::string* str, uint64_t num); 23 24// Append a human-readable printout of "value" to *str. 25// Escapes any non-printable characters found in "value". 26extern void AppendEscapedStringTo(std::string* str, const Slice& value); 27 28// Return a human-readable printout of "num" 29extern std::string NumberToString(uint64_t num); 30 31// Return a human-readable version of "value". 32// Escapes any non-printable characters found in "value". 33extern std::string EscapeString(const Slice& value); 34 35// If *in starts with "c", advances *in past the first character and 36// returns true. Otherwise, returns false. 37extern bool ConsumeChar(Slice* in, char c); 38 39// Parse a human-readable number from "*in" into *value. On success, 40// advances "*in" past the consumed number and sets "*val" to the 41// numeric value. Otherwise, returns false and leaves *in in an 42// unspecified state. 43extern bool ConsumeDecimalNumber(Slice* in, uint64_t* val); 44 45} // namespace leveldb 46 47#endif // STORAGE_LEVELDB_UTIL_LOGGING_H_ 48