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