Add ICU message format support
[chromium-blink-merge.git] / base / trace_event / memory_allocator_dump_guid.h
blob634ca8133b53200ecc7bc9cfa9300642ed8ecebc
1 // Copyright 2015 The Chromium 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.
5 #ifndef BASE_TRACE_EVENT_MEMORY_ALLOCATOR_DUMP_GUID_H_
6 #define BASE_TRACE_EVENT_MEMORY_ALLOCATOR_DUMP_GUID_H_
8 #include <string>
10 #include "base/base_export.h"
11 #include "base/basictypes.h"
13 namespace base {
14 namespace trace_event {
16 class BASE_EXPORT MemoryAllocatorDumpGuid {
17 public:
18 MemoryAllocatorDumpGuid();
19 explicit MemoryAllocatorDumpGuid(uint64 guid);
21 // Utility ctor to hash a GUID if the caller prefers a string. The caller
22 // still has to ensure that |guid_str| is unique, per snapshot, within the
23 // global scope of all the traced processes.
24 explicit MemoryAllocatorDumpGuid(const std::string& guid_str);
26 uint64 ToUint64() const { return guid_; }
28 // Returns a (hex-encoded) string representation of the guid.
29 std::string ToString() const;
31 bool empty() const { return guid_ == 0u; }
33 bool operator==(const MemoryAllocatorDumpGuid& other) const {
34 return guid_ == other.guid_;
37 bool operator!=(const MemoryAllocatorDumpGuid& other) const {
38 return !(*this == other);
41 private:
42 uint64 guid_;
44 // Deliberately copy-able.
47 } // namespace trace_event
48 } // namespace base
50 #endif // BASE_TRACE_EVENT_MEMORY_ALLOCATOR_DUMP_GUID_H_