Home | History | Annotate | Download | only in trace_event
      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.
      4 
      5 #ifndef BASE_TRACE_EVENT_MEMORY_ALLOCATOR_DUMP_GUID_H_
      6 #define BASE_TRACE_EVENT_MEMORY_ALLOCATOR_DUMP_GUID_H_
      7 
      8 #include <stdint.h>
      9 
     10 #include <string>
     11 
     12 #include "base/base_export.h"
     13 
     14 namespace base {
     15 namespace trace_event {
     16 
     17 class BASE_EXPORT MemoryAllocatorDumpGuid {
     18  public:
     19   MemoryAllocatorDumpGuid();
     20   explicit MemoryAllocatorDumpGuid(uint64_t guid);
     21 
     22   // Utility ctor to hash a GUID if the caller prefers a string. The caller
     23   // still has to ensure that |guid_str| is unique, per snapshot, within the
     24   // global scope of all the traced processes.
     25   explicit MemoryAllocatorDumpGuid(const std::string& guid_str);
     26 
     27   uint64_t ToUint64() const { return guid_; }
     28 
     29   // Returns a (hex-encoded) string representation of the guid.
     30   std::string ToString() const;
     31 
     32   bool empty() const { return guid_ == 0u; }
     33 
     34   bool operator==(const MemoryAllocatorDumpGuid& other) const {
     35     return guid_ == other.guid_;
     36   }
     37 
     38   bool operator!=(const MemoryAllocatorDumpGuid& other) const {
     39     return !(*this == other);
     40   }
     41 
     42  private:
     43   uint64_t guid_;
     44 
     45   // Deliberately copy-able.
     46 };
     47 
     48 }  // namespace trace_event
     49 }  // namespace base
     50 
     51 #endif  // BASE_TRACE_EVENT_MEMORY_ALLOCATOR_DUMP_GUID_H_
     52