diff options
author | rockot <rockot@chromium.org> | 2016-02-03 12:20:16 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-02-03 20:21:49 +0000 |
commit | 502c94ff1a9f99b5c4ecfe700415cc4ed14228dd (patch) | |
tree | 260521d2640e580c11a54d24781ef0ebc32baee3 /chromecast | |
parent | 26c9117edc07280155c69c7fab04729af46a79eb (diff) | |
download | chromium_src-502c94ff1a9f99b5c4ecfe700415cc4ed14228dd.zip chromium_src-502c94ff1a9f99b5c4ecfe700415cc4ed14228dd.tar.gz chromium_src-502c94ff1a9f99b5c4ecfe700415cc4ed14228dd.tar.bz2 |
IPC::Message -> base::Pickle
This changes consumers of IPC::Message to generally refer
refer to base::Pickle instead when performing serialization
and deserialization operations. The few specific instances
where the IPC::Message interface (Read/WriteAttachent) is
needed can safely be static_cast'd, as IPC::Message is the
only public subclass of base::Pickle.
The purpose of this change is to facilitate the transition
to Mojo IPC, as we've trained the Mojo bindings layer to
use existing ParamTraits<T> parameterized over base::Pickle.
To support this base::Pickle has had some stub interfaces
added for WriteAttachment and ReadAttachment, along with a
Pickle::Attachment.
A follow-up patch will add sizing traits to the standard
IPC_STRUCT macros, enabling the majority of Chrome IPC
structs to be carried over Mojo message pipes as-is.
BUG=577685
R=jam@chromium.org
Review URL: https://codereview.chromium.org/1659003003
Cr-Commit-Position: refs/heads/master@{#373323}
Diffstat (limited to 'chromecast')
-rw-r--r-- | chromecast/common/media/cma_param_traits.cc | 10 | ||||
-rw-r--r-- | chromecast/common/media/cma_param_traits.h | 12 |
2 files changed, 14 insertions, 8 deletions
diff --git a/chromecast/common/media/cma_param_traits.cc b/chromecast/common/media/cma_param_traits.cc index 4c15ac8..f27043d 100644 --- a/chromecast/common/media/cma_param_traits.cc +++ b/chromecast/common/media/cma_param_traits.cc @@ -30,7 +30,8 @@ IPC_ENUM_TRAITS_MAX_VALUE(media::VideoPixelFormat, media::PIXEL_FORMAT_MAX) namespace IPC { void ParamTraits<media::AudioDecoderConfig>::Write( - Message* m, const media::AudioDecoderConfig& p) { + base::Pickle* m, + const media::AudioDecoderConfig& p) { WriteParam(m, p.codec()); WriteParam(m, p.sample_format()); WriteParam(m, p.channel_layout()); @@ -40,7 +41,7 @@ void ParamTraits<media::AudioDecoderConfig>::Write( } bool ParamTraits<media::AudioDecoderConfig>::Read( - const Message* m, + const base::Pickle* m, base::PickleIterator* iter, media::AudioDecoderConfig* r) { media::AudioCodec codec; @@ -65,7 +66,8 @@ void ParamTraits<media::AudioDecoderConfig>::Log( } void ParamTraits<media::VideoDecoderConfig>::Write( - Message* m, const media::VideoDecoderConfig& p) { + base::Pickle* m, + const media::VideoDecoderConfig& p) { WriteParam(m, p.codec()); WriteParam(m, p.profile()); WriteParam(m, p.format()); @@ -78,7 +80,7 @@ void ParamTraits<media::VideoDecoderConfig>::Write( } bool ParamTraits<media::VideoDecoderConfig>::Read( - const Message* m, + const base::Pickle* m, base::PickleIterator* iter, media::VideoDecoderConfig* r) { media::VideoCodec codec; diff --git a/chromecast/common/media/cma_param_traits.h b/chromecast/common/media/cma_param_traits.h index 106012b..c8609a5 100644 --- a/chromecast/common/media/cma_param_traits.h +++ b/chromecast/common/media/cma_param_traits.h @@ -17,16 +17,20 @@ namespace IPC { template <> struct ParamTraits<media::AudioDecoderConfig> { typedef media::AudioDecoderConfig param_type; - static void Write(Message* m, const param_type& p); - static bool Read(const Message* m, base::PickleIterator* iter, param_type* r); + static void Write(base::Pickle* m, const param_type& p); + static bool Read(const base::Pickle* m, + base::PickleIterator* iter, + param_type* r); static void Log(const param_type& p, std::string* l); }; template <> struct ParamTraits<media::VideoDecoderConfig> { typedef media::VideoDecoderConfig param_type; - static void Write(Message* m, const param_type& p); - static bool Read(const Message* m, base::PickleIterator* iter, param_type* r); + static void Write(base::Pickle* m, const param_type& p); + static bool Read(const base::Pickle* m, + base::PickleIterator* iter, + param_type* r); static void Log(const param_type& p, std::string* l); }; |