1// Copyright (c) 2012 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_GUID_H_ 6#define BASE_GUID_H_ 7 8#include <string> 9 10#include "base/base_export.h" 11#include "base/basictypes.h" 12#include "build/build_config.h" 13 14namespace base { 15 16// Generate a 128-bit random GUID of the form: "%08X-%04X-%04X-%04X-%012llX". 17// If GUID generation fails an empty string is returned. 18// The POSIX implementation uses psuedo random number generation to create 19// the GUID. The Windows implementation uses system services. 20BASE_EXPORT std::string GenerateGUID(); 21 22// Returns true if the input string conforms to the GUID format. 23BASE_EXPORT bool IsValidGUID(const std::string& guid); 24 25#if defined(OS_POSIX) 26// For unit testing purposes only. Do not use outside of tests. 27BASE_EXPORT std::string RandomDataToGUIDString(const uint64 bytes[2]); 28#endif 29 30} // namespace base 31 32#endif // BASE_GUID_H_ 33