13f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 206741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch// Use of this source code is governed by a BSD-style license that can be 306741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch// found in the LICENSE file. 406741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch 506741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch#ifndef CHROME_COMMON_COMMON_PARAM_TRAITS_H_ 606741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch#define CHROME_COMMON_COMMON_PARAM_TRAITS_H_ 73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once 806741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch 9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include <string> 1006741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/common/content_settings.h" 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "ipc/ipc_param_traits.h" 1306741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch 1406741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdochnamespace IPC { 1506741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch 16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass Message; 1706741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch 1806741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdochtemplate <> 1906741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdochstruct ParamTraits<ContentSetting> { 2006741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch typedef ContentSetting param_type; 2106741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch static void Write(Message* m, const param_type& p); 22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen static bool Read(const Message* m, void** iter, param_type* p); 233345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick static void Log(const param_type& p, std::string* l); 2406741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch}; 2506741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch 2606741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdochtemplate <> 2706741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdochstruct ParamTraits<ContentSettingsType> { 2806741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch typedef ContentSettingsType param_type; 2906741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch static void Write(Message* m, const param_type& p); 3006741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch static bool Read(const Message* m, void** iter, param_type* p); 313345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick static void Log(const param_type& p, std::string* l); 3206741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch}; 3306741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch 3406741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch} // namespace IPC 3506741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch 3606741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch#endif // CHROME_COMMON_COMMON_PARAM_TRAITS_H_ 37