#ifndef CONTENT_COMMON_CONTENT_PARAM_TRAITS_H_
#define CONTENT_COMMON_CONTENT_PARAM_TRAITS_H_
#include "content/common/content_export.h"
#include "content/common/content_param_traits_macros.h"
namespace blink {
class MessagePortChannel;
class MessagePortDescriptor;
class PolicyValue;
}
namespace ui {
class AXMode;
}
namespace viz {
class FrameSinkId;
class LocalSurfaceId;
class SurfaceId;
class SurfaceInfo;
}
namespace IPC {
template <>
struct CONTENT_EXPORT ParamTraits<blink::MessagePortChannel> {
typedef blink::MessagePortChannel param_type;
static void Write(base::Pickle* m, const param_type& p);
static bool Read(const base::Pickle* m,
base::PickleIterator* iter,
param_type* r);
};
template <>
struct CONTENT_EXPORT ParamTraits<blink::MessagePortDescriptor> {
typedef blink::MessagePortDescriptor param_type;
static void Write(base::Pickle* m, const param_type& p);
static bool Read(const base::Pickle* m,
base::PickleIterator* iter,
param_type* r);
};
template <>
struct CONTENT_EXPORT ParamTraits<blink::PolicyValue> {
typedef blink::PolicyValue param_type;
static void Write(base::Pickle* m, const param_type& p);
static bool Read(const base::Pickle* m,
base::PickleIterator* iter,
param_type* r);
};
template <>
struct CONTENT_EXPORT ParamTraits<ui::AXMode> {
typedef ui::AXMode param_type;
static void Write(base::Pickle* m, const param_type& p);
static bool Read(const base::Pickle* m,
base::PickleIterator* iter,
param_type* r);
};
template <>
struct CONTENT_EXPORT ParamTraits<viz::FrameSinkId> {
typedef viz::FrameSinkId param_type;
static void Write(base::Pickle* m, const param_type& p);
static bool Read(const base::Pickle* m,
base::PickleIterator* iter,
param_type* r);
};
template <>
struct CONTENT_EXPORT ParamTraits<viz::LocalSurfaceId> {
typedef viz::LocalSurfaceId param_type;
static void Write(base::Pickle* m, const param_type& p);
static bool Read(const base::Pickle* m,
base::PickleIterator* iter,
param_type* r);
};
template <>
struct CONTENT_EXPORT ParamTraits<viz::SurfaceId> {
typedef viz::SurfaceId param_type;
static void Write(base::Pickle* m, const param_type& p);
static bool Read(const base::Pickle* m,
base::PickleIterator* iter,
param_type* r);
};
template <>
struct CONTENT_EXPORT ParamTraits<viz::SurfaceInfo> {
typedef viz::SurfaceInfo param_type;
static void Write(base::Pickle* m, const param_type& p);
static bool Read(const base::Pickle* m,
base::PickleIterator* iter,
param_type* r);
};
}
#endif