diff options
Diffstat (limited to 'ipc')
-rw-r--r-- | ipc/ipc_message_utils.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/ipc/ipc_message_utils.h b/ipc/ipc_message_utils.h index 5ec80a7..15d5297 100644 --- a/ipc/ipc_message_utils.h +++ b/ipc/ipc_message_utils.h @@ -11,6 +11,7 @@ #include "base/file_path.h" #include "base/format_macros.h" +#include "base/nullable_string16.h" #include "base/string16.h" #include "base/string_util.h" #include "base/time.h" @@ -545,6 +546,32 @@ struct ParamTraits<std::pair<A, B> > { } }; +template <> +struct ParamTraits<NullableString16> { + typedef NullableString16 param_type; + static void Write(Message* m, const param_type& p) { + WriteParam(m, p.string()); + WriteParam(m, p.is_null()); + } + static bool Read(const Message* m, void** iter, param_type* r) { + string16 string; + if (!ReadParam(m, iter, &string)) + return false; + bool is_null; + if (!ReadParam(m, iter, &is_null)) + return false; + *r = NullableString16(string, is_null); + return true; + } + static void Log(const param_type& p, std::wstring* l) { + l->append(L"("); + LogParam(p.string(), l); + l->append(L", "); + LogParam(p.is_null(), l); + l->append(L")"); + } +}; + // If WCHAR_T_IS_UTF16 is defined, then string16 is a std::wstring so we don't // need this trait. #if !defined(WCHAR_T_IS_UTF16) |