1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 #ifndef mozilla_net_DashboardTypes_h_
6 #define mozilla_net_DashboardTypes_h_
8 #include "ipc/IPCMessageUtils.h"
9 #include "ipc/IPCMessageUtilsSpecializations.h"
26 inline bool operator==(const SocketInfo
& a
, const SocketInfo
& b
) {
27 return a
.host
== b
.host
&& a
.sent
== b
.sent
&& a
.received
== b
.received
&&
28 a
.port
== b
.port
&& a
.active
== b
.active
&& a
.type
== b
.type
;
31 struct DnsAndConnectSockets
{
35 struct DNSCacheEntries
{
37 nsTArray
<nsCString
> hostaddr
;
40 nsCString netInterface
;
42 nsCString originAttributesSuffix
;
49 nsString protocolVersion
;
51 void SetHTTPProtocolVersion(HttpVersion pv
);
54 struct HttpRetParams
{
56 CopyableTArray
<HttpConnInfo
> active
;
57 CopyableTArray
<HttpConnInfo
> idle
;
58 CopyableTArray
<DnsAndConnectSockets
> dnsAndSocks
;
61 nsCString httpVersion
;
66 } // namespace mozilla
71 struct ParamTraits
<mozilla::net::SocketInfo
> {
72 typedef mozilla::net::SocketInfo paramType
;
74 static void Write(MessageWriter
* aWriter
, const paramType
& aParam
) {
75 WriteParam(aWriter
, aParam
.host
);
76 WriteParam(aWriter
, aParam
.sent
);
77 WriteParam(aWriter
, aParam
.received
);
78 WriteParam(aWriter
, aParam
.port
);
79 WriteParam(aWriter
, aParam
.active
);
80 WriteParam(aWriter
, aParam
.type
);
83 static bool Read(MessageReader
* aReader
, paramType
* aResult
) {
84 return ReadParam(aReader
, &aResult
->host
) &&
85 ReadParam(aReader
, &aResult
->sent
) &&
86 ReadParam(aReader
, &aResult
->received
) &&
87 ReadParam(aReader
, &aResult
->port
) &&
88 ReadParam(aReader
, &aResult
->active
) &&
89 ReadParam(aReader
, &aResult
->type
);
94 struct ParamTraits
<mozilla::net::DNSCacheEntries
> {
95 typedef mozilla::net::DNSCacheEntries paramType
;
97 static void Write(MessageWriter
* aWriter
, const paramType
& aParam
) {
98 WriteParam(aWriter
, aParam
.hostname
);
99 WriteParam(aWriter
, aParam
.hostaddr
);
100 WriteParam(aWriter
, aParam
.family
);
101 WriteParam(aWriter
, aParam
.expiration
);
102 WriteParam(aWriter
, aParam
.netInterface
);
103 WriteParam(aWriter
, aParam
.TRR
);
106 static bool Read(MessageReader
* aReader
, paramType
* aResult
) {
107 return ReadParam(aReader
, &aResult
->hostname
) &&
108 ReadParam(aReader
, &aResult
->hostaddr
) &&
109 ReadParam(aReader
, &aResult
->family
) &&
110 ReadParam(aReader
, &aResult
->expiration
) &&
111 ReadParam(aReader
, &aResult
->netInterface
) &&
112 ReadParam(aReader
, &aResult
->TRR
);
117 struct ParamTraits
<mozilla::net::DnsAndConnectSockets
> {
118 typedef mozilla::net::DnsAndConnectSockets paramType
;
120 static void Write(MessageWriter
* aWriter
, const paramType
& aParam
) {
121 WriteParam(aWriter
, aParam
.speculative
);
124 static bool Read(MessageReader
* aReader
, paramType
* aResult
) {
125 return ReadParam(aReader
, &aResult
->speculative
);
130 struct ParamTraits
<mozilla::net::HttpConnInfo
> {
131 typedef mozilla::net::HttpConnInfo paramType
;
133 static void Write(MessageWriter
* aWriter
, const paramType
& aParam
) {
134 WriteParam(aWriter
, aParam
.ttl
);
135 WriteParam(aWriter
, aParam
.rtt
);
136 WriteParam(aWriter
, aParam
.protocolVersion
);
139 static bool Read(MessageReader
* aReader
, paramType
* aResult
) {
140 return ReadParam(aReader
, &aResult
->ttl
) &&
141 ReadParam(aReader
, &aResult
->rtt
) &&
142 ReadParam(aReader
, &aResult
->protocolVersion
);
147 struct ParamTraits
<mozilla::net::HttpRetParams
> {
148 typedef mozilla::net::HttpRetParams paramType
;
150 static void Write(MessageWriter
* aWriter
, const paramType
& aParam
) {
151 WriteParam(aWriter
, aParam
.host
);
152 WriteParam(aWriter
, aParam
.active
);
153 WriteParam(aWriter
, aParam
.idle
);
154 WriteParam(aWriter
, aParam
.dnsAndSocks
);
155 WriteParam(aWriter
, aParam
.counter
);
156 WriteParam(aWriter
, aParam
.port
);
157 WriteParam(aWriter
, aParam
.httpVersion
);
158 WriteParam(aWriter
, aParam
.ssl
);
161 static bool Read(MessageReader
* aReader
, paramType
* aResult
) {
162 return ReadParam(aReader
, &aResult
->host
) &&
163 ReadParam(aReader
, &aResult
->active
) &&
164 ReadParam(aReader
, &aResult
->idle
) &&
165 ReadParam(aReader
, &aResult
->dnsAndSocks
) &&
166 ReadParam(aReader
, &aResult
->counter
) &&
167 ReadParam(aReader
, &aResult
->port
) &&
168 ReadParam(aReader
, &aResult
->httpVersion
) &&
169 ReadParam(aReader
, &aResult
->ssl
);
175 #endif // mozilla_net_DashboardTypes_h_