chromium/out/Default/gen/third_party/blink/renderer/core/inspector/protocol/protocol.h

// This file is generated by Values_h.template.

// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef blink_protocol_Values_h
#define blink_protocol_Values_h

//#include "Allocator.h"
//#include "Forward.h"

#include <memory>
#include <unordered_map>
#include <utility>
#include <vector>

#include "third_party/blink/renderer/core/inspector/protocol/forward.h"

namespace blink {
namespace protocol {

class ListValue;
class DictionaryValue;
class Value;

#define PROTOCOL_DISALLOW_COPY(ClassName)

class CORE_EXPORT Value : public Serializable {};

class CORE_EXPORT FundamentalValue : public Value {};

class CORE_EXPORT StringValue : public Value {};

class CORE_EXPORT BinaryValue : public Value {};

class CORE_EXPORT DictionaryValue : public Value {};

class CORE_EXPORT ListValue : public Value {};

} // namespace blink
} // namespace protocol

#endif // blink_protocol_Values_h


// This file is generated by Object_h.template.

// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef blink_protocol_Object_h
#define blink_protocol_Object_h

//#include "ErrorSupport.h"
//#include "Forward.h"
//#include "Values.h"

#include "third_party/inspector_protocol/crdtp/serializable.h"

namespace blink {
namespace protocol {

class CORE_EXPORT Object : public crdtp::Serializable {};

} // namespace blink
} // namespace protocol

#endif // !defined(blink_protocol_Object_h)


// This file is generated by ValueConversions_h.template.

// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef blink_protocol_ValueConversions_h
#define blink_protocol_ValueConversions_h

//#include "ErrorSupport.h"
//#include "Forward.h"
//#include "Values.h"

namespace blink {
namespace protocol {

template<typename T>
struct ValueConversions {};

template<>
struct ValueConversions<bool> {};

template<>
struct ValueConversions<int> {};

template<>
struct ValueConversions<double> {};

template<>
struct ValueConversions<String> {};

template<>
struct ValueConversions<Binary> {};

ValueConversions<std::vector<std::unique_ptr<T>>>;

ValueConversions<std::vector<T>>;

template<>
struct ValueConversions<Value> {};

template<>
struct ValueConversions<DictionaryValue> {};

template<>
struct ValueConversions<ListValue> {};

template<typename T> struct ValueTypeConverter {};

} // namespace blink
} // namespace protocol

namespace crdtp {

ProtocolTypeTraits<T, typename std::enable_if<std::is_base_of<blink::protocol::Value, T>::value>::type>;

template <>
struct ProtocolTypeTraits<std::unique_ptr<blink::protocol::Value>> {};

template <>
struct ProtocolTypeTraits<std::unique_ptr<blink::protocol::DictionaryValue>> {};

// TODO(caseq): get rid of it, it's just a DictionaryValue really.
template <>
struct ProtocolTypeTraits<std::unique_ptr<blink::protocol::Object>> {};

template<>
struct ProtocolTypeTraits<blink::protocol::Object> {};

}  // namespace crdtp

#endif // !defined(blink_protocol_ValueConversions_h)