1 // Copyright (c) 2012 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 CONTENT_COMMON_INDEXED_DB_INDEXED_DB_PARAM_TRAITS_H_ 6 #define CONTENT_COMMON_INDEXED_DB_INDEXED_DB_PARAM_TRAITS_H_ 7 8 #include <string> 9 10 #include "ipc/ipc_message.h" 11 #include "ipc/ipc_param_traits.h" 12 13 namespace content { 14 class IndexedDBKey; 15 class IndexedDBKeyPath; 16 class IndexedDBKeyRange; 17 } 18 19 namespace IPC { 20 21 template <> 22 struct ParamTraits<content::IndexedDBKey> { 23 typedef content::IndexedDBKey param_type; 24 static void Write(Message* m, const param_type& p); 25 static bool Read(const Message* m, PickleIterator* iter, param_type* r); 26 static void Log(const param_type& p, std::string* l); 27 }; 28 29 template <> 30 struct ParamTraits<content::IndexedDBKeyRange> { 31 typedef content::IndexedDBKeyRange param_type; 32 static void Write(Message* m, const param_type& p); 33 static bool Read(const Message* m, PickleIterator* iter, param_type* r); 34 static void Log(const param_type& p, std::string* l); 35 }; 36 37 template <> 38 struct ParamTraits<content::IndexedDBKeyPath> { 39 typedef content::IndexedDBKeyPath param_type; 40 static void Write(Message* m, const param_type& p); 41 static bool Read(const Message* m, PickleIterator* iter, param_type* r); 42 static void Log(const param_type& p, std::string* l); 43 }; 44 45 } // namespace IPC 46 47 #endif // CONTENT_COMMON_INDEXED_DB_INDEXED_DB_PARAM_TRAITS_H_ 48