Coverage Report

Created: 2018-09-25 14:53

/work/obj-fuzz/ipc/ipdl/PBackgroundIDBCursor.cpp
Line
Count
Source (jump to first uncovered line)
1
//
2
// Automatically generated by ipdlc.
3
// Edit at your own risk
4
//
5
6
7
#include "mozilla/dom/indexedDB/SerializationHelpers.h"
8
#include "mozilla/dom/indexedDB/PBackgroundIDBTransactionParent.h"
9
#include "mozilla/dom/indexedDB/PBackgroundIDBTransactionChild.h"
10
#include "mozilla/dom/indexedDB/PBackgroundIDBVersionChangeTransactionParent.h"
11
#include "mozilla/dom/indexedDB/PBackgroundIDBVersionChangeTransactionChild.h"
12
#include "mozilla/dom/PBackgroundMutableFileParent.h"
13
#include "mozilla/dom/PBackgroundMutableFileChild.h"
14
#include "mozilla/ipc/PChildToParentStreamParent.h"
15
#include "mozilla/ipc/PChildToParentStreamChild.h"
16
#include "mozilla/ipc/PFileDescriptorSetParent.h"
17
#include "mozilla/ipc/PFileDescriptorSetChild.h"
18
#include "mozilla/ipc/PIPCBlobInputStreamParent.h"
19
#include "mozilla/ipc/PIPCBlobInputStreamChild.h"
20
#include "mozilla/ipc/PParentToChildStreamParent.h"
21
#include "mozilla/ipc/PParentToChildStreamChild.h"
22
#include "mozilla/dom/indexedDB/PBackgroundIDBCursor.h"
23
24
namespace mozilla {
25
namespace dom {
26
namespace indexedDB {
27
namespace PBackgroundIDBCursor {
28
29
nsresult
30
CreateEndpoints(
31
        base::ProcessId aParentDestPid,
32
        base::ProcessId aChildDestPid,
33
        mozilla::ipc::Endpoint<mozilla::dom::indexedDB::PBackgroundIDBCursorParent>* aParent,
34
        mozilla::ipc::Endpoint<mozilla::dom::indexedDB::PBackgroundIDBCursorChild>* aChild)
35
0
{
36
0
    return mozilla::ipc::CreateEndpoints(mozilla::ipc::PrivateIPDLInterface(), aParentDestPid, aChildDestPid, aParent, aChild);
37
0
}
38
IPC::Message*
39
Msg_DeleteMe(int32_t routingId)
40
0
{
41
0
    return IPC::Message::IPDLMessage(routingId, Msg_DeleteMe__ID, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_INTERRUPT, IPC::Message::NOT_REPLY));
42
0
}
43
IPC::Message*
44
Msg_Continue(int32_t routingId)
45
0
{
46
0
    return IPC::Message::IPDLMessage(routingId, Msg_Continue__ID, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_INTERRUPT, IPC::Message::NOT_REPLY));
47
0
}
48
IPC::Message*
49
Msg___delete__(int32_t routingId)
50
0
{
51
0
    return IPC::Message::IPDLMessage(routingId, Msg___delete____ID, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_INTERRUPT, IPC::Message::NOT_REPLY));
52
0
}
53
IPC::Message*
54
Reply___delete__(int32_t routingId)
55
0
{
56
0
    return IPC::Message::IPDLMessage(routingId, Reply___delete____ID, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_INTERRUPT, IPC::Message::REPLY));
57
0
}
58
IPC::Message*
59
Msg_Response(int32_t routingId)
60
0
{
61
0
    return IPC::Message::IPDLMessage(routingId, Msg_Response__ID, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_INTERRUPT, IPC::Message::NOT_REPLY));
62
0
}
63
64
} // namespace PBackgroundIDBCursor
65
} // namespace indexedDB
66
} // namespace dom
67
} // namespace mozilla
68
69
//-----------------------------------------------------------------------------
70
// Method definitions for the IPDL type |struct ContinueParams|
71
//
72
namespace mozilla {
73
namespace dom {
74
namespace indexedDB {
75
auto ContinueParams::operator==(const ContinueParams& _o) const -> bool
76
0
{
77
0
    if ((!((key()) == ((_o).key())))) {
78
0
        return false;
79
0
    }
80
0
    return true;
81
0
}
82
83
auto ContinueParams::operator!=(const ContinueParams& _o) const -> bool
84
0
{
85
0
    return (!(operator==(_o)));
86
0
}
87
88
} // namespace indexedDB
89
} // namespace dom
90
} // namespace mozilla
91
92
namespace mozilla {
93
namespace ipc {
94
auto IPDLParamTraits<mozilla::dom::indexedDB::ContinueParams>::Write(
95
        IPC::Message* aMsg,
96
        mozilla::ipc::IProtocol* aActor,
97
        const paramType& aVar) -> void
98
0
{
99
0
    WriteIPDLParam(aMsg, aActor, (aVar).key());
100
0
    // Sentinel = 'key'
101
0
    (aMsg)->WriteSentinel(35142870);
102
0
}
103
104
auto IPDLParamTraits<mozilla::dom::indexedDB::ContinueParams>::Read(
105
        const IPC::Message* aMsg,
106
        PickleIterator* aIter,
107
        mozilla::ipc::IProtocol* aActor,
108
        paramType* aVar) -> bool
109
0
{
110
0
    if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->key())))))) {
111
0
        (aActor)->FatalError("Error deserializing 'key' (Key) member of 'ContinueParams'");
112
0
        return false;
113
0
    }
114
0
    // Sentinel = 'key'
115
0
    if ((!((aMsg)->ReadSentinel(aIter, 35142870)))) {
116
0
        mozilla::ipc::SentinelReadError("Error deserializing 'key' (Key) member of 'ContinueParams'");
117
0
        return false;
118
0
    }
119
0
    return true;
120
0
}
121
122
} // namespace ipc
123
} // namespace mozilla
124
125
//-----------------------------------------------------------------------------
126
// Method definitions for the IPDL type |struct ContinuePrimaryKeyParams|
127
//
128
namespace mozilla {
129
namespace dom {
130
namespace indexedDB {
131
auto ContinuePrimaryKeyParams::operator==(const ContinuePrimaryKeyParams& _o) const -> bool
132
0
{
133
0
    if ((!((key()) == ((_o).key())))) {
134
0
        return false;
135
0
    }
136
0
    if ((!((primaryKey()) == ((_o).primaryKey())))) {
137
0
        return false;
138
0
    }
139
0
    return true;
140
0
}
141
142
auto ContinuePrimaryKeyParams::operator!=(const ContinuePrimaryKeyParams& _o) const -> bool
143
0
{
144
0
    return (!(operator==(_o)));
145
0
}
146
147
} // namespace indexedDB
148
} // namespace dom
149
} // namespace mozilla
150
151
namespace mozilla {
152
namespace ipc {
153
auto IPDLParamTraits<mozilla::dom::indexedDB::ContinuePrimaryKeyParams>::Write(
154
        IPC::Message* aMsg,
155
        mozilla::ipc::IProtocol* aActor,
156
        const paramType& aVar) -> void
157
0
{
158
0
    WriteIPDLParam(aMsg, aActor, (aVar).key());
159
0
    // Sentinel = 'key'
160
0
    (aMsg)->WriteSentinel(35142870);
161
0
    WriteIPDLParam(aMsg, aActor, (aVar).primaryKey());
162
0
    // Sentinel = 'primaryKey'
163
0
    (aMsg)->WriteSentinel(1482950525);
164
0
}
165
166
auto IPDLParamTraits<mozilla::dom::indexedDB::ContinuePrimaryKeyParams>::Read(
167
        const IPC::Message* aMsg,
168
        PickleIterator* aIter,
169
        mozilla::ipc::IProtocol* aActor,
170
        paramType* aVar) -> bool
171
0
{
172
0
    if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->key())))))) {
173
0
        (aActor)->FatalError("Error deserializing 'key' (Key) member of 'ContinuePrimaryKeyParams'");
174
0
        return false;
175
0
    }
176
0
    // Sentinel = 'key'
177
0
    if ((!((aMsg)->ReadSentinel(aIter, 35142870)))) {
178
0
        mozilla::ipc::SentinelReadError("Error deserializing 'key' (Key) member of 'ContinuePrimaryKeyParams'");
179
0
        return false;
180
0
    }
181
0
    if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->primaryKey())))))) {
182
0
        (aActor)->FatalError("Error deserializing 'primaryKey' (Key) member of 'ContinuePrimaryKeyParams'");
183
0
        return false;
184
0
    }
185
0
    // Sentinel = 'primaryKey'
186
0
    if ((!((aMsg)->ReadSentinel(aIter, 1482950525)))) {
187
0
        mozilla::ipc::SentinelReadError("Error deserializing 'primaryKey' (Key) member of 'ContinuePrimaryKeyParams'");
188
0
        return false;
189
0
    }
190
0
    return true;
191
0
}
192
193
} // namespace ipc
194
} // namespace mozilla
195
196
//-----------------------------------------------------------------------------
197
// Method definitions for the IPDL type |struct AdvanceParams|
198
//
199
namespace mozilla {
200
namespace dom {
201
namespace indexedDB {
202
auto AdvanceParams::operator==(const AdvanceParams& _o) const -> bool
203
0
{
204
0
    if ((!((count()) == ((_o).count())))) {
205
0
        return false;
206
0
    }
207
0
    return true;
208
0
}
209
210
auto AdvanceParams::operator!=(const AdvanceParams& _o) const -> bool
211
0
{
212
0
    return (!(operator==(_o)));
213
0
}
214
215
} // namespace indexedDB
216
} // namespace dom
217
} // namespace mozilla
218
219
namespace mozilla {
220
namespace ipc {
221
auto IPDLParamTraits<mozilla::dom::indexedDB::AdvanceParams>::Write(
222
        IPC::Message* aMsg,
223
        mozilla::ipc::IProtocol* aActor,
224
        const paramType& aVar) -> void
225
0
{
226
0
    WriteIPDLParam(aMsg, aActor, (aVar).count());
227
0
    // Sentinel = 'count'
228
0
    (aMsg)->WriteSentinel(2126421856);
229
0
}
230
231
auto IPDLParamTraits<mozilla::dom::indexedDB::AdvanceParams>::Read(
232
        const IPC::Message* aMsg,
233
        PickleIterator* aIter,
234
        mozilla::ipc::IProtocol* aActor,
235
        paramType* aVar) -> bool
236
0
{
237
0
    if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->count())))))) {
238
0
        (aActor)->FatalError("Error deserializing 'count' (uint32_t) member of 'AdvanceParams'");
239
0
        return false;
240
0
    }
241
0
    // Sentinel = 'count'
242
0
    if ((!((aMsg)->ReadSentinel(aIter, 2126421856)))) {
243
0
        mozilla::ipc::SentinelReadError("Error deserializing 'count' (uint32_t) member of 'AdvanceParams'");
244
0
        return false;
245
0
    }
246
0
    return true;
247
0
}
248
249
} // namespace ipc
250
} // namespace mozilla
251
252
//-----------------------------------------------------------------------------
253
// Method definitions for the IPDL type |union CursorRequestParams|
254
//
255
namespace mozilla {
256
namespace dom {
257
namespace indexedDB {
258
auto CursorRequestParams::MaybeDestroy(Type aNewType) -> bool
259
0
{
260
0
    if ((mType) == (T__None)) {
261
0
        return true;
262
0
    }
263
0
    if ((mType) == (aNewType)) {
264
0
        return false;
265
0
    }
266
0
    switch (mType) {
267
0
    case TContinueParams:
268
0
        {
269
0
            (ptr_ContinueParams())->~ContinueParams__tdef();
270
0
            break;
271
0
        }
272
0
    case TContinuePrimaryKeyParams:
273
0
        {
274
0
            (ptr_ContinuePrimaryKeyParams())->~ContinuePrimaryKeyParams__tdef();
275
0
            break;
276
0
        }
277
0
    case TAdvanceParams:
278
0
        {
279
0
            (ptr_AdvanceParams())->~AdvanceParams__tdef();
280
0
            break;
281
0
        }
282
0
    default:
283
0
        {
284
0
            mozilla::ipc::LogicError("not reached");
285
0
            break;
286
0
        }
287
0
    }
288
0
    return true;
289
0
}
290
291
MOZ_IMPLICIT CursorRequestParams::CursorRequestParams(const ContinueParams& aOther)
292
0
{
293
0
    new (mozilla::KnownNotNull, ptr_ContinueParams()) ContinueParams(aOther);
294
0
    mType = TContinueParams;
295
0
}
296
297
MOZ_IMPLICIT CursorRequestParams::CursorRequestParams(ContinueParams&& aOther)
298
0
{
299
0
    new (mozilla::KnownNotNull, ptr_ContinueParams()) ContinueParams(std::move(aOther));
300
0
    mType = TContinueParams;
301
0
}
302
303
MOZ_IMPLICIT CursorRequestParams::CursorRequestParams(const ContinuePrimaryKeyParams& aOther)
304
0
{
305
0
    new (mozilla::KnownNotNull, ptr_ContinuePrimaryKeyParams()) ContinuePrimaryKeyParams(aOther);
306
0
    mType = TContinuePrimaryKeyParams;
307
0
}
308
309
MOZ_IMPLICIT CursorRequestParams::CursorRequestParams(ContinuePrimaryKeyParams&& aOther)
310
0
{
311
0
    new (mozilla::KnownNotNull, ptr_ContinuePrimaryKeyParams()) ContinuePrimaryKeyParams(std::move(aOther));
312
0
    mType = TContinuePrimaryKeyParams;
313
0
}
314
315
MOZ_IMPLICIT CursorRequestParams::CursorRequestParams(const AdvanceParams& aOther)
316
0
{
317
0
    new (mozilla::KnownNotNull, ptr_AdvanceParams()) AdvanceParams(aOther);
318
0
    mType = TAdvanceParams;
319
0
}
320
321
MOZ_IMPLICIT CursorRequestParams::CursorRequestParams(AdvanceParams&& aOther)
322
0
{
323
0
    new (mozilla::KnownNotNull, ptr_AdvanceParams()) AdvanceParams(std::move(aOther));
324
0
    mType = TAdvanceParams;
325
0
}
326
327
MOZ_IMPLICIT CursorRequestParams::CursorRequestParams(const CursorRequestParams& aOther)
328
0
{
329
0
    (aOther).AssertSanity();
330
0
    switch ((aOther).type()) {
331
0
    case TContinueParams:
332
0
        {
333
0
            new (mozilla::KnownNotNull, ptr_ContinueParams()) ContinueParams((aOther).get_ContinueParams());
334
0
            break;
335
0
        }
336
0
    case TContinuePrimaryKeyParams:
337
0
        {
338
0
            new (mozilla::KnownNotNull, ptr_ContinuePrimaryKeyParams()) ContinuePrimaryKeyParams((aOther).get_ContinuePrimaryKeyParams());
339
0
            break;
340
0
        }
341
0
    case TAdvanceParams:
342
0
        {
343
0
            new (mozilla::KnownNotNull, ptr_AdvanceParams()) AdvanceParams((aOther).get_AdvanceParams());
344
0
            break;
345
0
        }
346
0
    case T__None:
347
0
        {
348
0
            break;
349
0
        }
350
0
    default:
351
0
        {
352
0
            mozilla::ipc::LogicError("unreached");
353
0
            return;
354
0
        }
355
0
    }
356
0
    mType = (aOther).type();
357
0
}
358
359
MOZ_IMPLICIT CursorRequestParams::CursorRequestParams(CursorRequestParams&& aOther)
360
0
{
361
0
    (aOther).AssertSanity();
362
0
    Type t = (aOther).type();
363
0
    switch (t) {
364
0
    case TContinueParams:
365
0
        {
366
0
            new (mozilla::KnownNotNull, ptr_ContinueParams()) ContinueParams(std::move((aOther).get_ContinueParams()));
367
0
            static_cast<void>((aOther).MaybeDestroy(T__None));
368
0
            break;
369
0
        }
370
0
    case TContinuePrimaryKeyParams:
371
0
        {
372
0
            new (mozilla::KnownNotNull, ptr_ContinuePrimaryKeyParams()) ContinuePrimaryKeyParams(std::move((aOther).get_ContinuePrimaryKeyParams()));
373
0
            static_cast<void>((aOther).MaybeDestroy(T__None));
374
0
            break;
375
0
        }
376
0
    case TAdvanceParams:
377
0
        {
378
0
            new (mozilla::KnownNotNull, ptr_AdvanceParams()) AdvanceParams(std::move((aOther).get_AdvanceParams()));
379
0
            static_cast<void>((aOther).MaybeDestroy(T__None));
380
0
            break;
381
0
        }
382
0
    case T__None:
383
0
        {
384
0
            break;
385
0
        }
386
0
    default:
387
0
        {
388
0
            mozilla::ipc::LogicError("unreached");
389
0
            return;
390
0
        }
391
0
    }
392
0
    (aOther).mType = T__None;
393
0
    mType = t;
394
0
}
395
396
CursorRequestParams::~CursorRequestParams()
397
0
{
398
0
    static_cast<void>(MaybeDestroy(T__None));
399
0
}
400
401
auto CursorRequestParams::operator=(const ContinueParams& aRhs) -> CursorRequestParams&
402
0
{
403
0
    if (MaybeDestroy(TContinueParams)) {
404
0
        new (mozilla::KnownNotNull, ptr_ContinueParams()) ContinueParams;
405
0
    }
406
0
    (*(ptr_ContinueParams())) = aRhs;
407
0
    mType = TContinueParams;
408
0
    return (*(this));
409
0
}
410
411
auto CursorRequestParams::operator=(ContinueParams&& aRhs) -> CursorRequestParams&
412
0
{
413
0
    if (MaybeDestroy(TContinueParams)) {
414
0
        new (mozilla::KnownNotNull, ptr_ContinueParams()) ContinueParams;
415
0
    }
416
0
    (*(ptr_ContinueParams())) = std::move(aRhs);
417
0
    mType = TContinueParams;
418
0
    return (*(this));
419
0
}
420
421
auto CursorRequestParams::operator=(const ContinuePrimaryKeyParams& aRhs) -> CursorRequestParams&
422
0
{
423
0
    if (MaybeDestroy(TContinuePrimaryKeyParams)) {
424
0
        new (mozilla::KnownNotNull, ptr_ContinuePrimaryKeyParams()) ContinuePrimaryKeyParams;
425
0
    }
426
0
    (*(ptr_ContinuePrimaryKeyParams())) = aRhs;
427
0
    mType = TContinuePrimaryKeyParams;
428
0
    return (*(this));
429
0
}
430
431
auto CursorRequestParams::operator=(ContinuePrimaryKeyParams&& aRhs) -> CursorRequestParams&
432
0
{
433
0
    if (MaybeDestroy(TContinuePrimaryKeyParams)) {
434
0
        new (mozilla::KnownNotNull, ptr_ContinuePrimaryKeyParams()) ContinuePrimaryKeyParams;
435
0
    }
436
0
    (*(ptr_ContinuePrimaryKeyParams())) = std::move(aRhs);
437
0
    mType = TContinuePrimaryKeyParams;
438
0
    return (*(this));
439
0
}
440
441
auto CursorRequestParams::operator=(const AdvanceParams& aRhs) -> CursorRequestParams&
442
0
{
443
0
    if (MaybeDestroy(TAdvanceParams)) {
444
0
        new (mozilla::KnownNotNull, ptr_AdvanceParams()) AdvanceParams;
445
0
    }
446
0
    (*(ptr_AdvanceParams())) = aRhs;
447
0
    mType = TAdvanceParams;
448
0
    return (*(this));
449
0
}
450
451
auto CursorRequestParams::operator=(AdvanceParams&& aRhs) -> CursorRequestParams&
452
0
{
453
0
    if (MaybeDestroy(TAdvanceParams)) {
454
0
        new (mozilla::KnownNotNull, ptr_AdvanceParams()) AdvanceParams;
455
0
    }
456
0
    (*(ptr_AdvanceParams())) = std::move(aRhs);
457
0
    mType = TAdvanceParams;
458
0
    return (*(this));
459
0
}
460
461
auto CursorRequestParams::operator=(const CursorRequestParams& aRhs) -> CursorRequestParams&
462
0
{
463
0
    (aRhs).AssertSanity();
464
0
    Type t = (aRhs).type();
465
0
    switch (t) {
466
0
    case TContinueParams:
467
0
        {
468
0
            if (MaybeDestroy(t)) {
469
0
                new (mozilla::KnownNotNull, ptr_ContinueParams()) ContinueParams;
470
0
            }
471
0
            (*(ptr_ContinueParams())) = (aRhs).get_ContinueParams();
472
0
            break;
473
0
        }
474
0
    case TContinuePrimaryKeyParams:
475
0
        {
476
0
            if (MaybeDestroy(t)) {
477
0
                new (mozilla::KnownNotNull, ptr_ContinuePrimaryKeyParams()) ContinuePrimaryKeyParams;
478
0
            }
479
0
            (*(ptr_ContinuePrimaryKeyParams())) = (aRhs).get_ContinuePrimaryKeyParams();
480
0
            break;
481
0
        }
482
0
    case TAdvanceParams:
483
0
        {
484
0
            if (MaybeDestroy(t)) {
485
0
                new (mozilla::KnownNotNull, ptr_AdvanceParams()) AdvanceParams;
486
0
            }
487
0
            (*(ptr_AdvanceParams())) = (aRhs).get_AdvanceParams();
488
0
            break;
489
0
        }
490
0
    case T__None:
491
0
        {
492
0
            static_cast<void>(MaybeDestroy(t));
493
0
            break;
494
0
        }
495
0
    default:
496
0
        {
497
0
            mozilla::ipc::LogicError("unreached");
498
0
            break;
499
0
        }
500
0
    }
501
0
    mType = t;
502
0
    return (*(this));
503
0
}
504
505
auto CursorRequestParams::operator=(CursorRequestParams&& aRhs) -> CursorRequestParams&
506
0
{
507
0
    (aRhs).AssertSanity();
508
0
    Type t = (aRhs).type();
509
0
    switch (t) {
510
0
    case TContinueParams:
511
0
        {
512
0
            if (MaybeDestroy(t)) {
513
0
                new (mozilla::KnownNotNull, ptr_ContinueParams()) ContinueParams;
514
0
            }
515
0
            (*(ptr_ContinueParams())) = std::move((aRhs).get_ContinueParams());
516
0
            static_cast<void>((aRhs).MaybeDestroy(T__None));
517
0
            break;
518
0
        }
519
0
    case TContinuePrimaryKeyParams:
520
0
        {
521
0
            if (MaybeDestroy(t)) {
522
0
                new (mozilla::KnownNotNull, ptr_ContinuePrimaryKeyParams()) ContinuePrimaryKeyParams;
523
0
            }
524
0
            (*(ptr_ContinuePrimaryKeyParams())) = std::move((aRhs).get_ContinuePrimaryKeyParams());
525
0
            static_cast<void>((aRhs).MaybeDestroy(T__None));
526
0
            break;
527
0
        }
528
0
    case TAdvanceParams:
529
0
        {
530
0
            if (MaybeDestroy(t)) {
531
0
                new (mozilla::KnownNotNull, ptr_AdvanceParams()) AdvanceParams;
532
0
            }
533
0
            (*(ptr_AdvanceParams())) = std::move((aRhs).get_AdvanceParams());
534
0
            static_cast<void>((aRhs).MaybeDestroy(T__None));
535
0
            break;
536
0
        }
537
0
    case T__None:
538
0
        {
539
0
            static_cast<void>(MaybeDestroy(t));
540
0
            break;
541
0
        }
542
0
    default:
543
0
        {
544
0
            mozilla::ipc::LogicError("unreached");
545
0
            break;
546
0
        }
547
0
    }
548
0
    (aRhs).mType = T__None;
549
0
    mType = t;
550
0
    return (*(this));
551
0
}
552
553
auto CursorRequestParams::operator==(const ContinueParams& aRhs) const -> bool
554
0
{
555
0
    return (get_ContinueParams()) == (aRhs);
556
0
}
557
558
auto CursorRequestParams::operator==(const ContinuePrimaryKeyParams& aRhs) const -> bool
559
0
{
560
0
    return (get_ContinuePrimaryKeyParams()) == (aRhs);
561
0
}
562
563
auto CursorRequestParams::operator==(const AdvanceParams& aRhs) const -> bool
564
0
{
565
0
    return (get_AdvanceParams()) == (aRhs);
566
0
}
567
568
auto CursorRequestParams::operator==(const CursorRequestParams& aRhs) const -> bool
569
0
{
570
0
    if ((type()) != ((aRhs).type())) {
571
0
        return false;
572
0
    }
573
0
574
0
    switch (type()) {
575
0
    case TContinueParams:
576
0
        {
577
0
            return (get_ContinueParams()) == ((aRhs).get_ContinueParams());
578
0
        }
579
0
    case TContinuePrimaryKeyParams:
580
0
        {
581
0
            return (get_ContinuePrimaryKeyParams()) == ((aRhs).get_ContinuePrimaryKeyParams());
582
0
        }
583
0
    case TAdvanceParams:
584
0
        {
585
0
            return (get_AdvanceParams()) == ((aRhs).get_AdvanceParams());
586
0
        }
587
0
    default:
588
0
        {
589
0
            mozilla::ipc::LogicError("unreached");
590
0
            return false;
591
0
        }
592
0
    }
593
0
}
594
595
auto CursorRequestParams::get(ContinueParams* aOutValue) const -> void
596
0
{
597
0
    (*(aOutValue)) = get_ContinueParams();
598
0
}
599
600
auto CursorRequestParams::get(ContinuePrimaryKeyParams* aOutValue) const -> void
601
0
{
602
0
    (*(aOutValue)) = get_ContinuePrimaryKeyParams();
603
0
}
604
605
auto CursorRequestParams::get(AdvanceParams* aOutValue) const -> void
606
0
{
607
0
    (*(aOutValue)) = get_AdvanceParams();
608
0
}
609
610
} // namespace indexedDB
611
} // namespace dom
612
} // namespace mozilla
613
614
namespace mozilla {
615
namespace ipc {
616
auto IPDLParamTraits<mozilla::dom::indexedDB::CursorRequestParams>::Write(
617
        IPC::Message* aMsg,
618
        mozilla::ipc::IProtocol* aActor,
619
        const paramType& aVar) -> void
620
{
621
    typedef mozilla::dom::indexedDB::CursorRequestParams union__;
622
    int type;
623
    type = (aVar).type();
624
    WriteIPDLParam(aMsg, aActor, type);
625
    // Sentinel = 'CursorRequestParams'
626
    (aMsg)->WriteSentinel(2490772636);
627
628
    switch (type) {
629
    case union__::TContinueParams:
630
        {
631
            WriteIPDLParam(aMsg, aActor, (aVar).get_ContinueParams());
632
            // Sentinel = 'TContinueParams'
633
            (aMsg)->WriteSentinel(828906134);
634
            return;
635
        }
636
    case union__::TContinuePrimaryKeyParams:
637
        {
638
            WriteIPDLParam(aMsg, aActor, (aVar).get_ContinuePrimaryKeyParams());
639
            // Sentinel = 'TContinuePrimaryKeyParams'
640
            (aMsg)->WriteSentinel(304832163);
641
            return;
642
        }
643
    case union__::TAdvanceParams:
644
        {
645
            WriteIPDLParam(aMsg, aActor, (aVar).get_AdvanceParams());
646
            // Sentinel = 'TAdvanceParams'
647
            (aMsg)->WriteSentinel(4156873658);
648
            return;
649
        }
650
    default:
651
        {
652
            (aActor)->FatalError("unknown union type");
653
            return;
654
        }
655
    }
656
}
657
658
auto IPDLParamTraits<mozilla::dom::indexedDB::CursorRequestParams>::Read(
659
        const IPC::Message* aMsg,
660
        PickleIterator* aIter,
661
        mozilla::ipc::IProtocol* aActor,
662
        paramType* aVar) -> bool
663
0
{
664
0
    typedef mozilla::dom::indexedDB::CursorRequestParams union__;
665
0
    int type;
666
0
    if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&(type)))))) {
667
0
        (aActor)->FatalError("Error deserializing type of union CursorRequestParams");
668
0
        return false;
669
0
    }
670
0
    // Sentinel = 'CursorRequestParams'
671
0
    if ((!((aMsg)->ReadSentinel(aIter, 2490772636)))) {
672
0
        mozilla::ipc::SentinelReadError("Error deserializing type of union CursorRequestParams");
673
0
        return false;
674
0
    }
675
0
676
0
    switch (type) {
677
0
    case union__::TContinueParams:
678
0
        {
679
0
            mozilla::dom::indexedDB::ContinueParams tmp = mozilla::dom::indexedDB::ContinueParams();
680
0
            (*(aVar)) = tmp;
681
0
            if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->get_ContinueParams())))))) {
682
0
                (aActor)->FatalError("Error deserializing variant TContinueParams of union CursorRequestParams");
683
0
                return false;
684
0
            }
685
0
            // Sentinel = 'TContinueParams'
686
0
            if ((!((aMsg)->ReadSentinel(aIter, 828906134)))) {
687
0
                mozilla::ipc::SentinelReadError("Error deserializing variant TContinueParams of union CursorRequestParams");
688
0
                return false;
689
0
            }
690
0
            return true;
691
0
        }
692
0
    case union__::TContinuePrimaryKeyParams:
693
0
        {
694
0
            mozilla::dom::indexedDB::ContinuePrimaryKeyParams tmp = mozilla::dom::indexedDB::ContinuePrimaryKeyParams();
695
0
            (*(aVar)) = tmp;
696
0
            if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->get_ContinuePrimaryKeyParams())))))) {
697
0
                (aActor)->FatalError("Error deserializing variant TContinuePrimaryKeyParams of union CursorRequestParams");
698
0
                return false;
699
0
            }
700
0
            // Sentinel = 'TContinuePrimaryKeyParams'
701
0
            if ((!((aMsg)->ReadSentinel(aIter, 304832163)))) {
702
0
                mozilla::ipc::SentinelReadError("Error deserializing variant TContinuePrimaryKeyParams of union CursorRequestParams");
703
0
                return false;
704
0
            }
705
0
            return true;
706
0
        }
707
0
    case union__::TAdvanceParams:
708
0
        {
709
0
            mozilla::dom::indexedDB::AdvanceParams tmp = mozilla::dom::indexedDB::AdvanceParams();
710
0
            (*(aVar)) = tmp;
711
0
            if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->get_AdvanceParams())))))) {
712
0
                (aActor)->FatalError("Error deserializing variant TAdvanceParams of union CursorRequestParams");
713
0
                return false;
714
0
            }
715
0
            // Sentinel = 'TAdvanceParams'
716
0
            if ((!((aMsg)->ReadSentinel(aIter, 4156873658)))) {
717
0
                mozilla::ipc::SentinelReadError("Error deserializing variant TAdvanceParams of union CursorRequestParams");
718
0
                return false;
719
0
            }
720
0
            return true;
721
0
        }
722
0
    default:
723
0
        {
724
0
            (aActor)->FatalError("unknown union type");
725
0
            return false;
726
0
        }
727
0
    }
728
0
}
729
730
} // namespace ipc
731
} // namespace mozilla
732
733
//-----------------------------------------------------------------------------
734
// Method definitions for the IPDL type |struct ObjectStoreCursorResponse|
735
//
736
namespace mozilla {
737
namespace dom {
738
namespace indexedDB {
739
auto ObjectStoreCursorResponse::operator==(const ObjectStoreCursorResponse& _o) const -> bool
740
0
{
741
0
    if ((!((key()) == ((_o).key())))) {
742
0
        return false;
743
0
    }
744
0
    if ((!((cloneInfo()) == ((_o).cloneInfo())))) {
745
0
        return false;
746
0
    }
747
0
    return true;
748
0
}
749
750
auto ObjectStoreCursorResponse::operator!=(const ObjectStoreCursorResponse& _o) const -> bool
751
0
{
752
0
    return (!(operator==(_o)));
753
0
}
754
755
} // namespace indexedDB
756
} // namespace dom
757
} // namespace mozilla
758
759
namespace mozilla {
760
namespace ipc {
761
auto IPDLParamTraits<mozilla::dom::indexedDB::ObjectStoreCursorResponse>::Write(
762
        IPC::Message* aMsg,
763
        mozilla::ipc::IProtocol* aActor,
764
        const paramType& aVar) -> void
765
0
{
766
0
    WriteIPDLParam(aMsg, aActor, (aVar).key());
767
0
    // Sentinel = 'key'
768
0
    (aMsg)->WriteSentinel(35142870);
769
0
    WriteIPDLParam(aMsg, aActor, (aVar).cloneInfo());
770
0
    // Sentinel = 'cloneInfo'
771
0
    (aMsg)->WriteSentinel(517148166);
772
0
}
773
774
auto IPDLParamTraits<mozilla::dom::indexedDB::ObjectStoreCursorResponse>::Read(
775
        const IPC::Message* aMsg,
776
        PickleIterator* aIter,
777
        mozilla::ipc::IProtocol* aActor,
778
        paramType* aVar) -> bool
779
0
{
780
0
    if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->key())))))) {
781
0
        (aActor)->FatalError("Error deserializing 'key' (Key) member of 'ObjectStoreCursorResponse'");
782
0
        return false;
783
0
    }
784
0
    // Sentinel = 'key'
785
0
    if ((!((aMsg)->ReadSentinel(aIter, 35142870)))) {
786
0
        mozilla::ipc::SentinelReadError("Error deserializing 'key' (Key) member of 'ObjectStoreCursorResponse'");
787
0
        return false;
788
0
    }
789
0
    if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->cloneInfo())))))) {
790
0
        (aActor)->FatalError("Error deserializing 'cloneInfo' (SerializedStructuredCloneReadInfo) member of 'ObjectStoreCursorResponse'");
791
0
        return false;
792
0
    }
793
0
    // Sentinel = 'cloneInfo'
794
0
    if ((!((aMsg)->ReadSentinel(aIter, 517148166)))) {
795
0
        mozilla::ipc::SentinelReadError("Error deserializing 'cloneInfo' (SerializedStructuredCloneReadInfo) member of 'ObjectStoreCursorResponse'");
796
0
        return false;
797
0
    }
798
0
    return true;
799
0
}
800
801
} // namespace ipc
802
} // namespace mozilla
803
804
//-----------------------------------------------------------------------------
805
// Method definitions for the IPDL type |struct ObjectStoreKeyCursorResponse|
806
//
807
namespace mozilla {
808
namespace dom {
809
namespace indexedDB {
810
auto ObjectStoreKeyCursorResponse::operator==(const ObjectStoreKeyCursorResponse& _o) const -> bool
811
0
{
812
0
    if ((!((key()) == ((_o).key())))) {
813
0
        return false;
814
0
    }
815
0
    return true;
816
0
}
817
818
auto ObjectStoreKeyCursorResponse::operator!=(const ObjectStoreKeyCursorResponse& _o) const -> bool
819
0
{
820
0
    return (!(operator==(_o)));
821
0
}
822
823
} // namespace indexedDB
824
} // namespace dom
825
} // namespace mozilla
826
827
namespace mozilla {
828
namespace ipc {
829
auto IPDLParamTraits<mozilla::dom::indexedDB::ObjectStoreKeyCursorResponse>::Write(
830
        IPC::Message* aMsg,
831
        mozilla::ipc::IProtocol* aActor,
832
        const paramType& aVar) -> void
833
0
{
834
0
    WriteIPDLParam(aMsg, aActor, (aVar).key());
835
0
    // Sentinel = 'key'
836
0
    (aMsg)->WriteSentinel(35142870);
837
0
}
838
839
auto IPDLParamTraits<mozilla::dom::indexedDB::ObjectStoreKeyCursorResponse>::Read(
840
        const IPC::Message* aMsg,
841
        PickleIterator* aIter,
842
        mozilla::ipc::IProtocol* aActor,
843
        paramType* aVar) -> bool
844
0
{
845
0
    if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->key())))))) {
846
0
        (aActor)->FatalError("Error deserializing 'key' (Key) member of 'ObjectStoreKeyCursorResponse'");
847
0
        return false;
848
0
    }
849
0
    // Sentinel = 'key'
850
0
    if ((!((aMsg)->ReadSentinel(aIter, 35142870)))) {
851
0
        mozilla::ipc::SentinelReadError("Error deserializing 'key' (Key) member of 'ObjectStoreKeyCursorResponse'");
852
0
        return false;
853
0
    }
854
0
    return true;
855
0
}
856
857
} // namespace ipc
858
} // namespace mozilla
859
860
//-----------------------------------------------------------------------------
861
// Method definitions for the IPDL type |struct IndexCursorResponse|
862
//
863
namespace mozilla {
864
namespace dom {
865
namespace indexedDB {
866
auto IndexCursorResponse::operator==(const IndexCursorResponse& _o) const -> bool
867
0
{
868
0
    if ((!((key()) == ((_o).key())))) {
869
0
        return false;
870
0
    }
871
0
    if ((!((sortKey()) == ((_o).sortKey())))) {
872
0
        return false;
873
0
    }
874
0
    if ((!((objectKey()) == ((_o).objectKey())))) {
875
0
        return false;
876
0
    }
877
0
    if ((!((cloneInfo()) == ((_o).cloneInfo())))) {
878
0
        return false;
879
0
    }
880
0
    return true;
881
0
}
882
883
auto IndexCursorResponse::operator!=(const IndexCursorResponse& _o) const -> bool
884
0
{
885
0
    return (!(operator==(_o)));
886
0
}
887
888
} // namespace indexedDB
889
} // namespace dom
890
} // namespace mozilla
891
892
namespace mozilla {
893
namespace ipc {
894
auto IPDLParamTraits<mozilla::dom::indexedDB::IndexCursorResponse>::Write(
895
        IPC::Message* aMsg,
896
        mozilla::ipc::IProtocol* aActor,
897
        const paramType& aVar) -> void
898
0
{
899
0
    WriteIPDLParam(aMsg, aActor, (aVar).key());
900
0
    // Sentinel = 'key'
901
0
    (aMsg)->WriteSentinel(35142870);
902
0
    WriteIPDLParam(aMsg, aActor, (aVar).sortKey());
903
0
    // Sentinel = 'sortKey'
904
0
    (aMsg)->WriteSentinel(3767624686);
905
0
    WriteIPDLParam(aMsg, aActor, (aVar).objectKey());
906
0
    // Sentinel = 'objectKey'
907
0
    (aMsg)->WriteSentinel(339559251);
908
0
    WriteIPDLParam(aMsg, aActor, (aVar).cloneInfo());
909
0
    // Sentinel = 'cloneInfo'
910
0
    (aMsg)->WriteSentinel(517148166);
911
0
}
912
913
auto IPDLParamTraits<mozilla::dom::indexedDB::IndexCursorResponse>::Read(
914
        const IPC::Message* aMsg,
915
        PickleIterator* aIter,
916
        mozilla::ipc::IProtocol* aActor,
917
        paramType* aVar) -> bool
918
0
{
919
0
    if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->key())))))) {
920
0
        (aActor)->FatalError("Error deserializing 'key' (Key) member of 'IndexCursorResponse'");
921
0
        return false;
922
0
    }
923
0
    // Sentinel = 'key'
924
0
    if ((!((aMsg)->ReadSentinel(aIter, 35142870)))) {
925
0
        mozilla::ipc::SentinelReadError("Error deserializing 'key' (Key) member of 'IndexCursorResponse'");
926
0
        return false;
927
0
    }
928
0
    if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->sortKey())))))) {
929
0
        (aActor)->FatalError("Error deserializing 'sortKey' (Key) member of 'IndexCursorResponse'");
930
0
        return false;
931
0
    }
932
0
    // Sentinel = 'sortKey'
933
0
    if ((!((aMsg)->ReadSentinel(aIter, 3767624686)))) {
934
0
        mozilla::ipc::SentinelReadError("Error deserializing 'sortKey' (Key) member of 'IndexCursorResponse'");
935
0
        return false;
936
0
    }
937
0
    if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->objectKey())))))) {
938
0
        (aActor)->FatalError("Error deserializing 'objectKey' (Key) member of 'IndexCursorResponse'");
939
0
        return false;
940
0
    }
941
0
    // Sentinel = 'objectKey'
942
0
    if ((!((aMsg)->ReadSentinel(aIter, 339559251)))) {
943
0
        mozilla::ipc::SentinelReadError("Error deserializing 'objectKey' (Key) member of 'IndexCursorResponse'");
944
0
        return false;
945
0
    }
946
0
    if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->cloneInfo())))))) {
947
0
        (aActor)->FatalError("Error deserializing 'cloneInfo' (SerializedStructuredCloneReadInfo) member of 'IndexCursorResponse'");
948
0
        return false;
949
0
    }
950
0
    // Sentinel = 'cloneInfo'
951
0
    if ((!((aMsg)->ReadSentinel(aIter, 517148166)))) {
952
0
        mozilla::ipc::SentinelReadError("Error deserializing 'cloneInfo' (SerializedStructuredCloneReadInfo) member of 'IndexCursorResponse'");
953
0
        return false;
954
0
    }
955
0
    return true;
956
0
}
957
958
} // namespace ipc
959
} // namespace mozilla
960
961
//-----------------------------------------------------------------------------
962
// Method definitions for the IPDL type |struct IndexKeyCursorResponse|
963
//
964
namespace mozilla {
965
namespace dom {
966
namespace indexedDB {
967
auto IndexKeyCursorResponse::operator==(const IndexKeyCursorResponse& _o) const -> bool
968
0
{
969
0
    if ((!((key()) == ((_o).key())))) {
970
0
        return false;
971
0
    }
972
0
    if ((!((sortKey()) == ((_o).sortKey())))) {
973
0
        return false;
974
0
    }
975
0
    if ((!((objectKey()) == ((_o).objectKey())))) {
976
0
        return false;
977
0
    }
978
0
    return true;
979
0
}
980
981
auto IndexKeyCursorResponse::operator!=(const IndexKeyCursorResponse& _o) const -> bool
982
0
{
983
0
    return (!(operator==(_o)));
984
0
}
985
986
} // namespace indexedDB
987
} // namespace dom
988
} // namespace mozilla
989
990
namespace mozilla {
991
namespace ipc {
992
auto IPDLParamTraits<mozilla::dom::indexedDB::IndexKeyCursorResponse>::Write(
993
        IPC::Message* aMsg,
994
        mozilla::ipc::IProtocol* aActor,
995
        const paramType& aVar) -> void
996
0
{
997
0
    WriteIPDLParam(aMsg, aActor, (aVar).key());
998
0
    // Sentinel = 'key'
999
0
    (aMsg)->WriteSentinel(35142870);
1000
0
    WriteIPDLParam(aMsg, aActor, (aVar).sortKey());
1001
0
    // Sentinel = 'sortKey'
1002
0
    (aMsg)->WriteSentinel(3767624686);
1003
0
    WriteIPDLParam(aMsg, aActor, (aVar).objectKey());
1004
0
    // Sentinel = 'objectKey'
1005
0
    (aMsg)->WriteSentinel(339559251);
1006
0
}
1007
1008
auto IPDLParamTraits<mozilla::dom::indexedDB::IndexKeyCursorResponse>::Read(
1009
        const IPC::Message* aMsg,
1010
        PickleIterator* aIter,
1011
        mozilla::ipc::IProtocol* aActor,
1012
        paramType* aVar) -> bool
1013
0
{
1014
0
    if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->key())))))) {
1015
0
        (aActor)->FatalError("Error deserializing 'key' (Key) member of 'IndexKeyCursorResponse'");
1016
0
        return false;
1017
0
    }
1018
0
    // Sentinel = 'key'
1019
0
    if ((!((aMsg)->ReadSentinel(aIter, 35142870)))) {
1020
0
        mozilla::ipc::SentinelReadError("Error deserializing 'key' (Key) member of 'IndexKeyCursorResponse'");
1021
0
        return false;
1022
0
    }
1023
0
    if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->sortKey())))))) {
1024
0
        (aActor)->FatalError("Error deserializing 'sortKey' (Key) member of 'IndexKeyCursorResponse'");
1025
0
        return false;
1026
0
    }
1027
0
    // Sentinel = 'sortKey'
1028
0
    if ((!((aMsg)->ReadSentinel(aIter, 3767624686)))) {
1029
0
        mozilla::ipc::SentinelReadError("Error deserializing 'sortKey' (Key) member of 'IndexKeyCursorResponse'");
1030
0
        return false;
1031
0
    }
1032
0
    if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->objectKey())))))) {
1033
0
        (aActor)->FatalError("Error deserializing 'objectKey' (Key) member of 'IndexKeyCursorResponse'");
1034
0
        return false;
1035
0
    }
1036
0
    // Sentinel = 'objectKey'
1037
0
    if ((!((aMsg)->ReadSentinel(aIter, 339559251)))) {
1038
0
        mozilla::ipc::SentinelReadError("Error deserializing 'objectKey' (Key) member of 'IndexKeyCursorResponse'");
1039
0
        return false;
1040
0
    }
1041
0
    return true;
1042
0
}
1043
1044
} // namespace ipc
1045
} // namespace mozilla
1046
1047
//-----------------------------------------------------------------------------
1048
// Method definitions for the IPDL type |union CursorResponse|
1049
//
1050
namespace mozilla {
1051
namespace dom {
1052
namespace indexedDB {
1053
auto CursorResponse::MaybeDestroy(Type aNewType) -> bool
1054
0
{
1055
0
    if ((mType) == (T__None)) {
1056
0
        return true;
1057
0
    }
1058
0
    if ((mType) == (aNewType)) {
1059
0
        return false;
1060
0
    }
1061
0
    switch (mType) {
1062
0
    case Tvoid_t:
1063
0
        {
1064
0
            (ptr_void_t())->~void_t__tdef();
1065
0
            break;
1066
0
        }
1067
0
    case Tnsresult:
1068
0
        {
1069
0
            (ptr_nsresult())->~nsresult__tdef();
1070
0
            break;
1071
0
        }
1072
0
    case TArrayOfObjectStoreCursorResponse:
1073
0
        {
1074
0
            (ptr_ArrayOfObjectStoreCursorResponse())->~ArrayOfObjectStoreCursorResponse__tdef();
1075
0
            break;
1076
0
        }
1077
0
    case TObjectStoreKeyCursorResponse:
1078
0
        {
1079
0
            (ptr_ObjectStoreKeyCursorResponse())->~ObjectStoreKeyCursorResponse__tdef();
1080
0
            break;
1081
0
        }
1082
0
    case TIndexCursorResponse:
1083
0
        {
1084
0
            (ptr_IndexCursorResponse())->~IndexCursorResponse__tdef();
1085
0
            break;
1086
0
        }
1087
0
    case TIndexKeyCursorResponse:
1088
0
        {
1089
0
            (ptr_IndexKeyCursorResponse())->~IndexKeyCursorResponse__tdef();
1090
0
            break;
1091
0
        }
1092
0
    default:
1093
0
        {
1094
0
            mozilla::ipc::LogicError("not reached");
1095
0
            break;
1096
0
        }
1097
0
    }
1098
0
    return true;
1099
0
}
1100
1101
MOZ_IMPLICIT CursorResponse::CursorResponse(const void_t& aOther)
1102
0
{
1103
0
    new (mozilla::KnownNotNull, ptr_void_t()) void_t(aOther);
1104
0
    mType = Tvoid_t;
1105
0
}
1106
1107
MOZ_IMPLICIT CursorResponse::CursorResponse(void_t&& aOther)
1108
0
{
1109
0
    new (mozilla::KnownNotNull, ptr_void_t()) void_t(std::move(aOther));
1110
0
    mType = Tvoid_t;
1111
0
}
1112
1113
MOZ_IMPLICIT CursorResponse::CursorResponse(const nsresult& aOther)
1114
0
{
1115
0
    new (mozilla::KnownNotNull, ptr_nsresult()) nsresult(aOther);
1116
0
    mType = Tnsresult;
1117
0
}
1118
1119
MOZ_IMPLICIT CursorResponse::CursorResponse(nsresult&& aOther)
1120
0
{
1121
0
    new (mozilla::KnownNotNull, ptr_nsresult()) nsresult(std::move(aOther));
1122
0
    mType = Tnsresult;
1123
0
}
1124
1125
MOZ_IMPLICIT CursorResponse::CursorResponse(const nsTArray<ObjectStoreCursorResponse>& aOther)
1126
0
{
1127
0
    new (mozilla::KnownNotNull, ptr_ArrayOfObjectStoreCursorResponse()) nsTArray<ObjectStoreCursorResponse>(aOther);
1128
0
    mType = TArrayOfObjectStoreCursorResponse;
1129
0
}
1130
1131
MOZ_IMPLICIT CursorResponse::CursorResponse(nsTArray<ObjectStoreCursorResponse>&& aOther)
1132
0
{
1133
0
    new (mozilla::KnownNotNull, ptr_ArrayOfObjectStoreCursorResponse()) nsTArray<ObjectStoreCursorResponse>(std::move(aOther));
1134
0
    mType = TArrayOfObjectStoreCursorResponse;
1135
0
}
1136
1137
MOZ_IMPLICIT CursorResponse::CursorResponse(const ObjectStoreKeyCursorResponse& aOther)
1138
0
{
1139
0
    new (mozilla::KnownNotNull, ptr_ObjectStoreKeyCursorResponse()) ObjectStoreKeyCursorResponse(aOther);
1140
0
    mType = TObjectStoreKeyCursorResponse;
1141
0
}
1142
1143
MOZ_IMPLICIT CursorResponse::CursorResponse(ObjectStoreKeyCursorResponse&& aOther)
1144
0
{
1145
0
    new (mozilla::KnownNotNull, ptr_ObjectStoreKeyCursorResponse()) ObjectStoreKeyCursorResponse(std::move(aOther));
1146
0
    mType = TObjectStoreKeyCursorResponse;
1147
0
}
1148
1149
MOZ_IMPLICIT CursorResponse::CursorResponse(const IndexCursorResponse& aOther)
1150
0
{
1151
0
    new (mozilla::KnownNotNull, ptr_IndexCursorResponse()) IndexCursorResponse(aOther);
1152
0
    mType = TIndexCursorResponse;
1153
0
}
1154
1155
MOZ_IMPLICIT CursorResponse::CursorResponse(IndexCursorResponse&& aOther)
1156
0
{
1157
0
    new (mozilla::KnownNotNull, ptr_IndexCursorResponse()) IndexCursorResponse(std::move(aOther));
1158
0
    mType = TIndexCursorResponse;
1159
0
}
1160
1161
MOZ_IMPLICIT CursorResponse::CursorResponse(const IndexKeyCursorResponse& aOther)
1162
0
{
1163
0
    new (mozilla::KnownNotNull, ptr_IndexKeyCursorResponse()) IndexKeyCursorResponse(aOther);
1164
0
    mType = TIndexKeyCursorResponse;
1165
0
}
1166
1167
MOZ_IMPLICIT CursorResponse::CursorResponse(IndexKeyCursorResponse&& aOther)
1168
0
{
1169
0
    new (mozilla::KnownNotNull, ptr_IndexKeyCursorResponse()) IndexKeyCursorResponse(std::move(aOther));
1170
0
    mType = TIndexKeyCursorResponse;
1171
0
}
1172
1173
MOZ_IMPLICIT CursorResponse::CursorResponse(const CursorResponse& aOther)
1174
0
{
1175
0
    (aOther).AssertSanity();
1176
0
    switch ((aOther).type()) {
1177
0
    case Tvoid_t:
1178
0
        {
1179
0
            new (mozilla::KnownNotNull, ptr_void_t()) void_t((aOther).get_void_t());
1180
0
            break;
1181
0
        }
1182
0
    case Tnsresult:
1183
0
        {
1184
0
            new (mozilla::KnownNotNull, ptr_nsresult()) nsresult((aOther).get_nsresult());
1185
0
            break;
1186
0
        }
1187
0
    case TArrayOfObjectStoreCursorResponse:
1188
0
        {
1189
0
            new (mozilla::KnownNotNull, ptr_ArrayOfObjectStoreCursorResponse()) nsTArray<ObjectStoreCursorResponse>((aOther).get_ArrayOfObjectStoreCursorResponse());
1190
0
            break;
1191
0
        }
1192
0
    case TObjectStoreKeyCursorResponse:
1193
0
        {
1194
0
            new (mozilla::KnownNotNull, ptr_ObjectStoreKeyCursorResponse()) ObjectStoreKeyCursorResponse((aOther).get_ObjectStoreKeyCursorResponse());
1195
0
            break;
1196
0
        }
1197
0
    case TIndexCursorResponse:
1198
0
        {
1199
0
            new (mozilla::KnownNotNull, ptr_IndexCursorResponse()) IndexCursorResponse((aOther).get_IndexCursorResponse());
1200
0
            break;
1201
0
        }
1202
0
    case TIndexKeyCursorResponse:
1203
0
        {
1204
0
            new (mozilla::KnownNotNull, ptr_IndexKeyCursorResponse()) IndexKeyCursorResponse((aOther).get_IndexKeyCursorResponse());
1205
0
            break;
1206
0
        }
1207
0
    case T__None:
1208
0
        {
1209
0
            break;
1210
0
        }
1211
0
    default:
1212
0
        {
1213
0
            mozilla::ipc::LogicError("unreached");
1214
0
            return;
1215
0
        }
1216
0
    }
1217
0
    mType = (aOther).type();
1218
0
}
1219
1220
MOZ_IMPLICIT CursorResponse::CursorResponse(CursorResponse&& aOther)
1221
0
{
1222
0
    (aOther).AssertSanity();
1223
0
    Type t = (aOther).type();
1224
0
    switch (t) {
1225
0
    case Tvoid_t:
1226
0
        {
1227
0
            new (mozilla::KnownNotNull, ptr_void_t()) void_t(std::move((aOther).get_void_t()));
1228
0
            static_cast<void>((aOther).MaybeDestroy(T__None));
1229
0
            break;
1230
0
        }
1231
0
    case Tnsresult:
1232
0
        {
1233
0
            new (mozilla::KnownNotNull, ptr_nsresult()) nsresult(std::move((aOther).get_nsresult()));
1234
0
            static_cast<void>((aOther).MaybeDestroy(T__None));
1235
0
            break;
1236
0
        }
1237
0
    case TArrayOfObjectStoreCursorResponse:
1238
0
        {
1239
0
            new (mozilla::KnownNotNull, ptr_ArrayOfObjectStoreCursorResponse()) nsTArray<ObjectStoreCursorResponse>(std::move((aOther).get_ArrayOfObjectStoreCursorResponse()));
1240
0
            static_cast<void>((aOther).MaybeDestroy(T__None));
1241
0
            break;
1242
0
        }
1243
0
    case TObjectStoreKeyCursorResponse:
1244
0
        {
1245
0
            new (mozilla::KnownNotNull, ptr_ObjectStoreKeyCursorResponse()) ObjectStoreKeyCursorResponse(std::move((aOther).get_ObjectStoreKeyCursorResponse()));
1246
0
            static_cast<void>((aOther).MaybeDestroy(T__None));
1247
0
            break;
1248
0
        }
1249
0
    case TIndexCursorResponse:
1250
0
        {
1251
0
            new (mozilla::KnownNotNull, ptr_IndexCursorResponse()) IndexCursorResponse(std::move((aOther).get_IndexCursorResponse()));
1252
0
            static_cast<void>((aOther).MaybeDestroy(T__None));
1253
0
            break;
1254
0
        }
1255
0
    case TIndexKeyCursorResponse:
1256
0
        {
1257
0
            new (mozilla::KnownNotNull, ptr_IndexKeyCursorResponse()) IndexKeyCursorResponse(std::move((aOther).get_IndexKeyCursorResponse()));
1258
0
            static_cast<void>((aOther).MaybeDestroy(T__None));
1259
0
            break;
1260
0
        }
1261
0
    case T__None:
1262
0
        {
1263
0
            break;
1264
0
        }
1265
0
    default:
1266
0
        {
1267
0
            mozilla::ipc::LogicError("unreached");
1268
0
            return;
1269
0
        }
1270
0
    }
1271
0
    (aOther).mType = T__None;
1272
0
    mType = t;
1273
0
}
1274
1275
CursorResponse::~CursorResponse()
1276
0
{
1277
0
    static_cast<void>(MaybeDestroy(T__None));
1278
0
}
1279
1280
auto CursorResponse::operator=(const void_t& aRhs) -> CursorResponse&
1281
0
{
1282
0
    if (MaybeDestroy(Tvoid_t)) {
1283
0
        new (mozilla::KnownNotNull, ptr_void_t()) void_t;
1284
0
    }
1285
0
    (*(ptr_void_t())) = aRhs;
1286
0
    mType = Tvoid_t;
1287
0
    return (*(this));
1288
0
}
1289
1290
auto CursorResponse::operator=(void_t&& aRhs) -> CursorResponse&
1291
0
{
1292
0
    if (MaybeDestroy(Tvoid_t)) {
1293
0
        new (mozilla::KnownNotNull, ptr_void_t()) void_t;
1294
0
    }
1295
0
    (*(ptr_void_t())) = std::move(aRhs);
1296
0
    mType = Tvoid_t;
1297
0
    return (*(this));
1298
0
}
1299
1300
auto CursorResponse::operator=(const nsresult& aRhs) -> CursorResponse&
1301
0
{
1302
0
    if (MaybeDestroy(Tnsresult)) {
1303
0
        new (mozilla::KnownNotNull, ptr_nsresult()) nsresult;
1304
0
    }
1305
0
    (*(ptr_nsresult())) = aRhs;
1306
0
    mType = Tnsresult;
1307
0
    return (*(this));
1308
0
}
1309
1310
auto CursorResponse::operator=(nsresult&& aRhs) -> CursorResponse&
1311
0
{
1312
0
    if (MaybeDestroy(Tnsresult)) {
1313
0
        new (mozilla::KnownNotNull, ptr_nsresult()) nsresult;
1314
0
    }
1315
0
    (*(ptr_nsresult())) = std::move(aRhs);
1316
0
    mType = Tnsresult;
1317
0
    return (*(this));
1318
0
}
1319
1320
auto CursorResponse::operator=(const nsTArray<ObjectStoreCursorResponse>& aRhs) -> CursorResponse&
1321
0
{
1322
0
    if (MaybeDestroy(TArrayOfObjectStoreCursorResponse)) {
1323
0
        new (mozilla::KnownNotNull, ptr_ArrayOfObjectStoreCursorResponse()) nsTArray<ObjectStoreCursorResponse>;
1324
0
    }
1325
0
    (*(ptr_ArrayOfObjectStoreCursorResponse())) = aRhs;
1326
0
    mType = TArrayOfObjectStoreCursorResponse;
1327
0
    return (*(this));
1328
0
}
1329
1330
auto CursorResponse::operator=(nsTArray<ObjectStoreCursorResponse>&& aRhs) -> CursorResponse&
1331
0
{
1332
0
    if (MaybeDestroy(TArrayOfObjectStoreCursorResponse)) {
1333
0
        new (mozilla::KnownNotNull, ptr_ArrayOfObjectStoreCursorResponse()) nsTArray<ObjectStoreCursorResponse>;
1334
0
    }
1335
0
    (*(ptr_ArrayOfObjectStoreCursorResponse())) = std::move(aRhs);
1336
0
    mType = TArrayOfObjectStoreCursorResponse;
1337
0
    return (*(this));
1338
0
}
1339
1340
auto CursorResponse::operator=(const ObjectStoreKeyCursorResponse& aRhs) -> CursorResponse&
1341
0
{
1342
0
    if (MaybeDestroy(TObjectStoreKeyCursorResponse)) {
1343
0
        new (mozilla::KnownNotNull, ptr_ObjectStoreKeyCursorResponse()) ObjectStoreKeyCursorResponse;
1344
0
    }
1345
0
    (*(ptr_ObjectStoreKeyCursorResponse())) = aRhs;
1346
0
    mType = TObjectStoreKeyCursorResponse;
1347
0
    return (*(this));
1348
0
}
1349
1350
auto CursorResponse::operator=(ObjectStoreKeyCursorResponse&& aRhs) -> CursorResponse&
1351
0
{
1352
0
    if (MaybeDestroy(TObjectStoreKeyCursorResponse)) {
1353
0
        new (mozilla::KnownNotNull, ptr_ObjectStoreKeyCursorResponse()) ObjectStoreKeyCursorResponse;
1354
0
    }
1355
0
    (*(ptr_ObjectStoreKeyCursorResponse())) = std::move(aRhs);
1356
0
    mType = TObjectStoreKeyCursorResponse;
1357
0
    return (*(this));
1358
0
}
1359
1360
auto CursorResponse::operator=(const IndexCursorResponse& aRhs) -> CursorResponse&
1361
0
{
1362
0
    if (MaybeDestroy(TIndexCursorResponse)) {
1363
0
        new (mozilla::KnownNotNull, ptr_IndexCursorResponse()) IndexCursorResponse;
1364
0
    }
1365
0
    (*(ptr_IndexCursorResponse())) = aRhs;
1366
0
    mType = TIndexCursorResponse;
1367
0
    return (*(this));
1368
0
}
1369
1370
auto CursorResponse::operator=(IndexCursorResponse&& aRhs) -> CursorResponse&
1371
0
{
1372
0
    if (MaybeDestroy(TIndexCursorResponse)) {
1373
0
        new (mozilla::KnownNotNull, ptr_IndexCursorResponse()) IndexCursorResponse;
1374
0
    }
1375
0
    (*(ptr_IndexCursorResponse())) = std::move(aRhs);
1376
0
    mType = TIndexCursorResponse;
1377
0
    return (*(this));
1378
0
}
1379
1380
auto CursorResponse::operator=(const IndexKeyCursorResponse& aRhs) -> CursorResponse&
1381
0
{
1382
0
    if (MaybeDestroy(TIndexKeyCursorResponse)) {
1383
0
        new (mozilla::KnownNotNull, ptr_IndexKeyCursorResponse()) IndexKeyCursorResponse;
1384
0
    }
1385
0
    (*(ptr_IndexKeyCursorResponse())) = aRhs;
1386
0
    mType = TIndexKeyCursorResponse;
1387
0
    return (*(this));
1388
0
}
1389
1390
auto CursorResponse::operator=(IndexKeyCursorResponse&& aRhs) -> CursorResponse&
1391
0
{
1392
0
    if (MaybeDestroy(TIndexKeyCursorResponse)) {
1393
0
        new (mozilla::KnownNotNull, ptr_IndexKeyCursorResponse()) IndexKeyCursorResponse;
1394
0
    }
1395
0
    (*(ptr_IndexKeyCursorResponse())) = std::move(aRhs);
1396
0
    mType = TIndexKeyCursorResponse;
1397
0
    return (*(this));
1398
0
}
1399
1400
auto CursorResponse::operator=(const CursorResponse& aRhs) -> CursorResponse&
1401
0
{
1402
0
    (aRhs).AssertSanity();
1403
0
    Type t = (aRhs).type();
1404
0
    switch (t) {
1405
0
    case Tvoid_t:
1406
0
        {
1407
0
            if (MaybeDestroy(t)) {
1408
0
                new (mozilla::KnownNotNull, ptr_void_t()) void_t;
1409
0
            }
1410
0
            (*(ptr_void_t())) = (aRhs).get_void_t();
1411
0
            break;
1412
0
        }
1413
0
    case Tnsresult:
1414
0
        {
1415
0
            if (MaybeDestroy(t)) {
1416
0
                new (mozilla::KnownNotNull, ptr_nsresult()) nsresult;
1417
0
            }
1418
0
            (*(ptr_nsresult())) = (aRhs).get_nsresult();
1419
0
            break;
1420
0
        }
1421
0
    case TArrayOfObjectStoreCursorResponse:
1422
0
        {
1423
0
            if (MaybeDestroy(t)) {
1424
0
                new (mozilla::KnownNotNull, ptr_ArrayOfObjectStoreCursorResponse()) nsTArray<ObjectStoreCursorResponse>;
1425
0
            }
1426
0
            (*(ptr_ArrayOfObjectStoreCursorResponse())) = (aRhs).get_ArrayOfObjectStoreCursorResponse();
1427
0
            break;
1428
0
        }
1429
0
    case TObjectStoreKeyCursorResponse:
1430
0
        {
1431
0
            if (MaybeDestroy(t)) {
1432
0
                new (mozilla::KnownNotNull, ptr_ObjectStoreKeyCursorResponse()) ObjectStoreKeyCursorResponse;
1433
0
            }
1434
0
            (*(ptr_ObjectStoreKeyCursorResponse())) = (aRhs).get_ObjectStoreKeyCursorResponse();
1435
0
            break;
1436
0
        }
1437
0
    case TIndexCursorResponse:
1438
0
        {
1439
0
            if (MaybeDestroy(t)) {
1440
0
                new (mozilla::KnownNotNull, ptr_IndexCursorResponse()) IndexCursorResponse;
1441
0
            }
1442
0
            (*(ptr_IndexCursorResponse())) = (aRhs).get_IndexCursorResponse();
1443
0
            break;
1444
0
        }
1445
0
    case TIndexKeyCursorResponse:
1446
0
        {
1447
0
            if (MaybeDestroy(t)) {
1448
0
                new (mozilla::KnownNotNull, ptr_IndexKeyCursorResponse()) IndexKeyCursorResponse;
1449
0
            }
1450
0
            (*(ptr_IndexKeyCursorResponse())) = (aRhs).get_IndexKeyCursorResponse();
1451
0
            break;
1452
0
        }
1453
0
    case T__None:
1454
0
        {
1455
0
            static_cast<void>(MaybeDestroy(t));
1456
0
            break;
1457
0
        }
1458
0
    default:
1459
0
        {
1460
0
            mozilla::ipc::LogicError("unreached");
1461
0
            break;
1462
0
        }
1463
0
    }
1464
0
    mType = t;
1465
0
    return (*(this));
1466
0
}
1467
1468
auto CursorResponse::operator=(CursorResponse&& aRhs) -> CursorResponse&
1469
0
{
1470
0
    (aRhs).AssertSanity();
1471
0
    Type t = (aRhs).type();
1472
0
    switch (t) {
1473
0
    case Tvoid_t:
1474
0
        {
1475
0
            if (MaybeDestroy(t)) {
1476
0
                new (mozilla::KnownNotNull, ptr_void_t()) void_t;
1477
0
            }
1478
0
            (*(ptr_void_t())) = std::move((aRhs).get_void_t());
1479
0
            static_cast<void>((aRhs).MaybeDestroy(T__None));
1480
0
            break;
1481
0
        }
1482
0
    case Tnsresult:
1483
0
        {
1484
0
            if (MaybeDestroy(t)) {
1485
0
                new (mozilla::KnownNotNull, ptr_nsresult()) nsresult;
1486
0
            }
1487
0
            (*(ptr_nsresult())) = std::move((aRhs).get_nsresult());
1488
0
            static_cast<void>((aRhs).MaybeDestroy(T__None));
1489
0
            break;
1490
0
        }
1491
0
    case TArrayOfObjectStoreCursorResponse:
1492
0
        {
1493
0
            if (MaybeDestroy(t)) {
1494
0
                new (mozilla::KnownNotNull, ptr_ArrayOfObjectStoreCursorResponse()) nsTArray<ObjectStoreCursorResponse>;
1495
0
            }
1496
0
            (*(ptr_ArrayOfObjectStoreCursorResponse())) = std::move((aRhs).get_ArrayOfObjectStoreCursorResponse());
1497
0
            static_cast<void>((aRhs).MaybeDestroy(T__None));
1498
0
            break;
1499
0
        }
1500
0
    case TObjectStoreKeyCursorResponse:
1501
0
        {
1502
0
            if (MaybeDestroy(t)) {
1503
0
                new (mozilla::KnownNotNull, ptr_ObjectStoreKeyCursorResponse()) ObjectStoreKeyCursorResponse;
1504
0
            }
1505
0
            (*(ptr_ObjectStoreKeyCursorResponse())) = std::move((aRhs).get_ObjectStoreKeyCursorResponse());
1506
0
            static_cast<void>((aRhs).MaybeDestroy(T__None));
1507
0
            break;
1508
0
        }
1509
0
    case TIndexCursorResponse:
1510
0
        {
1511
0
            if (MaybeDestroy(t)) {
1512
0
                new (mozilla::KnownNotNull, ptr_IndexCursorResponse()) IndexCursorResponse;
1513
0
            }
1514
0
            (*(ptr_IndexCursorResponse())) = std::move((aRhs).get_IndexCursorResponse());
1515
0
            static_cast<void>((aRhs).MaybeDestroy(T__None));
1516
0
            break;
1517
0
        }
1518
0
    case TIndexKeyCursorResponse:
1519
0
        {
1520
0
            if (MaybeDestroy(t)) {
1521
0
                new (mozilla::KnownNotNull, ptr_IndexKeyCursorResponse()) IndexKeyCursorResponse;
1522
0
            }
1523
0
            (*(ptr_IndexKeyCursorResponse())) = std::move((aRhs).get_IndexKeyCursorResponse());
1524
0
            static_cast<void>((aRhs).MaybeDestroy(T__None));
1525
0
            break;
1526
0
        }
1527
0
    case T__None:
1528
0
        {
1529
0
            static_cast<void>(MaybeDestroy(t));
1530
0
            break;
1531
0
        }
1532
0
    default:
1533
0
        {
1534
0
            mozilla::ipc::LogicError("unreached");
1535
0
            break;
1536
0
        }
1537
0
    }
1538
0
    (aRhs).mType = T__None;
1539
0
    mType = t;
1540
0
    return (*(this));
1541
0
}
1542
1543
auto CursorResponse::operator==(const void_t& aRhs) const -> bool
1544
0
{
1545
0
    return (get_void_t()) == (aRhs);
1546
0
}
1547
1548
auto CursorResponse::operator==(const nsresult& aRhs) const -> bool
1549
0
{
1550
0
    return (get_nsresult()) == (aRhs);
1551
0
}
1552
1553
auto CursorResponse::operator==(const nsTArray<ObjectStoreCursorResponse>& aRhs) const -> bool
1554
0
{
1555
0
    return (get_ArrayOfObjectStoreCursorResponse()) == (aRhs);
1556
0
}
1557
1558
auto CursorResponse::operator==(const ObjectStoreKeyCursorResponse& aRhs) const -> bool
1559
0
{
1560
0
    return (get_ObjectStoreKeyCursorResponse()) == (aRhs);
1561
0
}
1562
1563
auto CursorResponse::operator==(const IndexCursorResponse& aRhs) const -> bool
1564
0
{
1565
0
    return (get_IndexCursorResponse()) == (aRhs);
1566
0
}
1567
1568
auto CursorResponse::operator==(const IndexKeyCursorResponse& aRhs) const -> bool
1569
0
{
1570
0
    return (get_IndexKeyCursorResponse()) == (aRhs);
1571
0
}
1572
1573
auto CursorResponse::operator==(const CursorResponse& aRhs) const -> bool
1574
0
{
1575
0
    if ((type()) != ((aRhs).type())) {
1576
0
        return false;
1577
0
    }
1578
0
1579
0
    switch (type()) {
1580
0
    case Tvoid_t:
1581
0
        {
1582
0
            return (get_void_t()) == ((aRhs).get_void_t());
1583
0
        }
1584
0
    case Tnsresult:
1585
0
        {
1586
0
            return (get_nsresult()) == ((aRhs).get_nsresult());
1587
0
        }
1588
0
    case TArrayOfObjectStoreCursorResponse:
1589
0
        {
1590
0
            return (get_ArrayOfObjectStoreCursorResponse()) == ((aRhs).get_ArrayOfObjectStoreCursorResponse());
1591
0
        }
1592
0
    case TObjectStoreKeyCursorResponse:
1593
0
        {
1594
0
            return (get_ObjectStoreKeyCursorResponse()) == ((aRhs).get_ObjectStoreKeyCursorResponse());
1595
0
        }
1596
0
    case TIndexCursorResponse:
1597
0
        {
1598
0
            return (get_IndexCursorResponse()) == ((aRhs).get_IndexCursorResponse());
1599
0
        }
1600
0
    case TIndexKeyCursorResponse:
1601
0
        {
1602
0
            return (get_IndexKeyCursorResponse()) == ((aRhs).get_IndexKeyCursorResponse());
1603
0
        }
1604
0
    default:
1605
0
        {
1606
0
            mozilla::ipc::LogicError("unreached");
1607
0
            return false;
1608
0
        }
1609
0
    }
1610
0
}
1611
1612
auto CursorResponse::get(void_t* aOutValue) const -> void
1613
0
{
1614
0
    (*(aOutValue)) = get_void_t();
1615
0
}
1616
1617
auto CursorResponse::get(nsresult* aOutValue) const -> void
1618
0
{
1619
0
    (*(aOutValue)) = get_nsresult();
1620
0
}
1621
1622
auto CursorResponse::get(nsTArray<ObjectStoreCursorResponse>* aOutValue) const -> void
1623
0
{
1624
0
    (*(aOutValue)) = get_ArrayOfObjectStoreCursorResponse();
1625
0
}
1626
1627
auto CursorResponse::get(ObjectStoreKeyCursorResponse* aOutValue) const -> void
1628
0
{
1629
0
    (*(aOutValue)) = get_ObjectStoreKeyCursorResponse();
1630
0
}
1631
1632
auto CursorResponse::get(IndexCursorResponse* aOutValue) const -> void
1633
0
{
1634
0
    (*(aOutValue)) = get_IndexCursorResponse();
1635
0
}
1636
1637
auto CursorResponse::get(IndexKeyCursorResponse* aOutValue) const -> void
1638
0
{
1639
0
    (*(aOutValue)) = get_IndexKeyCursorResponse();
1640
0
}
1641
1642
} // namespace indexedDB
1643
} // namespace dom
1644
} // namespace mozilla
1645
1646
namespace mozilla {
1647
namespace ipc {
1648
auto IPDLParamTraits<mozilla::dom::indexedDB::CursorResponse>::Write(
1649
        IPC::Message* aMsg,
1650
        mozilla::ipc::IProtocol* aActor,
1651
        const paramType& aVar) -> void
1652
{
1653
    typedef mozilla::dom::indexedDB::CursorResponse union__;
1654
    int type;
1655
    type = (aVar).type();
1656
    WriteIPDLParam(aMsg, aActor, type);
1657
    // Sentinel = 'CursorResponse'
1658
    (aMsg)->WriteSentinel(122304521);
1659
1660
    switch (type) {
1661
    case union__::Tvoid_t:
1662
        {
1663
            WriteIPDLParam(aMsg, aActor, (aVar).get_void_t());
1664
            // Sentinel = 'Tvoid_t'
1665
            (aMsg)->WriteSentinel(3041273328);
1666
            return;
1667
        }
1668
    case union__::Tnsresult:
1669
        {
1670
            WriteIPDLParam(aMsg, aActor, (aVar).get_nsresult());
1671
            // Sentinel = 'Tnsresult'
1672
            (aMsg)->WriteSentinel(2293764539);
1673
            return;
1674
        }
1675
    case union__::TArrayOfObjectStoreCursorResponse:
1676
        {
1677
            WriteIPDLParam(aMsg, aActor, (aVar).get_ArrayOfObjectStoreCursorResponse());
1678
            // Sentinel = 'TArrayOfObjectStoreCursorResponse'
1679
            (aMsg)->WriteSentinel(3759559706);
1680
            return;
1681
        }
1682
    case union__::TObjectStoreKeyCursorResponse:
1683
        {
1684
            WriteIPDLParam(aMsg, aActor, (aVar).get_ObjectStoreKeyCursorResponse());
1685
            // Sentinel = 'TObjectStoreKeyCursorResponse'
1686
            (aMsg)->WriteSentinel(2408348419);
1687
            return;
1688
        }
1689
    case union__::TIndexCursorResponse:
1690
        {
1691
            WriteIPDLParam(aMsg, aActor, (aVar).get_IndexCursorResponse());
1692
            // Sentinel = 'TIndexCursorResponse'
1693
            (aMsg)->WriteSentinel(2478545403);
1694
            return;
1695
        }
1696
    case union__::TIndexKeyCursorResponse:
1697
        {
1698
            WriteIPDLParam(aMsg, aActor, (aVar).get_IndexKeyCursorResponse());
1699
            // Sentinel = 'TIndexKeyCursorResponse'
1700
            (aMsg)->WriteSentinel(3192304605);
1701
            return;
1702
        }
1703
    default:
1704
        {
1705
            (aActor)->FatalError("unknown union type");
1706
            return;
1707
        }
1708
    }
1709
}
1710
1711
auto IPDLParamTraits<mozilla::dom::indexedDB::CursorResponse>::Read(
1712
        const IPC::Message* aMsg,
1713
        PickleIterator* aIter,
1714
        mozilla::ipc::IProtocol* aActor,
1715
        paramType* aVar) -> bool
1716
0
{
1717
0
    typedef mozilla::dom::indexedDB::CursorResponse union__;
1718
0
    int type;
1719
0
    if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&(type)))))) {
1720
0
        (aActor)->FatalError("Error deserializing type of union CursorResponse");
1721
0
        return false;
1722
0
    }
1723
0
    // Sentinel = 'CursorResponse'
1724
0
    if ((!((aMsg)->ReadSentinel(aIter, 122304521)))) {
1725
0
        mozilla::ipc::SentinelReadError("Error deserializing type of union CursorResponse");
1726
0
        return false;
1727
0
    }
1728
0
1729
0
    switch (type) {
1730
0
    case union__::Tvoid_t:
1731
0
        {
1732
0
            mozilla::void_t tmp = mozilla::void_t();
1733
0
            (*(aVar)) = tmp;
1734
0
            if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->get_void_t())))))) {
1735
0
                (aActor)->FatalError("Error deserializing variant Tvoid_t of union CursorResponse");
1736
0
                return false;
1737
0
            }
1738
0
            // Sentinel = 'Tvoid_t'
1739
0
            if ((!((aMsg)->ReadSentinel(aIter, 3041273328)))) {
1740
0
                mozilla::ipc::SentinelReadError("Error deserializing variant Tvoid_t of union CursorResponse");
1741
0
                return false;
1742
0
            }
1743
0
            return true;
1744
0
        }
1745
0
    case union__::Tnsresult:
1746
0
        {
1747
0
            nsresult tmp = nsresult();
1748
0
            (*(aVar)) = tmp;
1749
0
            if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->get_nsresult())))))) {
1750
0
                (aActor)->FatalError("Error deserializing variant Tnsresult of union CursorResponse");
1751
0
                return false;
1752
0
            }
1753
0
            // Sentinel = 'Tnsresult'
1754
0
            if ((!((aMsg)->ReadSentinel(aIter, 2293764539)))) {
1755
0
                mozilla::ipc::SentinelReadError("Error deserializing variant Tnsresult of union CursorResponse");
1756
0
                return false;
1757
0
            }
1758
0
            return true;
1759
0
        }
1760
0
    case union__::TArrayOfObjectStoreCursorResponse:
1761
0
        {
1762
0
            nsTArray<mozilla::dom::indexedDB::ObjectStoreCursorResponse> tmp;
1763
0
            (*(aVar)) = tmp;
1764
0
            if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->get_ArrayOfObjectStoreCursorResponse())))))) {
1765
0
                (aActor)->FatalError("Error deserializing variant TArrayOfObjectStoreCursorResponse of union CursorResponse");
1766
0
                return false;
1767
0
            }
1768
0
            // Sentinel = 'TArrayOfObjectStoreCursorResponse'
1769
0
            if ((!((aMsg)->ReadSentinel(aIter, 3759559706)))) {
1770
0
                mozilla::ipc::SentinelReadError("Error deserializing variant TArrayOfObjectStoreCursorResponse of union CursorResponse");
1771
0
                return false;
1772
0
            }
1773
0
            return true;
1774
0
        }
1775
0
    case union__::TObjectStoreKeyCursorResponse:
1776
0
        {
1777
0
            mozilla::dom::indexedDB::ObjectStoreKeyCursorResponse tmp = mozilla::dom::indexedDB::ObjectStoreKeyCursorResponse();
1778
0
            (*(aVar)) = tmp;
1779
0
            if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->get_ObjectStoreKeyCursorResponse())))))) {
1780
0
                (aActor)->FatalError("Error deserializing variant TObjectStoreKeyCursorResponse of union CursorResponse");
1781
0
                return false;
1782
0
            }
1783
0
            // Sentinel = 'TObjectStoreKeyCursorResponse'
1784
0
            if ((!((aMsg)->ReadSentinel(aIter, 2408348419)))) {
1785
0
                mozilla::ipc::SentinelReadError("Error deserializing variant TObjectStoreKeyCursorResponse of union CursorResponse");
1786
0
                return false;
1787
0
            }
1788
0
            return true;
1789
0
        }
1790
0
    case union__::TIndexCursorResponse:
1791
0
        {
1792
0
            mozilla::dom::indexedDB::IndexCursorResponse tmp = mozilla::dom::indexedDB::IndexCursorResponse();
1793
0
            (*(aVar)) = tmp;
1794
0
            if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->get_IndexCursorResponse())))))) {
1795
0
                (aActor)->FatalError("Error deserializing variant TIndexCursorResponse of union CursorResponse");
1796
0
                return false;
1797
0
            }
1798
0
            // Sentinel = 'TIndexCursorResponse'
1799
0
            if ((!((aMsg)->ReadSentinel(aIter, 2478545403)))) {
1800
0
                mozilla::ipc::SentinelReadError("Error deserializing variant TIndexCursorResponse of union CursorResponse");
1801
0
                return false;
1802
0
            }
1803
0
            return true;
1804
0
        }
1805
0
    case union__::TIndexKeyCursorResponse:
1806
0
        {
1807
0
            mozilla::dom::indexedDB::IndexKeyCursorResponse tmp = mozilla::dom::indexedDB::IndexKeyCursorResponse();
1808
0
            (*(aVar)) = tmp;
1809
0
            if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->get_IndexKeyCursorResponse())))))) {
1810
0
                (aActor)->FatalError("Error deserializing variant TIndexKeyCursorResponse of union CursorResponse");
1811
0
                return false;
1812
0
            }
1813
0
            // Sentinel = 'TIndexKeyCursorResponse'
1814
0
            if ((!((aMsg)->ReadSentinel(aIter, 3192304605)))) {
1815
0
                mozilla::ipc::SentinelReadError("Error deserializing variant TIndexKeyCursorResponse of union CursorResponse");
1816
0
                return false;
1817
0
            }
1818
0
            return true;
1819
0
        }
1820
0
    default:
1821
0
        {
1822
0
            (aActor)->FatalError("unknown union type");
1823
0
            return false;
1824
0
        }
1825
0
    }
1826
0
}
1827
1828
} // namespace ipc
1829
} // namespace mozilla