Home | History | Annotate | Download | only in host
      1 // Copyright 2013 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 REMOTING_HOST_CHROMOTING_PARAM_TRAITS_H_
      6 #define REMOTING_HOST_CHROMOTING_PARAM_TRAITS_H_
      7 
      8 #include "ipc/ipc_message.h"
      9 #include "ipc/ipc_param_traits.h"
     10 #include "remoting/host/screen_resolution.h"
     11 #include "third_party/webrtc/modules/desktop_capture/desktop_frame.h"
     12 #include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h"
     13 #include "third_party/webrtc/modules/desktop_capture/mouse_cursor.h"
     14 
     15 namespace IPC {
     16 
     17 template <>
     18 struct ParamTraits<webrtc::DesktopVector> {
     19   typedef webrtc::DesktopVector param_type;
     20   static void Write(Message* m, const param_type& p);
     21   static bool Read(const Message* m, PickleIterator* iter, param_type* r);
     22   static void Log(const param_type& p, std::string* l);
     23 };
     24 
     25 template <>
     26 struct ParamTraits<webrtc::DesktopSize> {
     27   typedef webrtc::DesktopSize param_type;
     28   static void Write(Message* m, const param_type& p);
     29   static bool Read(const Message* m, PickleIterator* iter, param_type* r);
     30   static void Log(const param_type& p, std::string* l);
     31 };
     32 
     33 template <>
     34 struct ParamTraits<webrtc::DesktopRect> {
     35   typedef webrtc::DesktopRect param_type;
     36   static void Write(Message* m, const param_type& p);
     37   static bool Read(const Message* m, PickleIterator* iter, param_type* r);
     38   static void Log(const param_type& p, std::string* l);
     39 };
     40 
     41 template <>
     42 struct ParamTraits<webrtc::MouseCursor> {
     43   typedef webrtc::MouseCursor param_type;
     44   static void Write(Message* m, const param_type& p);
     45   static bool Read(const Message* m, PickleIterator* iter, param_type* r);
     46   static void Log(const param_type& p, std::string* l);
     47 };
     48 
     49 template <>
     50 struct ParamTraits<remoting::ScreenResolution> {
     51   typedef remoting::ScreenResolution param_type;
     52   static void Write(Message* m, const param_type& p);
     53   static bool Read(const Message* m, PickleIterator* iter, param_type* r);
     54   static void Log(const param_type& p, std::string* l);
     55 };
     56 
     57 }  // namespace IPC
     58 
     59 #endif  // REMOTING_HOST_CHROMOTING_PARAM_TRAITS_H_
     60