1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #ifndef mozilla_RegistryMessageUtils_h
7 #define mozilla_RegistryMessageUtils_h
9 #include "ipc/IPCMessageUtils.h"
17 bool operator ==(const SerializedURI
& rhs
) const
19 return spec
.Equals(rhs
.spec
) &&
20 charset
.Equals(rhs
.charset
);
27 SerializedURI contentBaseURI
;
28 SerializedURI localeBaseURI
;
29 SerializedURI skinBaseURI
;
32 bool operator ==(const ChromePackage
& rhs
) const
34 return package
.Equals(rhs
.package
) &&
35 contentBaseURI
== rhs
.contentBaseURI
&&
36 localeBaseURI
== rhs
.localeBaseURI
&&
37 skinBaseURI
== rhs
.skinBaseURI
&&
42 struct ResourceMapping
45 SerializedURI resolvedURI
;
48 struct OverrideMapping
50 SerializedURI originalURI
;
51 SerializedURI overrideURI
;
53 bool operator==(const OverrideMapping
& rhs
) const
55 return originalURI
== rhs
.originalURI
&&
56 overrideURI
== rhs
.overrideURI
;
63 struct ParamTraits
<SerializedURI
>
65 typedef SerializedURI paramType
;
67 static void Write(Message
* aMsg
, const paramType
& aParam
)
69 WriteParam(aMsg
, aParam
.spec
);
70 WriteParam(aMsg
, aParam
.charset
);
73 static bool Read(const Message
* aMsg
, void** aIter
, paramType
* aResult
)
75 nsCString spec
, charset
;
76 if (ReadParam(aMsg
, aIter
, &spec
) &&
77 ReadParam(aMsg
, aIter
, &charset
)) {
79 aResult
->charset
= charset
;
87 struct ParamTraits
<ChromePackage
>
89 typedef ChromePackage paramType
;
91 static void Write(Message
* aMsg
, const paramType
& aParam
)
93 WriteParam(aMsg
, aParam
.package
);
94 WriteParam(aMsg
, aParam
.contentBaseURI
);
95 WriteParam(aMsg
, aParam
.localeBaseURI
);
96 WriteParam(aMsg
, aParam
.skinBaseURI
);
97 WriteParam(aMsg
, aParam
.flags
);
100 static bool Read(const Message
* aMsg
, void** aIter
, paramType
* aResult
)
103 SerializedURI contentBaseURI
, localeBaseURI
, skinBaseURI
;
106 if (ReadParam(aMsg
, aIter
, &package
) &&
107 ReadParam(aMsg
, aIter
, &contentBaseURI
) &&
108 ReadParam(aMsg
, aIter
, &localeBaseURI
) &&
109 ReadParam(aMsg
, aIter
, &skinBaseURI
) &&
110 ReadParam(aMsg
, aIter
, &flags
)) {
111 aResult
->package
= package
;
112 aResult
->contentBaseURI
= contentBaseURI
;
113 aResult
->localeBaseURI
= localeBaseURI
;
114 aResult
->skinBaseURI
= skinBaseURI
;
115 aResult
->flags
= flags
;
121 static void Log(const paramType
& aParam
, std::wstring
* aLog
)
123 aLog
->append(StringPrintf(L
"[%s, %s, %s, %s, %u]", aParam
.package
.get(),
124 aParam
.contentBaseURI
.spec
.get(),
125 aParam
.localeBaseURI
.spec
.get(),
126 aParam
.skinBaseURI
.spec
.get(), aParam
.flags
));
131 struct ParamTraits
<ResourceMapping
>
133 typedef ResourceMapping paramType
;
135 static void Write(Message
* aMsg
, const paramType
& aParam
)
137 WriteParam(aMsg
, aParam
.resource
);
138 WriteParam(aMsg
, aParam
.resolvedURI
);
141 static bool Read(const Message
* aMsg
, void** aIter
, paramType
* aResult
)
144 SerializedURI resolvedURI
;
146 if (ReadParam(aMsg
, aIter
, &resource
) &&
147 ReadParam(aMsg
, aIter
, &resolvedURI
)) {
148 aResult
->resource
= resource
;
149 aResult
->resolvedURI
= resolvedURI
;
155 static void Log(const paramType
& aParam
, std::wstring
* aLog
)
157 aLog
->append(StringPrintf(L
"[%s, %s, %u]", aParam
.resource
.get(),
158 aParam
.resolvedURI
.spec
.get()));
163 struct ParamTraits
<OverrideMapping
>
165 typedef OverrideMapping paramType
;
167 static void Write(Message
* aMsg
, const paramType
& aParam
)
169 WriteParam(aMsg
, aParam
.originalURI
);
170 WriteParam(aMsg
, aParam
.overrideURI
);
173 static bool Read(const Message
* aMsg
, void** aIter
, paramType
* aResult
)
175 SerializedURI originalURI
;
176 SerializedURI overrideURI
;
178 if (ReadParam(aMsg
, aIter
, &originalURI
) &&
179 ReadParam(aMsg
, aIter
, &overrideURI
)) {
180 aResult
->originalURI
= originalURI
;
181 aResult
->overrideURI
= overrideURI
;
187 static void Log(const paramType
& aParam
, std::wstring
* aLog
)
189 aLog
->append(StringPrintf(L
"[%s, %s, %u]", aParam
.originalURI
.spec
.get(),
190 aParam
.overrideURI
.spec
.get()));
196 #endif // RegistryMessageUtils_h