diff options
Diffstat (limited to 'content/common/common_param_traits.h')
-rw-r--r-- | content/common/common_param_traits.h | 247 |
1 files changed, 0 insertions, 247 deletions
diff --git a/content/common/common_param_traits.h b/content/common/common_param_traits.h deleted file mode 100644 index 1357497..0000000 --- a/content/common/common_param_traits.h +++ /dev/null @@ -1,247 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// This file is used to define IPC::ParamTraits<> specializations for a number -// of types so that they can be serialized over IPC. IPC::ParamTraits<> -// specializations for basic types (like int and std::string) and types in the -// 'base' project can be found in ipc/ipc_message_utils.h. This file contains -// specializations for types that are used by the content code, and which need -// manual serialization code. This is usually because they're not structs with -// public members.. - -#ifndef CONTENT_COMMON_COMMON_PARAM_TRAITS_H_ -#define CONTENT_COMMON_COMMON_PARAM_TRAITS_H_ -#pragma once - -#include "base/memory/ref_counted.h" -#include "base/platform_file.h" -#include "content/common/content_export.h" -#include "content/common/dom_storage_common.h" -#include "content/public/common/page_transition_types.h" -#include "googleurl/src/gurl.h" -#include "ipc/ipc_message_utils.h" -#include "net/base/ip_endpoint.h" -#include "net/url_request/url_request_status.h" -#include "ui/gfx/native_widget_types.h" -#include "ui/gfx/surface/transport_dib.h" -#include "webkit/glue/resource_type.h" - -class SkBitmap; - -namespace gfx { -class Point; -class Rect; -class Size; -} // namespace gfx - -namespace net { -class HttpResponseHeaders; -class HostPortPair; -class UploadData; -} - -namespace ui { -class Range; -} - -namespace IPC { - -template <> -struct CONTENT_EXPORT ParamTraits<GURL> { - typedef GURL param_type; - static void Write(Message* m, const param_type& p); - static bool Read(const Message* m, void** iter, param_type* p); - static void Log(const param_type& p, std::string* l); -}; - -template <> -struct ParamTraits<ResourceType::Type> { - typedef ResourceType::Type param_type; - static void Write(Message* m, const param_type& p); - static bool Read(const Message* m, void** iter, param_type* p); - static void Log(const param_type& p, std::string* l); -}; - -template <> -struct CONTENT_EXPORT ParamTraits<net::URLRequestStatus> { - typedef net::URLRequestStatus param_type; - static void Write(Message* m, const param_type& p); - static bool Read(const Message* m, void** iter, param_type* r); - static void Log(const param_type& p, std::string* l); -}; - -template <> -struct CONTENT_EXPORT ParamTraits<scoped_refptr<net::UploadData> > { - typedef scoped_refptr<net::UploadData> param_type; - static void Write(Message* m, const param_type& p); - static bool Read(const Message* m, void** iter, param_type* r); - static void Log(const param_type& p, std::string* l); -}; - -template<> -struct CONTENT_EXPORT ParamTraits<net::HostPortPair> { - typedef net::HostPortPair param_type; - static void Write(Message* m, const param_type& p); - static bool Read(const Message* m, void** iter, param_type* r); - static void Log(const param_type& p, std::string* l); -}; - -template <> -struct ParamTraits<scoped_refptr<net::HttpResponseHeaders> > { - typedef scoped_refptr<net::HttpResponseHeaders> param_type; - static void Write(Message* m, const param_type& p); - static bool Read(const Message* m, void** iter, param_type* r); - static void Log(const param_type& p, std::string* l); -}; - -template <> -struct ParamTraits<net::IPEndPoint> { - typedef net::IPEndPoint param_type; - static void Write(Message* m, const param_type& p); - static bool Read(const Message* m, void** iter, param_type* p); - static void Log(const param_type& p, std::string* l); -}; - -template <> -struct ParamTraits<base::PlatformFileInfo> { - typedef base::PlatformFileInfo param_type; - static void Write(Message* m, const param_type& p); - static bool Read(const Message* m, void** iter, param_type* r); - static void Log(const param_type& p, std::string* l); -}; - -template <> -struct CONTENT_EXPORT ParamTraits<gfx::Point> { - typedef gfx::Point param_type; - static void Write(Message* m, const param_type& p); - static bool Read(const Message* m, void** iter, param_type* r); - static void Log(const param_type& p, std::string* l); -}; - -template <> -struct CONTENT_EXPORT ParamTraits<gfx::Size> { - typedef gfx::Size param_type; - static void Write(Message* m, const param_type& p); - static bool Read(const Message* m, void** iter, param_type* r); - static void Log(const param_type& p, std::string* l); -}; - -template <> -struct CONTENT_EXPORT ParamTraits<gfx::Rect> { - typedef gfx::Rect param_type; - static void Write(Message* m, const param_type& p); - static bool Read(const Message* m, void** iter, param_type* r); - static void Log(const param_type& p, std::string* l); -}; - -template <> -struct ParamTraits<gfx::NativeWindow> { - typedef gfx::NativeWindow param_type; - static void Write(Message* m, const param_type& p) { -#if defined(OS_WIN) - // HWNDs are always 32 bits on Windows, even on 64 bit systems. - m->WriteUInt32(reinterpret_cast<uint32>(p)); -#else - m->WriteData(reinterpret_cast<const char*>(&p), sizeof(p)); -#endif - } - static bool Read(const Message* m, void** iter, param_type* r) { -#if defined(OS_WIN) - return m->ReadUInt32(iter, reinterpret_cast<uint32*>(r)); -#else - const char *data; - int data_size = 0; - bool result = m->ReadData(iter, &data, &data_size); - if (result && data_size == sizeof(gfx::NativeWindow)) { - memcpy(r, data, sizeof(gfx::NativeWindow)); - } else { - result = false; - NOTREACHED(); - } - return result; -#endif - } - static void Log(const param_type& p, std::string* l) { - l->append("<gfx::NativeWindow>"); - } -}; - -template <> -struct CONTENT_EXPORT ParamTraits<ui::Range> { - typedef ui::Range param_type; - static void Write(Message* m, const param_type& p); - static bool Read(const Message* m, void** iter, param_type* r); - static void Log(const param_type& p, std::string* l); -}; - -#if defined(OS_WIN) -template<> -struct ParamTraits<TransportDIB::Id> { - typedef TransportDIB::Id param_type; - static void Write(Message* m, const param_type& p) { - WriteParam(m, p.handle); - WriteParam(m, p.sequence_num); - } - static bool Read(const Message* m, void** iter, param_type* r) { - return (ReadParam(m, iter, &r->handle) && - ReadParam(m, iter, &r->sequence_num)); - } - static void Log(const param_type& p, std::string* l) { - l->append("TransportDIB("); - LogParam(p.handle, l); - l->append(", "); - LogParam(p.sequence_num, l); - l->append(")"); - } -}; -#endif - -#if defined(USE_X11) -template<> -struct ParamTraits<TransportDIB::Id> { - typedef TransportDIB::Id param_type; - static void Write(Message* m, const param_type& p) { - WriteParam(m, p.shmkey); - } - static bool Read(const Message* m, void** iter, param_type* r) { - return ReadParam(m, iter, &r->shmkey); - } - static void Log(const param_type& p, std::string* l) { - l->append("TransportDIB("); - LogParam(p.shmkey, l); - l->append(")"); - } -}; -#endif - -template <> -struct CONTENT_EXPORT ParamTraits<SkBitmap> { - typedef SkBitmap param_type; - static void Write(Message* m, const param_type& p); - - // Note: This function expects parameter |r| to be of type &SkBitmap since - // r->SetConfig() and r->SetPixels() are called. - static bool Read(const Message* m, void** iter, param_type* r); - - static void Log(const param_type& p, std::string* l); -}; - -template <> -struct SimilarTypeTraits<base::PlatformFileError> { - typedef int Type; -}; - -template <> -struct SimilarTypeTraits<DOMStorageType> { - typedef int Type; -}; - -template <> -struct SimilarTypeTraits<content::PageTransition> { - typedef int Type; -}; - -} // namespace IPC - -#endif // CONTENT_COMMON_COMMON_PARAM_TRAITS_H_ |