ACSMDownloader

ACSMDownloader Commit Details

Date:2021-05-08 18:48:41 (2 months 19 days ago)
Author:Grégory Soutadé
Commit:c343113f35afee25ee7e00cd30ee92c933c05e30
Message:Initial commit

Changes:
ALICENCE (full)
AMakefile (full)
AREADME.md (full)
Ainclude/log.h (full)
Ainclude/rmsdk/adept.h (full)
Ainclude/rmsdk/aescrypt.h (full)
Ainclude/rmsdk/cossl.h (full)
Ainclude/rmsdk/dp.h (full)
Ainclude/rmsdk/dpcrypt.h (full)
Ainclude/rmsdk/dpdev.h (full)
Ainclude/rmsdk/dpdoc.h (full)
Ainclude/rmsdk/dpdrm.h (full)
Ainclude/rmsdk/dpext.h (full)
Ainclude/rmsdk/dpio.h (full)
Ainclude/rmsdk/dplib.h (full)
Ainclude/rmsdk/dpnet.h (full)
Ainclude/rmsdk/dpres.h (full)
Ainclude/rmsdk/dpsec.h (full)
Ainclude/rmsdk/dptimer.h (full)
Ainclude/rmsdk/dputils.h (full)
Ainclude/rmsdk/librmsdk.h (full)
Ainclude/rmsdk/mdom.h (full)
Ainclude/rmsdk/meta.h (full)
Ainclude/rmsdk/metro.h (full)
Ainclude/rmsdk/package.h (full)
Ainclude/rmsdk/rib.h (full)
Ainclude/rmsdk/uft.h (full)
Ainclude/rmsdk/xpath.h (full)
Ainclude/rmsdk/zip.h (full)
Ainclude/rmsdk_wrapper.h (full)
Ascripts/acsmdownloader.sh (full)
Ascripts/activate.sh (full)
Ascripts/find_libs.sh (full)
Ascripts/setup.sh (full)
Asrc/acsmdownloader.cpp (full)
Asrc/activate.cpp (full)

File differences

LICENCE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
RMSDK_VERSION ?= 10.0.4
RMSDK_C_VERSION ?= 10_0
CROSS ?= arm-linux-gnueabihf-
CXX = $(CROSS)g++
CC = $(CROSS)gcc
DEBUG ?= 0
NO_BUILD_OPENSSL ?= 0
INSTALL_DIR ?= $(PWD)/deploy
RMSDK_LIBDIR = $(PWD)/lib/rmsdk/$(RMSDK_VERSION)
OUTPUT_DIR ?= output/$(RMSDK_VERSION)
TARGET_ACSM = $(OUTPUT_DIR)/acsmdownloader
SRCS_ACSM = src/acsmdownloader.cpp
TARGET_ACTIVATE = $(OUTPUT_DIR)/activate
SRCS_ACTIVATE = src/activate.cpp
TARGETS = $(TARGET_ACSM) $(TARGET_ACTIVATE)
CXXFLAGS += -I./include -I./include/rmsdk/ `pkg-config --cflags Qt5Core Qt5Network` -fPIC -DRMSDK_$(RMSDK_C_VERSION) -Wall
ifeq ($(DEBUG),1)
CXXFLAGS += -ggdb
endif
LDFLAGS=-L. -L$(RMSDK_LIBDIR) -L./lib -lrmsdk -lQt5Core -lQt5Network -lpthread
all: $(RMSDK_LIBDIR) $(OUTPUT_DIR) $(TARGETS)
clean:
rm -rf $(TARGETS)
ultraclean:
rm -rf output lib tmp $(INSTALL_DIR)
prepare: $(RMSDK_LIBDIR)
install: $(TARGETS)
rm -rf $(INSTALL_DIR)
mkdir -p $(INSTALL_DIR)
cp -r $(RMSDK_LIBDIR) $(INSTALL_DIR)/lib
cp $(TARGETS) $(INSTALL_DIR)
cp scripts/acsmdownloader.sh $(INSTALL_DIR)
cp scripts/activate.sh $(INSTALL_DIR)
@echo
@echo "Files installed into $(INSTALL_DIR)"
$(RMSDK_LIBDIR):
CC=$(CC) NO_BUILD_OPENSSL=$(NO_BUILD_OPENSSL) RMSDK_VERSION=$(RMSDK_VERSION) $(PWD)/scripts/setup.sh
$(OUTPUT_DIR):
mkdir -p $@
$(TARGET_ACTIVATE): $(SRCS_ACTIVATE)
$(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -ldl -o $@
$(TARGET_ACSM): $(SRCS_ACSM)
$(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@
help:
@echo ""
@echo "ACSMDownloader Makefile"
@echo ""
@echo "Targets :"
@echo "\tall \t\tDownload external libraries and build all targets (acsmdownloader and activate)"
@echo "\tclean \t\tClean targets"
@echo "\tultraclean \tClean targets, lib and install directory"
@echo "\tprepare \tDownload libraries from Kobo (done by default)"
@echo "\tinstall \tInstall result"
@echo ""
@echo "Main environment variables :"
@echo "\tCROSS : \tthat defines cross compilation prefix (default \"arm-linux-gnueabihf-\")"
@echo "\tDEBUG : 1|0 \tto enable debug symbols (default 0)"
@echo "\tNO_BUILD_OPENSSL : 1|0 \tto disable OpenSSL build and not use the one from Kobo (default 0)"
@echo "\tINSTALL_DIR : \tdirectory to put everythong needed (default ./deploy)"
@echo ""
README.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
ACSMDownloader
--------------
ACSMDownloader is a tool to download _epub_ file from Adobe _acsm_ request file.
It was developped to overcome the lack of Adobe Digital Editions (ADE) software on Linux platforms.
Which is ironic as *ALL* eReaders are based on Linux systems (at least Android/Linux).
ACSMDownloader is the result of a lot of reverse engineering on Kobo _librmsdk.so_ shared library but it's not included with this package as I cannot distribute it without a licence from Adobe (that I don't own).
**Warning** : It acts like a client for _librmsdk.so_ which has been built for ARMv7 platform and can only be run on these kind of platform ! Until someone find an x64 version (GNU/Linux compliant) of this library, ACSMDownloader cannot be run on your computer. A solution is to build a web frontend that run on an ARM server.
Current RMSDK version is 10.0.4
**Caution** : This tool was not designed for piracy and any request for this will be ignored.
Compilation
-----------
Simple _make_ will do the job.
Some environment variables can be defined before running _make_ :
* DEBUG : 1|0 to enable debug symbols
* NO_BUILD_OPENSSL : 1 to don't build OpenSSL library (use the one of Kobo or your own)
* CROSS : cross compiler prefix (default arm-linux-gnueabihf-)
* INSTALL_DIR : default (./deploy)
First step of compilation is to download all libraries in binary form from Kobo update file. It also downloads OpenSSL and compile it because the one from Kobo may crash (compiled with specific target options).
Be careful : Kobo software has been compiled with an old version of Qt Embedded (4.6), but a reference from Qt5 shared libary is made. It implies that some functions may not work (especially QString --> std::string conversion).
Adobe files
-----------
ACSMDownloader requires some generated files present in the eReader. These files are _device.xml_, _activation.xml_ and _devicesalt_ (or _devicekey.bin_), they're generally stored into _.adept_ or _adobe-digital-edition_ directory.
The first one describes eReader characteristics (serial, name, RMSDK version...) while the second contains ADEPT certificates and user information, they're easy to find. _devicesalt_/_devkey.bin_ is a base file for ADEPT cryptography and may be harder to find, it may requires root filesystem access via ADB/SSH.
In addition to _acsmdownloader_ binary, an util called _activate_ is delivered. It'll create the necessary _xml_ files and link them to your AdobeID account if you don't want to use the ones from your eReader. Be careful as there is a limited number of devices authorized per Adobe account (5 or 6 in theory, but more than 20 in facts).
Dependencies
------------
* Qt5
Usage
-----
./acsmdownloader [(-d|--device-file) device.xml] [(-a|--activation-file) activation.xml] [(-s|--device-key-file) devicesalt] [(-O|--output-dir) dir] [(-o|--output-file) output.epub] [(-v|--verbose)] [(-h|--help)] (-f|--acsm-file) file.acsm
-d|--device-filedevice.xml file from eReader
-a|--activation-fileactivation.xml file from eReader
-k|--device-key-fileprivate device key file (eg devicesalt/devkey.bin) from eReader
-O|--output-dirOptional output directory were to put result (default ./)
-o|--output-fileOptional output epub filename (default <title.epub>)
-f|--acsm-fileACSM request file for epub download
-v|--verboseIncrease verbosity, can be set multiple times
-h|--helpThis help
It's recommended to use _acsmdownloader.sh_ script to launch _acsmdownloader_ util
Sources
-------
Sources can be found @ http://indefero.soutade.fr/p/acsmdownloader
Copyright
---------
Grégory Soutadé
Licence
-------
GNU GPLv3
include/log.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*
Copyright 2021 Grégory Soutadé
This is a free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
It is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with it. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _LOG_H_
#define _LOG_H_
extern int verbose;
enum {
ERROR,
INFO,
WARN,
DEBUG,
TRACE
};
#define LOG(lvl, msg) if (lvl <= verbose) {std::cout << msg << std::endl << std::flush;}
#define LOG_FUNC() LOG(TRACE, __FUNCTION__)
#endif
include/rmsdk/adept.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
/*
File automatically generated by SOAdvancedDissector.py
More information at http://indefero.soutade.fr/p/soadvanceddissector
*/
#ifndef _ADEPT_H
#define _ADEPT_H
// #include <dpio.h>
#include <uft.h>
#include <dp.h>
#include <dpdrm.h>
#include <dpsec.h>
#include <mdom.h>
#include <dpdoc.h>
#include <dputils.h>
#include <dpdev.h>
#include <dpcrypt.h>
class MockDevice;
class MetroWisDOM;
namespace adept {
class ActivationData;
class ActivationImpl;
class ActivationList;
class ActivationRecord;
class ActivationServiceInfo;
class Constraints;
class ConsumableCount;
class DRMProcessorImpl;
class DRMProviderImpl;
class FulfillmentItemData;
class FulfillmentItemImpl;
class FulfillmentItemList;
class GPFile;
class GPFileLock;
class IdentityWrapper;
class InfoSetSHA1Hasher;
//class IoCallbackWrapper<adept::DRMProcessorImpl>;
class License;
class LicenseData;
class LicenseImpl;
class LicenseList;
class LicenseRequestInfo;
class LicenseServiceInfo;
class LoanToken;
class PermissionImpl;
class PermissionList;
class Permissions;
class RightsImpl;
class SyntheticRightsImpl;
class UnverifiedRightsImpl;
//class UrlLoader<adept::DRMProcessorImpl>;
class User;
class ActivationData
{
public:
ActivationData();
ActivationData(adept::ActivationData const&);
~ActivationData();
void getWeakReferencePtr();
void* operator new(unsigned int, uft::Value&);
void query(uft::Value const&, void*);
void staticInit();
void toString() const;
void* s_descriptor;
};
class ActivationImpl: public dpdrm::Activation
{
public:
ActivationImpl(uft::sref<adept::ActivationData> const&);
virtual ~ActivationImpl();
virtual void addRef();
virtual void release();
virtual uft::String getUserID();
virtual uft::String getDeviceID();
virtual void getExpiration();
virtual void getAuthority();
virtual void getUsername();
virtual bool hasCredentials();
};
class ActivationList: public dp::List<dpdrm::Activation>
{
public:
ActivationList(uft::Vector const&);
virtual ~ActivationList();
virtual void addRef();
virtual void release();
virtual int length();
virtual dp::ref<dpdrm::Activation> operator[](unsigned int);
};
class ActivationRecord
{
public:
ActivationRecord();
ActivationRecord(adept::ActivationRecord const&);
~ActivationRecord();
void getWeakReferencePtr();
void* operator new(unsigned int, uft::Value&);
void query(uft::Value const&, void*);
void staticInit();
void toString() const;
void* s_descriptor;
};
class ActivationServiceInfo
{
public:
ActivationServiceInfo();
ActivationServiceInfo(adept::ActivationServiceInfo const&);
~ActivationServiceInfo();
void getWeakReferencePtr();
void* operator new(unsigned int, uft::Value&);
void query(uft::Value const&, void*);
void staticInit();
void toString() const;
void* s_descriptor;
};
class Constraints
{
public:
Constraints();
Constraints(adept::Constraints const&);
~Constraints();
void getWeakReferencePtr();
void* operator new(unsigned int, uft::Value&);
void query(uft::Value const&, void*);
void staticInit();
void toString() const;
void* s_descriptor;
};
class ConsumableCount
{
public:
ConsumableCount();
~ConsumableCount();
void getWeakReferencePtr();
void* operator new(unsigned int, uft::Value&);
void query(uft::Value const&, void*);
void staticInit();
void toString() const;
void* s_descriptor;
};
class DRMProcessorImpl: public dpdrm::DRMProcessor, public dpdoc::DocumentClient, public uft::ErrorHandler
{
public:
DRMProcessorImpl(dpdrm::DRMProcessorClient*, dpdev::Device*);
class DRMStep {};
virtual ~DRMProcessorImpl();
virtual void* getOptionalInterface(char const*);
virtual void release();
virtual dp::list<adept::ActivationImpl> getActivations();
virtual void setUser(dp::String const&);
virtual void setPartition(dpio::Partition*);
virtual void reset();
virtual void initWorkflows(unsigned int, dp::Data const&);
virtual void initSignInWorkflow(unsigned int, dp::String const&, dp::String const&, dp::String const&);
virtual void initSignInWorkflow(unsigned int, dp::String const&, dp::String const&, dp::Data const&);
virtual void initLoanReturnWorkflow(dp::String const&);
virtual void initUpdateLoansWorkflow(dp::String const&, dp::String const&);
virtual void initJoinAccountsWorkflow(dp::String const&, dp::String const&, dp::String const&);
virtual int startWorkflows(unsigned int);
virtual void providePasshash(dp::Data const&);
virtual void provideInput(dp::Data const&);
virtual void provideConfirmation(dp::String const&, int);
virtual void transferLoanTokensFrom(dpdev::Device*);
virtual void transferCredentialsFrom(dpdev::Device*, dp::String const&, bool);
virtual dp::list<dpdrm::FulfillmentItem> getFulfillmentItems();
virtual void getFulfillmentID();
virtual void isReturnable();
virtual void addPasshash(dp::String const&, dp::Data const&);
virtual void removePasshash(dp::String const&, dp::Data const&);
virtual void calculatePasshash(dp::String const&, dp::String const&);
virtual void getInterfaceVersion();
virtual void getResourceStream(dp::String const&, unsigned int);
virtual void canContinueProcessing(int);
virtual void reportLoadingState(int);
virtual void reportDocumentError(dp::String const&);
virtual void reportErrorListChange();
virtual void requestLicense(dp::String const&, dp::String const&, dp::Data const&);
virtual void requestDocumentPassword();
virtual void documentSerialized();
virtual void reportStateError(uft::String const&);
virtual void reportProcessError(uft::String const&);
virtual void setURLString(uft::String const&);
virtual uft::String getURLString();
virtual void changeURL(uft::String const&);
void activate();
void activateErr(uft::String const&);
void activateResp(uft::String const&, uft::Buffer const&);
void activationIsLess(uft::sref<adept::ActivationData> const&, uft::sref<adept::ActivationData> const&);
void addDeviceSections(mdom::Node const&);
void addSignIn();
void addSignInErr(uft::String const&);
void addSignInResp(uft::String const&, uft::Buffer const&);
void addSlashIfNeeded(uft::String const&);
void authSignIn();
void authSignInErr(uft::String const&);
void authSignInResp(uft::String const&, uft::Buffer const&);
void checkCurrentUserIsAuthorized();
void createCertificate(dp::Data const&);
void documentWithLicenseError(dp::String const&);
void documentWithLicenseProgress(double);
void documentWrittenWithLicense(dp::Unknown*, bool);
void encryptWithDeviceKey(dp::Data const&);
void endDownload();
void finishFulfillmentResultProcessing();
void finishWorkflow(int, bool, dp::Data const&);
void fulfill();
void fulfillErr(uft::String const&);
void fulfillPasshash();
void fulfillResp(uft::String const&, uft::Buffer const&);
void getCredentialList();
void getCredentialListErr(uft::String const&);
void getCredentialListResp(uft::String const&, uft::Buffer const&);
void getDefaultActivationForUser(uft::Vector const&, uft::String const&);
void getIdentityByUser(uft::sref<adept::User> const&);
void getNotifications(mdom::Node const&);
void getReportedErrorString();
void guessMimeType();
void guessMimeTypeErr(uft::String const&);
void guessMimeTypeResp(uft::String const&, uft::Buffer const&);
void initAct();
void initActErr(uft::String const&);
void initActResp(uft::String const&, uft::Buffer const&);
void initAuth();
void initAuthErr(uft::String const&);
void initAuthResp(uft::String const&, uft::Buffer const&);
void initLicense();
void initLicenseErr(uft::String const&);
void initLicenseResp(uft::String const&, uft::Buffer const&);
void initSignInWorkflowCommon(unsigned int);
void joinAccounts();
void joinAccountsErr(uft::String const&);
void joinAccountsResp(uft::String const&, uft::Buffer const&);
void licenseServiceInfo(uft::String const&);
void licenseServiceInfoErr(uft::String const&);
void licenseServiceInfoResp(uft::String const&, uft::Buffer const&);
void makeSignInKey();
void makeUserFromCredentials(mdom::Node const&, bool);
void nextDownload();
void nextFulfillmentItemNode();
void nextNotification();
void nextStep(adept::DRMProcessorImpl::DRMStep);
void nextWorkflow();
void notificationErr(uft::String const&);
void notificationResp(uft::String const&, uft::Buffer const&);
void operatorAuth();
void operatorAuthErr(uft::String const&);
void operatorAuthResp(uft::String const&, uft::Buffer const&);
void processFulfillmentItemNode(mdom::Node const&);
void processFulfillmentResult(mdom::Node const&, uft::String const&);
void reportWorkflowError(unsigned int, dp::String const&);
void resetWorkflowData();
void returnLoan();
void returnLoanErr(uft::String const&);
void returnLoanResp(uft::String const&, uft::Buffer const&);
void startActivationWorkflow();
void startAddSignInWorkflow();
void startAuthSignInWorkflow();
void startDownloadWorkflow();
void startFulfillmentWorkflow();
void startGetCredentialListWorkflow();
void startJoinAccountsWorkflow();
void startLoanReturnWorkflow();
void startNotificationWorkflow();
void startUpdateLoansWorkflow();
void tempFileError(dp::String const&);
void tempFileProgress(double);
void tempFileWritten(dp::Unknown*, bool);
void uniqueFileCreated(dp::Unknown*, bool);
void uniqueFileError(dp::String const&);
void updateActivationServiceInfo(dpdev::Device*, uft::sref<adept::ActivationServiceInfo> const&);
void updateLoans();
void updateLoansErr(uft::String const&);
void updateLoansResp(uft::String const&, uft::Buffer const&);
void* ACTIVATION_SERVICE_URL;
void* ADEPT_MIME_TYPE;
void* REQ_ACTIVATE;
void* REQ_ACTIVATION_SERVICE_INFO;
void* REQ_ADD_SIGN_IN_DIRECT;
void* REQ_AUTH;
void* REQ_AUTHENTICATION_SERVICE_INFO;
void* REQ_FULFILL;
void* REQ_GET_CREDENTIAL_LIST;
void* REQ_GET_LICENSE;
void* REQ_INIT_LICENSE_SERVICE;
void* REQ_JOIN_ACCOUNTS;
void* REQ_LICENSE_SERVICE_INFO;
void* REQ_LOAN_RETURN;
void* REQ_SIGN_IN_DIRECT;
};
class DRMProviderImpl: public dpdrm::DRMProvider
{
public:
DRMProviderImpl();
virtual ~DRMProviderImpl();
//virtual DRMProcessorImpl* createDRMProcessor(dpdrm::DRMProcessorClient*, MockDevice*);
virtual DRMProcessorImpl* createDRMProcessor(dpdrm::DRMProcessorClient*, dpdev::Device*);
virtual void parseLicense(dp::Data const&);
};
class FulfillmentItemData
{
public:
FulfillmentItemData();
FulfillmentItemData(adept::FulfillmentItemData const&);
~FulfillmentItemData();
void getWeakReferencePtr();
void* operator new(unsigned int, uft::Value&);
void query(uft::Value const&, void*);
void staticInit();
uft::String toString() const;
void* s_descriptor;
};
class FulfillmentItemImpl: public dpdrm::FulfillmentItem
{
public:
FulfillmentItemImpl(uft::sref<adept::FulfillmentItemData> const&);
virtual ~FulfillmentItemImpl();
virtual void addRef();
virtual void release();
virtual dp::String getRights();
virtual dp::String getMetadata(dp::String const&);
virtual dp::String getDownloadMethod();
virtual dp::String getDownloadURL();
virtual dp::Data getPostData();
};
class FulfillmentItemList: public dp::List<dpdrm::FulfillmentItem>
{
public:
FulfillmentItemList(uft::Vector const&);
virtual ~FulfillmentItemList();
virtual void addRef();
virtual void release();
virtual int length();
virtual dp::ref<dpdrm::FulfillmentItem> operator[](unsigned int);
};
class GPFile
{
public:
GPFile(uft::Buffer const&);
~GPFile();
void assertLocked() const;
void getCheckCode(bool);
void getExtraFileInfo() const;
void getPtr();
void getRecordOffset(uft::Buffer const&, bool);
void getWeakReferencePtr();
void lock();
void* operator new(unsigned int, uft::Value&);
void query(uft::Value const&, void*);
void resize(unsigned int, bool);
void staticInit();
void supportCheckCode();
void toString() const;
void unlock();
void* s_descriptor;
};
class GPFileLock
{
public:
GPFileLock(adept::GPFile*);
~GPFileLock();
};
class IdentityWrapper
{
public:
IdentityWrapper();
IdentityWrapper(adept::IdentityWrapper const&);
~IdentityWrapper();
void getWeakReferencePtr();
void* operator new(unsigned int, uft::Value&);
void query(uft::Value const&, void*);
void staticInit();
void toString() const;
void* s_descriptor;
};
class InfoSetSHA1Hasher: public mdom::InfoSetHasher
{
public:
InfoSetSHA1Hasher();
~InfoSetSHA1Hasher();
virtual void update(unsigned char const*, unsigned int);
void getHash();
};
template<typename T>
class IoCallbackWrapper: public dp::Callback
{
public:
virtual ~IoCallbackWrapper();
virtual void reportProgress(double);
virtual void reportError(dp::String const&);
virtual void invoke(dp::Unknown*);
IoCallbackWrapper(T*, void (T::*)(dp::Unknown*, bool), void (T::*)(double), void (T::*)(dp::String const&));
};
class License
{
public:
License(adept::License const&);
License(uft::String const&, uft::String const&, uft::String const&, uft::String const&, uft::String const&, uft::String const&, uft::String const&, uft::String const&, uft::Buffer const&, uft::sref<adept::Permissions> const&, uft::String const&);
License(uft::sref<adept::Permissions> const&, uft::String const&);
~License();
void getWeakReferencePtr();
void* operator new(unsigned int, uft::Value&);
void query(uft::Value const&, void*);
void staticInit();
void toString() const;
void* s_descriptor;
};
class LicenseData
{
public:
LicenseData();
LicenseData(adept::LicenseData const&);
~LicenseData();
void getWeakReferencePtr();
void* operator new(unsigned int, uft::Value&);
void query(uft::Value const&, void*);
void staticInit();
void toString() const;
void* s_descriptor;
};
class LicenseImpl: public dpdrm::License
{
public:
LicenseImpl(uft::sref<adept::License> const&);
virtual ~LicenseImpl();
virtual void addRef();
virtual void release();
virtual void getUserID();
virtual void getResourceID();
virtual void getVoucherID();
virtual void getLicenseURL();
virtual void getOperatorURL();
virtual void getFulfillmentID();
virtual void getDistributorID();
virtual void getLicensee();
virtual void getPermissions(dp::String const&);
virtual void getCurrentCount(dp::String const&);
virtual void consume(dp::String const&, int);
virtual void getFlavor();
void adjustCounts(uft::sref<adept::License> const&, int, int);
void initializeLicenseCounts(uft::sref<adept::License> const&);
};
// class LicenseList: public dp::List<dpdrm::License>
// {
// public:
// LicenseList(uft::Vector const&);
// virtual ~LicenseList();
// virtual void addRef();
// virtual void release();
// virtual int length();
// virtual uft::sref<dpdrm::License> operator[](unsigned int);
// };
class LicenseRequestInfo
{
public:
LicenseRequestInfo(adept::LicenseRequestInfo const&);
LicenseRequestInfo(uft::String const&, uft::String const&, uft::Buffer const&);
~LicenseRequestInfo();
void getWeakReferencePtr();
void* operator new(unsigned int, uft::Value&);
void query(uft::Value const&, void*);
void staticInit();
void toString() const;
void* s_descriptor;
};
class LicenseServiceInfo
{
public:
LicenseServiceInfo();
LicenseServiceInfo(adept::LicenseServiceInfo const&);
~LicenseServiceInfo();
void getWeakReferencePtr();
void* operator new(unsigned int, uft::Value&);
void query(uft::Value const&, void*);
void staticInit();
void toString() const;
void* s_descriptor;
};
class LoanToken
{
public:
LoanToken();
LoanToken(adept::LoanToken const&);
~LoanToken();
void getWeakReferencePtr();
void* operator new(unsigned int, uft::Value&);
void query(uft::Value const&, void*);
void staticInit();
void toString() const;
void* s_descriptor;
};
class PermissionImpl: public dpdrm::Permission
{
public:
PermissionImpl(uft::String const&, uft::sref<adept::Constraints> const&);
virtual ~PermissionImpl();
virtual void addRef();
virtual void release();
virtual void getPermissionType();
virtual void getExpiration();
virtual void getLoanID();
virtual void getDeviceID();
virtual void getDeviceType();
virtual void getMaxResoultion();
virtual void getParts();
virtual void isConsumable();
virtual void getInitialCount();
virtual void getMaxCount();
virtual void getIncrementInterval();
};
// class PermissionList: public dp::List<dpdrm::Permission>
// {
// public:
// PermissionList(uft::String const&, uft::Vector const&);
// virtual ~PermissionList();
// virtual void addRef();
// virtual void release();
// virtual int length();
// virtual uft::sref<dpdrm::Permission> operator[](unsigned int);
// };
class Permissions
{
public:
Permissions();
Permissions(adept::Permissions const&);
~Permissions();
void getWeakReferencePtr();
void* operator new(unsigned int, uft::Value&);
void query(uft::Value const&, void*);
void staticInit();
void toString() const;
void* s_descriptor;
};
class RightsImpl: public dpdrm::Rights
{
public:
RightsImpl(dp::Data const&, uft::Vector const&);
RightsImpl(mdom::Node const&, uft::Vector const&);
virtual ~RightsImpl();
virtual void addRef();
virtual void release();
virtual void getLicenses();
virtual void getValidLicenses(dpdev::Device*);
virtual void serialize();
void getLicensesInternal(dpdev::Device*, bool);
};
class SyntheticRightsImpl: public dpdrm::Rights
{
public:
SyntheticRightsImpl(uft::sref<adept::License> const&);
virtual ~SyntheticRightsImpl();
virtual void addRef();
virtual void release();
virtual void getLicenses();
virtual void getValidLicenses(dpdev::Device*);
virtual void serialize();
};
class UnverifiedRightsImpl: public adept::RightsImpl
{
public:
UnverifiedRightsImpl(dp::Data const&, uft::Vector const&);
UnverifiedRightsImpl(mdom::Node const&, uft::Vector const&);
virtual ~UnverifiedRightsImpl();
virtual void addRef();
virtual void release();
virtual void getLicenses();
virtual void getValidLicenses(dpdev::Device*);
virtual void serialize();
};
template<typename T>
class UrlLoader: public dpio::StreamClient, public dputils::GuardedObject
{
public:
virtual ~UrlLoader();
virtual void propertyReady(dp::String const&, dp::String const&);
virtual void totalLengthReady(unsigned int);
virtual void propertiesReady();
virtual void bytesReady(unsigned int, dp::Data const&, bool);
virtual void reportError(dp::String const&);
virtual void deleteThis();
UrlLoader(T*, void (T::*)(uft::String const&, uft::Buffer const&), void (T::*)(uft::String const&));
void internalReportError(dp::String const&);
void startReadingStream(dp::String const&, dp::String const&, unsigned int, dpio::Stream*, unsigned int);
void startReadingStream(dpio::Stream*, unsigned int);
};
class User
{
public:
User();
User(adept::User const&);
~User();
void getWeakReferencePtr();
void* operator new(unsigned int, uft::Value&);
void query(uft::Value const&, void*);
void staticInit();
dp::String toString() const;
void* s_descriptor;
};
void addExpiration(mdom::Node&);
void addNode(mdom::Node&, uft::QName const&, uft::Buffer const&);
void addNode(mdom::Node&, uft::QName const&, uft::String const&);
void addNode(mdom::Node&, uft::String const&, uft::Buffer const&);
void addNode(mdom::Node&, uft::String const&, uft::String const&);
void addNonce(mdom::Node&);
void addSignature(mdom::Node&, dp::ref<dpcrypt::Identity>);
void checkPartPermission(uft::String const&, uft::Value const&, int);
void checkSignatureWithCert(uft::Buffer const&, uft::String const&, uft::Buffer const&, uft::Buffer const&, dpcrypt::Role);
void checkSignatureWithCertList(uft::Vector const&, uft::String const&, uft::Buffer const&, uft::Buffer const&, dpcrypt::Role);
void countPendingLicenseRequests(uft::Vector const&);
void createActivationDOM(dpdev::Device*);
void createDom(uft::String const&);
void createLicenseDOM(uft::ErrorHandler*);
void deriveKeyForPart(uft::Buffer const&, int);
void derivePDFPartsKey(uft::Buffer const&, int*, unsigned int);
void deviceVerify(unsigned char const*, unsigned char const*, unsigned char const*);
void extractActivationData(mdom::Node const&);
void extractActivationRecord(dpdev::Device*, bool, uft::ErrorHandler*);
void extractActivationServiceInfo(mdom::Node const&);
void extractConstraints(mdom::Node const&);
void extractLicenseData(mdom::Node const&);
void extractLicenseServiceInfo(mdom::Node const&);
void extractLoanToken(mdom::Node const&);
void extractUser(mdom::Node const&);
void fillActivationServiceNode(mdom::Node&, uft::sref<adept::ActivationServiceInfo> const&);
void fillUserNode(mdom::Node&, uft::sref<adept::User> const&);
void findACS4ResourceIdFromVoucherId(mdom::Node const&, uft::String const&);
void findAcsmNode(mdom::DOM*, unsigned int);
void findAnonymousUser(uft::Dict const&);
void findLicenseRequest(uft::Vector const&, uft::String const&, uft::String const&, bool);
void findNode(mdom::Node const&, unsigned int, unsigned int, uft::String, unsigned int, uft::Buffer);
void findNode(mdom::Node const&, unsigned int, unsigned int, unsigned int*, uft::String*, unsigned int, unsigned int*, uft::Buffer*);
uft::sref<adept::User> findUserByName(uft::Dict const&, uft::String const&);
void getActivationService(dpdev::Device*, uft::String const&);
void getBase64EncodedContent(mdom::Node);
uft::String getChildValue(mdom::Node const& node, unsigned int nodeType);
void getLicense(mdom::Node const&, uft::String const&, uft::Vector const&, dpdev::Device*, uft::ErrorHandler*);
void getLicenses(mdom::Node const&, uft::String const&, uft::Vector const&, dpdev::Device*, bool, uft::ErrorHandler*);
uft::Dict getValidUsers(dpdev::Device*, uft::ErrorHandler*);
void hashNode(mdom::Node);
void isDeviceAvailable(dpdev::Device*);
void managePasshash(dpdev::Device*, dp::String const&, dp::Data const&, bool);
void mergeIn(mdom::Node const&, char const*, uft::ErrorHandler*);
void mergeInLoanTokenNode(mdom::DOM*, uft::sref<adept::LoanToken> const&, mdom::Node const&);
void nodeToString(mdom::Node const&);
MetroWisDOM* parseXML(char const*);
MetroWisDOM* parseXML(dp::Data const&);
void removeChildren(mdom::Node const&, unsigned int, unsigned int, uft::String, unsigned int, uft::Buffer);
void removeChildren(mdom::Node const&, unsigned int, unsigned int, unsigned int*, uft::String*, unsigned int, unsigned int*, uft::Buffer*);
void renderFPH(uft::Buffer const&);
void requestLicenses(uft::Vector const&, dpdoc::DocumentClient*);
void scrambleActivation(mdom::Node const&, bool, dpdev::Device*);
void scramblePrivateLicenseKey(uft::Buffer const&, bool, dpdev::Device*, bool*);
void* ACS3CompatCertificate;
void* ACS3CompatCertificateSize;
void* ACS3CompatPrivateKey;
void* ACS3CompatPrivateKeySize;
}
#endif // _ADEPT_H
include/rmsdk/aescrypt.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/*
File automatically generated by SOAdvancedDissector.py
More information at http://indefero.soutade.fr/p/soadvanceddissector
*/
#ifndef _AESCRYPT_H
#define _AESCRYPT_H
namespace aescrypt {
class AESCryptFactory;
class AESCryptor;
class iAESCryptImpl;
class AESCryptFactory
{
public:
void CreateAESCryptor(unsigned char const*, unsigned int, unsigned char const*, unsigned int, bool);
void DestroyAESCryptor(aescrypt::AESCryptor*);
};
class AESCryptor
{
public:
virtual void GetRequiredLengthForEncryption(unsigned int) = 0;
virtual void Decrypt(unsigned char const*, unsigned int, unsigned char*, unsigned int, aescrypt::DecryptMode) = 0;
virtual void Finish(unsigned char*, unsigned int) = 0;
virtual void Encrypt(unsigned char const*, unsigned int, unsigned char*, unsigned int) = 0;
};
class iAESCryptImpl: public aescrypt::AESCryptor
{
public:
virtual void GetRequiredLengthForEncryption(unsigned int);
virtual void Decrypt(unsigned char const*, unsigned int, unsigned char*, unsigned int, aescrypt::DecryptMode);
virtual void Finish(unsigned char*, unsigned int);
virtual void Encrypt(unsigned char const*, unsigned int, unsigned char*, unsigned int);
void* iAESCryptImpl;
};
}
#endif // _AESCRYPT_H
include/rmsdk/cossl.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
/*
File automatically generated by SOAdvancedDissector.py
More information at http://indefero.soutade.fr/p/soadvanceddissector
*/
#ifndef _COSSL_H
#define _COSSL_H
#include <dpcrypt.h>
#include <dp.h>
namespace cossl {
class AESStreamCryptorImpl;
class AES128StreamCryptorImpl;
class AES256StreamCryptorImpl;
class CertificateImpl;
class CryptProviderImpl;
class CryptorImpl;
class IdentityImpl;
class RSAKeyImpl;
class SHA1HashImpl;
class SymKeyImpl;
class AESStreamCryptorImpl: public dpcrypt::StreamCryptor
{
public:
virtual ~AESStreamCryptorImpl();
virtual void addRef();
virtual void release();
virtual void initDecrypt(dp::ref<dpcrypt::Key> const&, dp::Data const&);
virtual void decrypt(unsigned char const*, unsigned int, unsigned int*, unsigned char*, unsigned int);
virtual void finalize(unsigned char*, unsigned int);
virtual void setKeyLength() = 0;
};
class AES128StreamCryptorImpl: public cossl::AESStreamCryptorImpl
{
public:
AES128StreamCryptorImpl();
virtual ~AES128StreamCryptorImpl();
virtual void addRef();
virtual void release();
virtual void initDecrypt(dp::ref<dpcrypt::Key> const&, dp::Data const&);
virtual void decrypt(unsigned char const*, unsigned int, unsigned int*, unsigned char*, unsigned int);
virtual void finalize(unsigned char*, unsigned int);
virtual void setKeyLength();
};
class AES256StreamCryptorImpl: public cossl::AESStreamCryptorImpl
{
public:
AES256StreamCryptorImpl();
virtual ~AES256StreamCryptorImpl();
virtual void addRef();
virtual void release();
virtual void initDecrypt(dp::ref<dpcrypt::Key> const&, dp::Data const&);
virtual void decrypt(unsigned char const*, unsigned int, unsigned int*, unsigned char*, unsigned int);
virtual void finalize(unsigned char*, unsigned int);
virtual void setKeyLength();
};
class CertificateImpl: public dpcrypt::Certificate
{
public:
CertificateImpl(dp::Data const&);
CertificateImpl(x509_st*);
virtual ~CertificateImpl();
virtual void addRef();
virtual void release();
virtual void getCommonName();
virtual void getPublicKey();
virtual void serialize();
virtual void isValidForRole(int);
};
class CryptProviderImpl: public dpcrypt::CryptProvider
{
public:
CryptProviderImpl();
virtual ~CryptProviderImpl();
virtual void getRandomBytes(unsigned int);
virtual void createHash(int);
virtual void createKey(int, int, dp::Data const&);
virtual void generateKey(int);
virtual void generateKeyPair(int, dpcrypt::KeyPair*);
virtual void createCryptor(int);
virtual void createStreamCryptor(int);
virtual void createCertificate(dp::Data const&);
virtual void createIdentity(dp::Data const&, dp::String const&);
virtual void changePKCS12Password(dp::Data const&, dp::String const&, dp::String const&);
void getInstance();
};
class CryptorImpl: public dpcrypt::Cryptor
{
public:
CryptorImpl();
virtual ~CryptorImpl();
virtual void addRef();
virtual void release();
virtual void encrypt(dp::ref<dpcrypt::Key> const&, dp::Data const&);
virtual void encrypt(dp::ref<dpcrypt::Key> const&, dp::Data const&, dp::Data const&, bool);
virtual void decrypt(dp::ref<dpcrypt::Key> const&, dp::Data const&);
virtual void decrypt(dp::ref<dpcrypt::Key> const&, dp::Data const&, dp::Data const&);
};
class IdentityImpl: public dpcrypt::Identity
{
public:
IdentityImpl(dp::Data const&, dp::String const&);
virtual ~IdentityImpl();
virtual void addRef();
virtual void release();
virtual void getEECert();
virtual void getPrivateKey();
void changePKCS12Password(dp::Data const&, dp::String const&, dp::String const&);
};
class RSAKeyImpl: public dpcrypt::Key
{
public:
RSAKeyImpl(int, dp::Data const&);
RSAKeyImpl(int, rsa_st*);
virtual ~RSAKeyImpl();
virtual void addRef();
virtual void release();
virtual void getKeyBitSize();
virtual void getKeyType();
virtual void serialize();
};
class SHA1HashImpl: public dpcrypt::Hash
{
public:
SHA1HashImpl();
virtual ~SHA1HashImpl();
virtual void addRef();
virtual void release();
virtual void update(dp::Data const&);
virtual void finalize();
};
class SymKeyImpl: public dpcrypt::Key
{
public:
SymKeyImpl(dp::Data const&);
virtual ~SymKeyImpl();
virtual void addRef();
virtual void release();
virtual void getKeyBitSize();
virtual void getKeyType();
virtual void serialize();
};
}
#endif // _COSSL_H
include/rmsdk/dp.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
/*
File automatically generated by SOAdvancedDissector.py
More information at http://indefero.soutade.fr/p/soadvanceddissector
*/
#ifndef _DP_H
#define _DP_H
#include <uft.h>
namespace dptimer {
class Timer;
}
namespace dp {
class BindingManager;
class BindingManagerImpl;
class UFTDataManager;
class BufferDataManager;
class Unknown;
class Callback;
class DPBufferManager;
class Data;
class DataManager;
class DataRec;
class StringList;
class ErrorList;
class RefCounted;
class RawPointerVector;
class Releasable;
class String;
class StringDataManager;
class StringListImpl;
class TransientData;
class TransientDataManager;
class UTF16String;
class UTF16StringDataManager;
class VersionInfo;
class Unknown
{
public:
Unknown();
virtual ~Unknown();
virtual void* getInterfaceID();
virtual void* getOptionalInterface(char const*);
};
class BindingManager
{
public:
virtual ~BindingManager();
virtual void invalidateScriptWrapperFor(dp::Unknown*) = 0;
virtual void addRefNativeWrapper(dp::Unknown*) = 0;
virtual void releaseNativeWrapper(dp::Unknown*) = 0;
virtual void isPrivileged() = 0;
void getBindingManager();
void setBindingManager(dp::BindingManager*);
};
class BindingManagerImpl: public dp::BindingManager
{
public:
virtual ~BindingManagerImpl();
virtual void invalidateScriptWrapperFor(dp::Unknown*);
virtual void addRefNativeWrapper(dp::Unknown*);
virtual void releaseNativeWrapper(dp::Unknown*);
virtual void isPrivileged();
};
class DataManager
{
public:
virtual ~DataManager();
virtual void getTypeId() = 0;
virtual void dataPtr(void*, unsigned int*) = 0;
virtual void clone(dp::DataRec const*, dp::DataRec*) = 0;
virtual void release(void*) = 0;
};
class UFTDataManager: public dp::DataManager
{
public:
virtual ~UFTDataManager();
virtual void getTypeId() = 0;
virtual void dataPtr(void*, unsigned int*) = 0;
virtual void clone(dp::DataRec const*, dp::DataRec*);
virtual void release(void*);
};
class BufferDataManager: public dp::UFTDataManager
{
public:
virtual ~BufferDataManager();
virtual void getTypeId();
virtual void dataPtr(void*, unsigned int*);
virtual void clone(dp::DataRec const*, dp::DataRec*);
virtual void release(void*);
void typeId();
};
class RefCounted: public dp::Unknown
{
public:
RefCounted();
virtual ~RefCounted();
virtual void* getInterfaceID();
virtual void* getOptionalInterface(char const*);
virtual void addRef() = 0;
virtual void release() = 0;
};
class Callback: public dp::Unknown
{
public:
Callback();
virtual ~Callback();
virtual void* getInterfaceID();
virtual void* getOptionalInterface(char const*);
virtual void reportProgress(double);
virtual void reportError(dp::String const&) = 0;
virtual void invoke(dp::Unknown*) = 0;
};
class DPBufferManager: public uft::BufferManager
{
public:
DPBufferManager(dp::Data const&);
virtual ~DPBufferManager();
virtual void alloc(uft::BufferRec*, unsigned int, unsigned int);
virtual void realloc(uft::BufferRec*, unsigned int);
virtual void clone(uft::BufferRec const*, uft::BufferRec*, unsigned int);
virtual void pin(uft::BufferRec*);
virtual void unpin(uft::BufferRec*);
virtual void free(uft::BufferRec*);
virtual void toString(uft::BufferRec const*);
};
class Data
{
public:
Data() {data0=0; data1=0;}
Data(dp::Data const&);
Data(uft::Buffer const&);
Data(unsigned char const*, unsigned int);
~Data();
unsigned char* data(unsigned int *size=0) const;
bool isNull() const;
unsigned int length() const;
operator uft::Buffer() const;
Data& operator=(dp::Data const&);
protected:
void* data0;
void* data1;
};
class DataRec
{
public:
DataRec();
};
class StringList: public dp::RefCounted
{
public:
virtual ~StringList();
virtual void* getInterfaceID();
virtual void* getOptionalInterface(char const*);
virtual void addRef() = 0;
virtual void release() = 0;
virtual void length() = 0;
virtual void item(unsigned int) = 0;
void makeStringListFromVector(uft::Vector const&);
};
class ErrorList: public dp::StringList
{
public:
virtual ~ErrorList();
virtual void* getInterfaceID();
virtual void* getOptionalInterface(char const*);
virtual void addRef() = 0;
virtual void release() = 0;
virtual void length() = 0;
virtual void item(unsigned int) = 0;
virtual void hasFatalErrors() = 0;
virtual void hasErrors() = 0;
virtual void hasWarnings() = 0;
virtual void clear() = 0;
};
class RawPointerVector
{
public:
~RawPointerVector();
void insert(unsigned int, void*);
void remove(unsigned int);
void remove(void*);
};
class Releasable: public dp::Unknown
{
public:
Releasable();
virtual ~Releasable();
virtual void* getInterfaceID();
//virtual void* getOptionalInterface(char const*);
virtual void release() = 0;
};
class String: public Data
{
public:
String();
String(char const*);
String(char const*, unsigned int);
String(uft::String const&);
String(unsigned short const*);
String(unsigned short const*, unsigned int);
String(const String& o) : Data(o) {}
~String();
void base64Decode(dp::String const&);
void base64Encode(dp::Data const&);
operator uft::String() const;
String& operator=(dp::String const&);
void stringToTime(dp::String const&);
void timeToString(unsigned long long);
uft::String uft() const;
void urlDecode(dp::String const&);
void urlEncode(dp::String const&);
char* utf8() const;
};
class StringDataManager: public dp::UFTDataManager
{
public:
virtual ~StringDataManager();
virtual void getTypeId();
virtual void dataPtr(void*, unsigned int*);
virtual void clone(dp::DataRec const*, dp::DataRec*);
virtual void release(void*);
void typeId();
};
class StringListImpl: public dp::StringList
{
public:
StringListImpl(uft::Vector const&);
virtual ~StringListImpl();
virtual void* getInterfaceID();
virtual void* getOptionalInterface(char const*);
virtual void addRef();
virtual void release();
virtual void length();
virtual void item(unsigned int);
};
class TransientData
{
public:
TransientData(unsigned char const*, unsigned int);
~TransientData();
};
class TransientDataManager: public dp::DataManager
{
public:
TransientDataManager();
virtual ~TransientDataManager();
virtual void getTypeId();
virtual void dataPtr(void*, unsigned int*);
virtual void clone(dp::DataRec const*, dp::DataRec*);
virtual void release(void*);
void typeId();
};
class UTF16String
{
public:
UTF16String(char const*);
UTF16String(dp::String const&);
UTF16String(uft::UTF16String const&);
UTF16String(unsigned short const*);
};
class UTF16StringDataManager: public dp::UFTDataManager
{
public:
virtual ~UTF16StringDataManager();
virtual void getTypeId();
virtual void dataPtr(void*, unsigned int*);
virtual void clone(dp::DataRec const*, dp::DataRec*);
virtual void release(void*);
void typeId();
};
class VersionInfo
{
public:
VersionInfo(char const*, char const*);
};
template<typename T>
class ref{
public:
operator bool() const;
T* operator->() const {return m;}
ref(T* m):m(m){}
ref(const ref<T>&);
void release();
T* m;
};
template<typename T>
class List: public dp::RefCounted
{
public:
virtual ~List();
virtual void* getInterfaceID();
virtual void* getOptionalInterface(char const*);
virtual void addRef() = 0;
virtual void release() = 0;
virtual int length() = 0;
virtual dp::ref<T> operator[](unsigned int) = 0;
List();
};
template<typename T>
class list {
public:
list(dp::List<T>* p) :m(p){}
int length() {return m->length();}
dp::ref<T> operator[](unsigned int idx) {return (*m)[idx];}
list<T> operator=(const list<T>& other);
list(const list<T>& other);
private:
dp::List<T>* m;
};
void broadcast(dp::String const&, dp::Data const&);
void coreInit();
void cryptRegisterOpenSSL();
int decodeBase64(char const* in, unsigned char* out, unsigned int outSize);
void decodeURLEncoding(char const*, unsigned char*, unsigned int);
void deviceMountRemovablePartitions();
void deviceRegisterExternal();
void deviceRegisterPrimary();
void documentRegisterEPUB();
void documentRegisterImages();
void documentRegisterOPS();
void documentRegisterPDF();
void encodeBase64(unsigned char const*, unsigned int, char*, unsigned int);
void getBroadcastFD();
dp::String getVersionInfo(dp::String const&);
int platformInit(unsigned int);
void processBroadcasts();
void registerForBroadcast(void (*)(dp::String const&, dp::Data const&));
void setVersionInfo(dp::String const&, dp::String const&);
void timerGetMasterClient();
void timerRegisterMasterTimer(dptimer::Timer*);
}
#endif // _DP_H
include/rmsdk/dpcrypt.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/*
File automatically generated by SOAdvancedDissector.py
More information at http://indefero.soutade.fr/p/soadvanceddissector
*/
#ifndef _DPCRYPT_H
#define _DPCRYPT_H
#include <dp.h>
namespace dpcrypt {
class Certificate;
class CryptProvider;
class Cryptor;
class Hash;
class Identity;
class Key;
class KeyPair;
class Role;
class StreamCryptor;
class Certificate: public dp::RefCounted
{
public:
virtual ~Certificate();
virtual void* getInterfaceID();
virtual void addRef() = 0;
virtual void release() = 0;
virtual void getCommonName() = 0;
virtual void getPublicKey() = 0;
virtual void serialize() = 0;
virtual void isValidForRole(int) = 0;
};
class CryptProvider: public dp::Unknown
{
public:
virtual ~CryptProvider();
virtual void* getInterfaceID();
virtual void getRandomBytes(unsigned int) = 0;
virtual void createHash(int) = 0;
virtual void createKey(int, int, dp::Data const&) = 0;
virtual void generateKey(int) = 0;
virtual void generateKeyPair(int, dpcrypt::KeyPair*) = 0;
virtual void createCryptor(int) = 0;
virtual void createStreamCryptor(int) = 0;
virtual void createCertificate(dp::Data const&) = 0;
virtual void createIdentity(dp::Data const&, dp::String const&) = 0;
virtual void changePKCS12Password(dp::Data const&, dp::String const&, dp::String const&) = 0;
void getProvider();
void setProvider(dpcrypt::CryptProvider*);
};
class Cryptor: public dp::RefCounted
{
public:
virtual ~Cryptor();
virtual void* getInterfaceID();
virtual void addRef() = 0;
virtual void release() = 0;
virtual void encrypt(dp::ref<dpcrypt::Key> const&, dp::Data const&) = 0;
virtual void encrypt(dp::ref<dpcrypt::Key> const&, dp::Data const&, dp::Data const&, bool) = 0;
virtual void decrypt(dp::ref<dpcrypt::Key> const&, dp::Data const&) = 0;
virtual void decrypt(dp::ref<dpcrypt::Key> const&, dp::Data const&, dp::Data const&) = 0;
};
class Hash: public dp::RefCounted
{
public:
virtual ~Hash();
virtual void* getInterfaceID();
virtual void addRef() = 0;
virtual void release() = 0;
virtual void update(dp::Data const&) = 0;
virtual void finalize() = 0;
};
class Identity: public dp::RefCounted
{
public:
virtual ~Identity();
virtual void* getInterfaceID();
virtual void addRef() = 0;
virtual void release() = 0;
virtual void getEECert() = 0;
virtual void getPrivateKey() = 0;
};
class Key: public dp::RefCounted
{
public:
virtual ~Key();
virtual void* getInterfaceID();
virtual void addRef() = 0;
virtual void release() = 0;
virtual void getKeyBitSize() = 0;
virtual void getKeyType() = 0;
virtual void serialize() = 0;
};
class KeyPair
{
public:
KeyPair();
~KeyPair();
};
class Role
{
public:
};
class StreamCryptor: public dp::RefCounted
{
public:
virtual ~StreamCryptor();
virtual void* getInterfaceID();
virtual void addRef() = 0;
virtual void release() = 0;
virtual void initDecrypt(dp::ref<dpcrypt::Key> const&, dp::Data const&) = 0;
virtual void decrypt(unsigned char const*, unsigned int, unsigned int*, unsigned char*, unsigned int) = 0;
virtual void finalize(unsigned char*, unsigned int) = 0;
};
}
#endif // _DPCRYPT_H
include/rmsdk/dpdev.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
/*
File automatically generated by SOAdvancedDissector.py
More information at http://indefero.soutade.fr/p/soadvanceddissector
*/
#ifndef _DPDEV_H
#define _DPDEV_H
#include <dpext.h>
#include <dp.h>
namespace dpio {
class Partition;
class FilesystemPartition;
};
namespace dpdev {
class Device;
class DeviceListener;
class DeviceManager;
class DeviceProvider;
class GenericDevice;
class GenericDeviceProvider;
class LoadableDevice;
class LoadableDeviceProvider;
class LoadableDeviceProviderHolder;
class UNIXDevice;
class UNIXDeviceProvider;
class Device: public dp::Unknown
{
public:
virtual ~Device();
virtual void* getInterfaceID();
virtual void prepareDeviceKey() = 0;
virtual dpdev::DeviceProvider* getProvider() = 0;
virtual int getIndex() = 0;
virtual dp::String getDeviceName() = 0;
virtual dp::String getDeviceType() = 0;
virtual dp::Data getFingerprint() = 0;
virtual dp::Data getDeviceKey() = 0;
virtual dp::Data getActivationRecord() = 0;
virtual void setActivationRecord(dp::Data const&) = 0;
virtual dpio::Partition* getPartition(int) = 0;
virtual dp::String getVersionInfo(dp::String const&) = 0;
virtual bool isTrusted() = 0;
};
class DeviceListener: public dp::Unknown
{
public:
virtual ~DeviceListener();
virtual void* getInterfaceID();
virtual void reportError(int, int, dp::String const&) = 0;
virtual void deviceKeyReady(int, int) = 0;
virtual void deviceAdded(int, int, dpdev::Device*) = 0;
virtual void deviceRemoved(int, int, dpdev::Device*) = 0;
virtual void partitionAdded(int, int, int, dpio::Partition*) = 0;
virtual void partitionRemoved(int, int, int, dpio::Partition*) = 0;
};
class DeviceManager: public dpdev::DeviceListener
{
public:
DeviceManager();
virtual ~DeviceManager();
virtual void* getInterfaceID();
virtual void reportError(int, int, dp::String const&);
virtual void deviceKeyReady(int, int);
virtual void deviceAdded(int, int, dpdev::Device*);
virtual void deviceRemoved(int, int, dpdev::Device*);
virtual void partitionAdded(int, int, int, dpio::Partition*);
virtual void partitionRemoved(int, int, int, dpio::Partition*);
void addListener(dpdev::DeviceListener*);
void addProvider(dpdev::DeviceProvider*);
void getDeviceManager();
void getProvider(int);
void mountRemovablePartition(dp::String const&, dp::String const&, dp::String const&);
void removeListener(dpdev::DeviceListener*);
void unmountRemovablePartition(dp::String const&);
};
class DeviceProvider: public dp::Unknown
{
public:
virtual ~DeviceProvider();
virtual void* getInterfaceID();
virtual void getIdentifier() = 0;
virtual int getIndex() = 0;
virtual dpdev::Device* getDevice(int) = 0;
virtual bool mount(dp::String const&, dp::String const&, dp::String const&) = 0;
virtual bool unmount(dp::String const&) = 0;
static void addListener(dpdev::DeviceListener*);
static void addProvider(dpdev::DeviceProvider*);
void getMasterListener();
void getProvider(int);
void mountRemovablePartition(dp::String const&, dp::String const&, dp::String const&);
void unmountRemovablePartition(dp::String const&);
};
// class GenericDevice: public dpdev::Device
// {
// public:
// GenericDevice(int, dp::String const&, dp::String const&, dp::String const&);
// virtual ~GenericDevice();
// virtual void* getInterfaceID();
// virtual void getOptionalInterface(char const*);
// virtual void prepareDeviceKey();
// virtual void getProvider();
// virtual void getIndex();
// virtual void getDeviceName();
// virtual void getDeviceType();
// virtual void getFingerprint();
// virtual void getDeviceKey();
// virtual void getActivationRecord();
// virtual void setActivationRecord(dp::Data const&);
// virtual void getPartition(int);
// virtual void getVersionInfo(dp::String const&);
// virtual void isTrusted();
// void isValid();
// };
// class GenericDeviceProvider: public dpdev::DeviceProvider
// {
// public:
// GenericDeviceProvider();
// virtual ~GenericDeviceProvider();
// virtual void* getInterfaceID();
// virtual void getIdentifier();
// virtual int getIndex();
// virtual dpdev::Device* getDevice(int);
// virtual void mount(dp::String const&, dp::String const&, dp::String const&);
// virtual void unmount(dp::String const&);
// void getGenericDeviceProvider();
// };
// class LoadableDevice: public dpdev::Device
// {
// public:
// LoadableDevice(dpdev::LoadableDeviceProvider*, dpext::LoadableDeviceInfo*, int);
// virtual ~LoadableDevice();
// virtual void* getInterfaceID();
// virtual void getOptionalInterface(char const*);
// virtual void prepareDeviceKey();
// virtual void getProvider();
// virtual void getIndex();
// virtual void getDeviceName();
// virtual void getDeviceType();
// virtual void getFingerprint();
// virtual void getDeviceKey();
// virtual void getActivationRecord();
// virtual void setActivationRecord(dp::Data const&);
// virtual void getPartition(int);
// virtual void getVersionInfo(dp::String const&);
// virtual void isTrusted();
// void updatePartitions();
// };
// class LoadableDeviceProvider: public dpdev::DeviceProvider, public dpext::LoadableDeviceIteratorListener
// {
// public:
// LoadableDeviceProvider(dp::String const&, dp::String const&);
// virtual ~LoadableDeviceProvider();
// virtual void* getInterfaceID();
// virtual void getIdentifier();
// virtual void getIndex();
// virtual void getDevice(int);
// virtual void mount(dp::String const&, dp::String const&, dp::String const&);
// virtual void unmount(dp::String const&);
// virtual void deviceListChanged();
// void isMounted(dp::String const&);
// void registerLoadableDevices();
// };
// class LoadableDeviceProviderHolder
// {
// public:
// ~LoadableDeviceProviderHolder();
// void addLoadableDeviceProvider(dpdev::LoadableDeviceProvider*);
// };
class UNIXDevice: public dpdev::Device
{
public:
UNIXDevice();
virtual ~UNIXDevice();
//virtual void* getInterfaceID();
virtual void* getOptionalInterface(char const*);
virtual void prepareDeviceKey();
virtual dpdev::DeviceProvider* getProvider();
virtual int getIndex();
virtual dp::String getDeviceName();
virtual dp::String getDeviceType();
virtual dp::Data getFingerprint();
virtual dp::Data getDeviceKey();
virtual dp::Data getActivationRecord();
virtual void setActivationRecord(dp::Data const&);
virtual dpio::Partition* getPartition(int);
virtual dp::String getVersionInfo(dp::String const&);
virtual bool isTrusted();
void addRemovablePartition(dp::String const&, dp::String const&, dp::String const&);
void removeRemovablePartition(dp::String const&);
void writeDeviceFile(char const*);
dpio::FilesystemPartition* partition;
unsigned int m1, m2;
void *m3, *m4, *m5, *m6;
void *m7, *m8, *m9, *m10;
void *m11;
};
// class UNIXDeviceProvider: public dpdev::DeviceProvider
// {
// public:
// UNIXDeviceProvider();
// virtual ~UNIXDeviceProvider();
// virtual void* getInterfaceID();
// virtual void getIdentifier();
// virtual void getIndex();
// virtual void getDevice(int);
// virtual void mount(dp::String const&, dp::String const&, dp::String const&);
// virtual void unmount(dp::String const&);
// };
void isMobileOS();
}
#endif // _DPDEV_H
include/rmsdk/dpdoc.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
/*
File automatically generated by SOAdvancedDissector.py
More information at http://indefero.soutade.fr/p/soadvanceddissector
*/
#ifndef _DPDOC_H
#define _DPDOC_H
#include <dp.h>
#include <dpsec.h>
#include <uft.h>
#include <dpdev.h>
namespace dpdoc {
class Annot;
class AnnotParameter;
class Annotation;
class AudioInfo;
class ContentIterator;
class DisplayElement;
class DisplayHandler;
class Document;
class DocumentClient;
class DocumentProvider;
class Event;
class ExternalLinkInfo;
class KeyboardEvent;
class LinkInfo;
class Location;
class Matrix;
class MetadataItem;
class MouseEvent;
class MouseLocationInfo;
class PageDecoration;
class PageNumbers;
class PermReqObj;
class PermReqOpr;
class Range;
class RangeInfo;
class Rectangle;
class Renderer;
class RendererClient;
class Surface;
class TOCItem;
class TextEvent;
class VideoInfo;
class Annot
{
public:
virtual void getSubtype() const = 0;
virtual void getParams(uft::Dict&, dpdoc::AnnotParameter) const = 0;
virtual void setParams(uft::Dict const&, dpdoc::AnnotParameter) = 0;
};
class AnnotParameter
{
public:
};
class Annotation
{
public:
class StreamReader
{
public:
};
virtual void getPropertyType(dp::String const&) const = 0;
virtual void getIntegerProperty(dp::String const&) const = 0;
virtual void getRealProperty(dp::String const&) const = 0;
virtual void getStringProperty(dp::String const&) const = 0;
virtual void getNameProperty(dp::String const&) const = 0;
virtual void setNameProperty(dp::String const&, dp::String const&) = 0;
virtual void getBooleanProperty(dp::String const&) const = 0;
virtual void getStreamProperty(dp::String const&, dpdoc::Annotation::StreamReader&) const = 0;
virtual void setStreamProperty(dp::String const&, dp::String const&) const = 0;
virtual void setStringProperty(dp::String const&, dp::String const&) const = 0;
virtual void getArrayLength(dp::String const&) const = 0;
virtual void getStringArrayProperty(dp::String const&, dp::String*) const = 0;
};
class AudioInfo
{
public:
};
class ContentIterator: public dp::Releasable
{
public:
virtual ~ContentIterator();
virtual void* getInterfaceID();
virtual void release() = 0;
virtual void next(unsigned int) = 0;
virtual void previous(unsigned int) = 0;
virtual void getCurrentPosition() = 0;
};
class DisplayElement: public dp::Unknown
{
public:
virtual ~DisplayElement();
virtual void* getInterfaceID();
virtual void getType() = 0;
virtual void getBeginning() = 0;
virtual void getEnd() = 0;
virtual void getBox(dpdoc::Rectangle*) = 0;
virtual void getTransform(dpdoc::Matrix*) = 0;
virtual void getEmbedURL() = 0;
};
class DisplayHandler: public dp::Unknown
{
public:
virtual ~DisplayHandler();
virtual void* getInterfaceID();
virtual void startDisplayElement(dpdoc::DisplayElement*) = 0;
virtual void endDisplayElement(dpdoc::DisplayElement*) = 0;
};
class Document: public dp::Releasable
{
public:
virtual ~Document();
virtual void* getInterfaceID();
virtual void release() = 0;
virtual void getInterfaceVersion() = 0;
virtual void getNaturalUnit() = 0;
virtual void setURL(dp::String const&) = 0;
virtual void getMetadata(dp::String const&, int) = 0;
virtual void getTocRoot() = 0;
virtual void getBeginning() = 0;
virtual void getEnd() = 0;
virtual void getLocationFromBookmark(dp::String const&) = 0;
virtual void findText(dp::ref<dpdoc::Location> const&, dp::ref<dpdoc::Location> const&, unsigned int, dp::String const&, dpdoc::Range*) = 0;
virtual void getText(dp::ref<dpdoc::Location> const&, dp::ref<dpdoc::Location> const&) = 0;
virtual void getPageCount() = 0;
virtual void getLocationFromPagePosition(double) = 0;
virtual void getPageName(double) = 0;
virtual void getPagePosition(dp::String const&) = 0;
virtual void setSyntheticPageInfo(int, int) = 0;
virtual void setPageMapURL(dp::String const&) = 0;
virtual void getContentIterator(int, dp::ref<dpdoc::Location> const&) = 0;
virtual void createRenderer(dpdoc::RendererClient*) = 0;
virtual void getErrorList() = 0;
virtual void setDocumentPassword(dp::String const&) = 0;
virtual void setLicense(dp::String const&, dp::String const&, dp::Data const&) = 0;
virtual void serializeDocumentAndLicense() = 0;
virtual void getRights() = 0;
virtual void setContextDevice(dpdev::Device*) = 0;
virtual void getPageProgressionDirection() = 0;
virtual void createAnnot(uft::Dict const&);
virtual void deleteAnnot(dpdoc::Annot*);
virtual void updatePDF();
virtual void getPermission(dpdoc::PermReqObj, dpdoc::PermReqOpr);
void createDocument(dpdoc::DocumentClient*, dp::String const&);
void* m_bPurgeFontsOnExit;
void* m_dDocumentCount;
};
class DocumentClient: public dp::Unknown
{
public:
DocumentClient();
virtual ~DocumentClient();
virtual void* getInterfaceID();
virtual void getInterfaceVersion() = 0;
virtual void getResourceStream(dp::String const&, unsigned int) = 0;
virtual void canContinueProcessing(int) = 0;
virtual void reportLoadingState(int) = 0;
virtual void reportDocumentError(dp::String const&) = 0;
virtual void reportErrorListChange() = 0;
virtual void requestLicense(dp::String const&, dp::String const&, dp::Data const&) = 0;
virtual void requestDocumentPassword() = 0;
virtual void requestCredentials(dpsec::SecurityHandlerData*);
virtual void documentSerialized() = 0;
};
class DocumentProvider: public dp::Unknown
{
public:
virtual ~DocumentProvider();
virtual void* getInterfaceID();
virtual void createDocument(dpdoc::DocumentClient*, dp::String const&) = 0;
void addProvider(dpdoc::DocumentProvider*);
};
class Event: public dp::Unknown
{
public:
virtual ~Event();
virtual void* getInterfaceID();
virtual void getEventKind() = 0;
virtual void getEventType() = 0;
virtual void reject() = 0;
};
class ExternalLinkInfo
{
public:
};
class KeyboardEvent: public dpdoc::Event
{
public:
virtual ~KeyboardEvent();
virtual void* getInterfaceID();
virtual void getEventKind() = 0;
virtual void getEventType() = 0;
virtual void reject() = 0;
virtual void getKeyIdentifier() = 0;
virtual void getModifiers() = 0;
virtual void getKeyLocation() = 0;
};
class LinkInfo
{
public:
};
class Location: public dp::RefCounted
{
public:
virtual ~Location();
virtual void* getInterfaceID();
virtual void addRef() = 0;
virtual void release() = 0;
virtual void setReturnEpubCfiBookmarks(bool);
virtual void getReturnEpubCfiBookmarks();
virtual void getBookmark() = 0;
virtual void compare(dp::ref<dpdoc::Location> const&) = 0;
virtual void getPagePosition() = 0;
};
class Matrix
{
public:
};
class MetadataItem: public dp::RefCounted
{
public:
virtual ~MetadataItem();
virtual void* getInterfaceID();
virtual void addRef() = 0;
virtual void release() = 0;
virtual void getValue() = 0;
virtual void getAttribute(dp::String const&, dp::String const&) = 0;
};
class MouseEvent: public dpdoc::Event
{
public:
virtual ~MouseEvent();
virtual void* getInterfaceID();
virtual void getEventKind() = 0;
virtual void getEventType() = 0;
virtual void reject() = 0;
virtual void getButton() = 0;
virtual void getModifiers() = 0;
virtual void getX() = 0;
virtual void getY() = 0;
};
class MouseLocationInfo
{
public:
};
class PageDecoration
{
public:
};
class PageNumbers
{
public:
};
class PermReqObj
{
public:
};
class PermReqOpr
{
public:
};
class Range
{
public:
~Range();
};
class RangeInfo: public dp::Releasable
{
public:
virtual ~RangeInfo();
virtual void* getInterfaceID();
virtual void release() = 0;
virtual void startsBeforeThisScreen() = 0;
virtual void endsBeforeThisScreen() = 0;
virtual void startsAfterThisScreen() = 0;
virtual void endsAfterThisScreen() = 0;
virtual void getBoxCount() = 0;
virtual void getBox(int, bool, dpdoc::Rectangle*) = 0;
virtual void getBoxTransform(int, dpdoc::Matrix*) = 0;
virtual void getBoxFlags(int, unsigned int*) = 0;
};
class Rectangle
{
public:
};
class Renderer: public dp::Releasable
{
public:
virtual ~Renderer();
virtual void* getInterfaceID();
virtual void release() = 0;
virtual void getInterfaceVersion() = 0;
virtual void getCapabilities() = 0;
virtual void navigateToLocation(dp::ref<dpdoc::Location> const&) = 0;
virtual void getCurrentLocation() = 0;
virtual void supportsPixelLayout(int) = 0;
virtual void getScreenBeginning() = 0;
virtual void getScreenEnd() = 0;
virtual void getPageNumbersForScreen(dpdoc::PageNumbers*) = 0;
virtual void getNaturalSize(dpdoc::Rectangle*) = 0;
virtual void getMarkedArea(dpdoc::Rectangle*) = 0;
virtual void setViewport(double, double, bool) = 0;
virtual void setEnvironmentMatrix(dpdoc::Matrix const&) = 0;
virtual void setNavigationMatrix(dpdoc::Matrix const&) = 0;
virtual void getNavigationMatrix(dpdoc::Matrix*) = 0;
virtual void paint(int, int, int, int, dpdoc::Surface*) = 0;
virtual void paint(dpdoc::Matrix const&, int, int, int, int, dpdoc::Surface*, int);
virtual void paint(dpdoc::Matrix const&, int, int, int, int, dpdoc::Surface*, int, int);
virtual void hasOverlayContent(dpdoc::Matrix const&, int, int, int, int, int);
virtual void walkScreen(dpdoc::DisplayHandler*, unsigned int) = 0;
virtual void handleEvent(dpdoc::Event*) = 0;
virtual void hitTest(double, double, unsigned int) = 0;
virtual void hitTestForAnnotation(double, double, int, uft::Dict&);
virtual void hitTestForAnnotation(double const*, double*, dp::String&);
virtual void getAnnotationBounds(dpdoc::Annotation*, double*);
virtual void isFocusable() = 0;
virtual void getPagingMode() = 0;
virtual void setPagingMode(int) = 0;
virtual void setPageDecoration(dpdoc::PageDecoration const&) = 0;
virtual void nextScreen() = 0;
virtual void previousScreen() = 0;
virtual void isAtBeginning() = 0;
virtual void isAtEnd() = 0;
virtual void getDefaultFontSize() = 0;
virtual void setDefaultFontSize(double) = 0;
virtual void addHighlight(int, dp::ref<dpdoc::Location> const&, dp::ref<dpdoc::Location> const&) = 0;
virtual void setHighlightColor(int, int, unsigned int) = 0;
virtual void getHighlightColor(int, int) = 0;
virtual void navigateToHighlight(int, int) = 0;
virtual void getHighlightCount(int) = 0;
virtual void getHighlight(int, int, dpdoc::Range*) = 0;
virtual void removeHighlight(int, int) = 0;
virtual void removeAllHighlights(int) = 0;
virtual void getLinkCount() = 0;
virtual void getLinkInfo(int, dpdoc::LinkInfo*) = 0;
virtual void getExternalLinkCount() = 0;
virtual void getExternalLinkInfo(int, dpdoc::ExternalLinkInfo*) = 0;
virtual void getRangeInfo(dp::ref<dpdoc::Location> const&, dp::ref<dpdoc::Location> const&) = 0;
virtual void setMargins(double, double, double, double) = 0;
virtual void setCSSMediaType(dp::String const&) = 0;
virtual void getVideoCountForCurrentScreen() = 0;
virtual void getVideoInfoForVideoOnCurrentScreen(int, dpdoc::VideoInfo*) = 0;
virtual void getAudioCountForCurrentScreen() = 0;
virtual void getAudioInfoForAudioOnCurrentScreen(int, dpdoc::AudioInfo*) = 0;
virtual void setPlayMode(unsigned int) = 0;
virtual void getPlayMode() = 0;
virtual void showPageNumbers(bool) = 0;
virtual void allowExternalLinks(bool) = 0;
virtual void hibernate() = 0;
virtual void wakeUp() = 0;
virtual void performAction(dp::String const&) = 0;
virtual void reflowFailed();
virtual void convertPointFromDeviceSpaceToDocumentSpace(double, double, double&, double&, int);
virtual void convertPointFromDocumentSpaceToDeviceSpace(double, double, double&, double&, int);
virtual void convertPointFromDocumentSpaceToDeviceSpace(double, double, double&, double&, int, int, dpdoc::Matrix const&);
virtual void getWordBoundary(double, double, unsigned int, dpdoc::Location**, dpdoc::Location**, dpdoc::Location**, double*, double*, int, bool);
virtual void updateTextSelection(dpdoc::Location*, bool);
virtual void getVideoInfoForCurrentScreenAsJSON() = 0;
virtual void getAudioInfoForCurrentScreenAsJSON() = 0;
virtual void getVideoStream(dp::String) = 0;
virtual void getAudioStream(dp::String) = 0;
};
class RendererClient: public dp::Unknown
{
public:
virtual ~RendererClient();
virtual void* getInterfaceID();
virtual void getInterfaceVersion() = 0;
virtual void getUnitsPerInch() = 0;
virtual void getPageMarginFontSize() = 0;
virtual void requestRepaint(int, int, int, int) = 0;
virtual void requestHighlightRepaint(int, int, int, int);
virtual void navigateToURL(dp::String const&, dp::String const&) = 0;
virtual void reportMouseLocationInfo(dpdoc::MouseLocationInfo const&) = 0;
virtual void reportInternalNavigation() = 0;
virtual void reportDocumentSizeChange() = 0;
virtual void reportHighlightChange(int) = 0;
virtual void reportRendererError(dp::String const&) = 0;
virtual void finishedPlaying() = 0;
virtual void doIntermediateBlit(dpdoc::Surface*);
};
class Surface: public dp::Unknown
{
public:
virtual ~Surface();
virtual void* getInterfaceID();
virtual void getSurfaceKind() = 0;
virtual void getPixelLayout() = 0;
virtual void getTransferMap(int) = 0;
virtual void getDitheringClipMap(int) = 0;
virtual void getDitheringDepth(int) = 0;
virtual void checkOut(int, int, int, int, unsigned int*) = 0;
virtual void checkIn(unsigned char*) = 0;
void initDitheringClipMap(unsigned char*, int);
};
class TOCItem: public dp::Releasable
{
public:
virtual ~TOCItem();
virtual void* getInterfaceID();
virtual void release() = 0;
virtual void getTitle() = 0;
virtual void getLocation() = 0;
virtual void getChildCount() = 0;
virtual void getChild(int) = 0;
};
class TextEvent: public dpdoc::Event
{
public:
virtual ~TextEvent();
virtual void* getInterfaceID();
virtual void getEventKind() = 0;
virtual void getEventType() = 0;
virtual void reject() = 0;
virtual void getData() = 0;
};
class VideoInfo
{
public:
};
}
#endif // _DPDOC_H
include/rmsdk/dpdrm.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
/*
File automatically generated by SOAdvancedDissector.py
More information at http://indefero.soutade.fr/p/soadvanceddissector
*/
#ifndef _DPDRM_H
#define _DPDRM_H
#include <dp.h>
#include <dpio.h>
#include <dpdev.h>
namespace adept {
class FulfillmentItemList;
class ActivationImpl;
}
namespace dpdrm {
class Activation;
class DRMProcessor;
class DRMProcessorClient;
class DRMProvider;
class FulfillmentItem;
class License;
class Permission;
class Rights;
class Activation: public dp::RefCounted
{
public:
Activation();
virtual ~Activation();
virtual void* getInterfaceID();
virtual void addRef() = 0;
virtual void release() = 0;
virtual uft::String getUserID() = 0;
virtual uft::String getDeviceID() = 0;
virtual void getExpiration() = 0;
virtual void getAuthority() = 0;
virtual void getUsername() = 0;
virtual bool hasCredentials() = 0;
};
class DRMProcessor: public dp::Releasable
{
public:
DRMProcessor();
virtual ~DRMProcessor();
virtual void* getInterfaceID();
virtual void release() = 0;
virtual dp::list<adept::ActivationImpl> getActivations() = 0;
virtual void setUser(dp::String const&) = 0;
virtual void setPartition(dpio::Partition*) = 0;
virtual void reset() = 0;
virtual void initWorkflows(unsigned int, dp::Data const&) = 0;
virtual void initSignInWorkflow(unsigned int, dp::String const&, dp::String const&, dp::String const&) = 0;
virtual void initSignInWorkflow(unsigned int, dp::String const&, dp::String const&, dp::Data const&) = 0;
virtual void initLoanReturnWorkflow(dp::String const&) = 0;
virtual void initUpdateLoansWorkflow(dp::String const&, dp::String const&) = 0;
virtual void initJoinAccountsWorkflow(dp::String const&, dp::String const&, dp::String const&) = 0;
virtual int startWorkflows(unsigned int) = 0;
virtual void providePasshash(dp::Data const&) = 0;
virtual void provideInput(dp::Data const&) = 0;
virtual void provideConfirmation(dp::String const&, int) = 0;
virtual void transferLoanTokensFrom(dpdev::Device*) = 0;
virtual void transferCredentialsFrom(dpdev::Device*, dp::String const&, bool) = 0;
virtual dp::list<dpdrm::FulfillmentItem> getFulfillmentItems() = 0;
virtual void getFulfillmentID() = 0;
virtual void isReturnable() = 0;
virtual void addPasshash(dp::String const&, dp::Data const&) = 0;
virtual void removePasshash(dp::String const&, dp::Data const&) = 0;
virtual void calculatePasshash(dp::String const&, dp::String const&) = 0;
};
class DRMProcessorClient
{
public:
};
class DRMProvider: public dp::Unknown
{
public:
DRMProvider();
virtual ~DRMProvider();
virtual void* getInterfaceID();
virtual dpdrm::DRMProcessor* createDRMProcessor(dpdrm::DRMProcessorClient*, dpdev::Device*) = 0;
virtual void parseLicense(dp::Data const&) = 0;
void getProvider();
};
class FulfillmentItem: public dp::RefCounted
{
public:
FulfillmentItem();
virtual ~FulfillmentItem();
virtual void* getInterfaceID();
virtual void addRef() = 0;
virtual void release() = 0;
virtual dp::String getRights() = 0;
virtual dp::String getMetadata(dp::String const&) = 0;
virtual dp::String getDownloadMethod() = 0;
virtual dp::String getDownloadURL() = 0;
virtual dp::Data getPostData() = 0;
};
class License: public dp::RefCounted
{
public:
License();
virtual ~License();
virtual void* getInterfaceID();
virtual void addRef() = 0;
virtual void release() = 0;
virtual void getUserID() = 0;
virtual void getResourceID() = 0;
virtual void getVoucherID() = 0;
virtual void getLicenseURL() = 0;
virtual void getOperatorURL() = 0;
virtual void getFulfillmentID() = 0;
virtual void getDistributorID() = 0;
virtual void getLicensee() = 0;
virtual void getPermissions(dp::String const&) = 0;
virtual void getCurrentCount(dp::String const&) = 0;
virtual void consume(dp::String const&, int) = 0;
virtual void getFlavor() = 0;
};
class Permission: public dp::RefCounted
{
public:
Permission();
virtual ~Permission();
virtual void* getInterfaceID();
virtual void addRef() = 0;
virtual void release() = 0;
virtual void getPermissionType() = 0;
virtual void getExpiration() = 0;
virtual void getLoanID() = 0;
virtual void getDeviceID() = 0;
virtual void getDeviceType() = 0;
virtual void getMaxResoultion() = 0;
virtual void getParts() = 0;
virtual void isConsumable() = 0;
virtual void getInitialCount() = 0;
virtual void getMaxCount() = 0;
virtual void getIncrementInterval() = 0;
};
class Rights: public dp::RefCounted
{
public:
Rights();
virtual ~Rights();
virtual void* getInterfaceID();
virtual void addRef() = 0;
virtual void release() = 0;
virtual void getLicenses() = 0;
virtual void getValidLicenses(dpdev::Device*) = 0;
virtual void serialize() = 0;
};
void getAuthenticationCertificate(dp::ref<dpdrm::Activation>);
void getUserCertificate(dp::ref<dpdrm::Activation>);
void signChallenge(dp::String const&, dp::String const&);
}
#endif // _DPDRM_H
include/rmsdk/dpext.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*
File automatically generated by SOAdvancedDissector.py
More information at http://indefero.soutade.fr/p/soadvanceddissector
*/
#ifndef _DPEXT_H
#define _DPEXT_H
namespace dpext {
class LoadableDeviceInfo;
class LoadableDeviceIteratorListener;
class LoadableDeviceInfo
{
public:
};
class LoadableDeviceIteratorListener
{
public:
virtual ~LoadableDeviceIteratorListener();
virtual void virtfunc16() = 0;
};
}
#endif // _DPEXT_H
include/rmsdk/dpio.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
/*
File automatically generated by SOAdvancedDissector.py
More information at http://indefero.soutade.fr/p/soadvanceddissector
*/
#ifndef _DPIO_H
#define _DPIO_H
#include <dp.h>
#include <dpdev.h>
#include <dputils.h>
namespace dpio {
class StreamClient;
class BufferedStreamClient;
class DataStream;
class FileRemover;
class FileStream;
class FileWriter;
class Partition;
class FilesystemPartition;
class MessagePipe;
class Stream;
class UniqueFileCreator;
class StreamClient: public dp::Unknown
{
public:
StreamClient();
virtual ~StreamClient();
virtual void* getInterfaceID();
virtual void propertyReady(dp::String const&, dp::String const&) = 0;
virtual void totalLengthReady(unsigned int) = 0;
virtual void propertiesReady() = 0;
virtual void bytesReady(unsigned int, dp::Data const&, bool) = 0;
virtual void reportError(dp::String const&) = 0;
};
class BufferedStreamClient: public dpio::StreamClient
{
public:
BufferedStreamClient();
virtual ~BufferedStreamClient();
virtual void* getInterfaceID();
virtual void propertyReady(dp::String const&, dp::String const&);
virtual void totalLengthReady(unsigned int);
virtual void propertiesReady();
virtual void bytesReady(unsigned int, dp::Data const&, bool);
virtual void reportError(dp::String const&);
void getBuffer() const;
void safeBufferAppend(unsigned char const*, unsigned int);
};
class DataStream: public dputils::GuardedStream
{
public:
DataStream(dp::String const&, dp::Data const&, dpio::StreamClient*, dp::Callback*);
virtual ~DataStream();
virtual void* getInterfaceID();
virtual int getCapabilities();
virtual void requestInfo();
virtual void requestBytes(unsigned int, unsigned int);
virtual void reportWriteError(dp::String const&);
virtual void adjustModifiedStream();
virtual void deleteThis();
};
// class FileRemover
// {
// public:
// void remove(dpio::Partition*, dp::String const&, dp::Callback*);
// };
// class FileStream: public dputils::GuardedStream
// {
// public:
// FileStream(dpio::Partition*, dp::String const&, dpio::StreamClient*, unsigned int);
// virtual ~FileStream();
// virtual void* getInterfaceID();
// virtual void setStreamClient(dpio::StreamClient*);
// virtual int getCapabilities();
// virtual void requestInfo();
// virtual void requestBytes(unsigned int, unsigned int);
// virtual void reportWriteError(dp::String const&);
// virtual void adjustModifiedStream();
// virtual void deleteThis();
// void closeHandles();
// void getTemporaryFolder();
// void isFolder(dpio::Partition*, dp::String const&);
// void listFolder(dpio::Partition*, dp::String const&);
// };
// class FileWriter: public dpio::StreamClient
// {
// public:
// FileWriter();
// virtual ~FileWriter();
// virtual void* getInterfaceID();
// virtual void propertyReady(dp::String const&, dp::String const&);
// virtual void totalLengthReady(unsigned int);
// virtual void propertiesReady();
// virtual void bytesReady(unsigned int, dp::Data const&, bool);
// virtual void reportError(dp::String const&);
// void write(dpio::Partition*, dp::String const&, dpio::Stream*, dp::Callback*);
// };
class Partition: public dp::Unknown
{
public:
virtual ~Partition();
virtual void* getInterfaceID();
virtual dpdev::Device* getDevice() = 0;
virtual int getIndex() = 0;
virtual dp::String getPartitionName() = 0;
virtual dp::String getPartitionType() = 0;
virtual dp::String getRootURL() = 0;
virtual dp::String getDocumentFolderURL() = 0;
virtual dp::String getTemporaryFolderURL() = 0;
virtual dpio::Stream* readFile(dp::String const&, dpio::StreamClient*, unsigned int);
virtual void createUniqueFile(dp::String const&, dp::String const&, dp::Callback*) = 0;
virtual void writeFile(dp::String const&, dpio::Stream*, dp::Callback*) = 0;
virtual void removeFile(dp::String const&, dp::Callback*) = 0;
void createFileSystemPartition(dpdev::Device*, int, dp::String const&, dp::String const&, dp::String const&, dp::String const&);
void findPartitionForURL(dp::String const&);
void releaseFileSystemPartition(dpio::Partition*);
void setFileSystemPartitionIndex(dpio::Partition*, int);
};
class FilesystemPartition: public dpio::Partition
{
public:
FilesystemPartition(dpdev::Device*, int, dp::String const&, dp::String const&, dp::String const&, dp::String const&);
virtual ~FilesystemPartition();
virtual void* getInterfaceID();
virtual void* getOptionalInterface(char const*);
virtual dpdev::Device* getDevice();
virtual int getIndex();
virtual dp::String getPartitionName();
virtual dp::String getPartitionType();
virtual dp::String getRootURL();
virtual dp::String getDocumentFolderURL();
virtual dp::String getTemporaryFolderURL();
virtual dpio::Stream* readFile(dp::String const&, dpio::StreamClient*, unsigned int);
virtual void createUniqueFile(dp::String const&, dp::String const&, dp::Callback*);
virtual void writeFile(dp::String const&, dpio::Stream*, dp::Callback*);
virtual void removeFile(dp::String const&, dp::Callback*);
void setIndex(int);
};
class MessagePipe
{
public:
~MessagePipe();
void processBroadcasts();
};
class UniqueFileCreator: public dp::Unknown
{
public:
virtual ~UniqueFileCreator();
virtual void* getOptionalInterface(char const*);
void createUnique(dpio::Partition*, dp::String const&, dp::String const&, dp::Callback*);
};
}
#endif // _DPIO_H
include/rmsdk/dplib.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
/*
File automatically generated by SOAdvancedDissector.py
More information at http://indefero.soutade.fr/p/soadvanceddissector
*/
#ifndef _DPLIB_H
#define _DPLIB_H
#include <dp.h>
#include <mdom.h>
#include <uft.h>
#include <dpdev.h>
#include <dptimer.h>
#include <dpio.h>
namespace dplib {
class ContentRecord;
class LibraryItem;
class ContentRecordImpl;
class ContentRecordList;
class ContentTag;
class ContentTagImpl;
//class CreateUniqueFileCallback<dplib::ContentRecordImpl>;
//class CreateUniqueFileCallback<dplib::ContentTagImpl>;
class Library;
class LibraryDeviceListener;
class LibraryImpl;
//class RemoveFileCallback<dplib::ContentRecordImpl>;
//class RemoveFileCallback<dplib::ContentTagImpl>;
class TagList;
//class WriteFileCallback<dplib::ContentRecordImpl>;
//class WriteFileCallback<dplib::ContentTagImpl>;
class LibraryListener {};
class ContentRecord: public dp::RefCounted
{
public:
virtual ~ContentRecord();
virtual void* getInterfaceID();
virtual void addRef() = 0;
virtual void release() = 0;
virtual void getLibrary() = 0;
virtual void getMetadata(dp::String const&) = 0;
virtual void setMetadata(dp::String const&, dp::String const&) = 0;
virtual void getCreationTime() = 0;
virtual void getLastReadTime() = 0;
virtual void getLastReadBookmark() = 0;
virtual void setLastReadBookmark(dp::String const&) = 0;
virtual void getPrivateData(dp::String const&, dp::String const&) = 0;
virtual void setPrivateData(dp::String const&, dp::String const&, dp::String const&) = 0;
virtual void getContentURL() = 0;
virtual void getThumbnailURL() = 0;
virtual void thumbnailChangeNotify() = 0;
virtual void getAnnotationURL() = 0;
virtual void annotationChangeNotify() = 0;
virtual void isTaggedBy(dp::ref<dplib::ContentTag> const&) = 0;
virtual void addTag(dp::ref<dplib::ContentTag> const&) = 0;
virtual void removeTag(dp::ref<dplib::ContentTag> const&) = 0;
virtual void getTags() = 0;
};
class LibraryItem
{
public:
LibraryItem(dplib::LibraryImpl*, uft::String const&, bool);
~LibraryItem();
virtual void virtfunc8() = 0;
void ensureNodeExists(unsigned int);
void getBaseLocalPath();
void getFirstChildNodeWithType(mdom::Node const&, unsigned int);
void getFirstNodeWithType(unsigned int);
void getMetadata(dp::String const&);
void getMetadataNode(uft::String const&);
void getMetadataNodeType(uft::String const&);
void getPrivateData(dp::String const&, dp::String const&);
void getPrivateDataNode(mdom::Node const&, uft::QName);
void loadXML(unsigned int, dp::Data const&);
void serializeToXML();
void setMetadata(dp::String const&, dp::String const&);
void setNodeText(mdom::Node const&, uft::String const&);
void setPrivateData(dp::String const&, dp::String const&, dp::String const&);
void setTextValue(unsigned int, unsigned int, uft::String const&);
};
class ContentRecordImpl: public dplib::ContentRecord, public dplib::LibraryItem
{
public:
ContentRecordImpl(dplib::LibraryImpl*, uft::String const&, dp::Data const&);
ContentRecordImpl(dplib::LibraryImpl*, uft::String const&, uft::String const&, dplib::ContentRecordImpl*);
virtual ~ContentRecordImpl();
virtual void* getInterfaceID();
virtual void addRef();
virtual void release();
virtual void getLibrary();
virtual void getMetadata(dp::String const&);
virtual void setMetadata(dp::String const&, dp::String const&);
virtual void getCreationTime();
virtual void getLastReadTime();
virtual void getLastReadBookmark();
virtual void setLastReadBookmark(dp::String const&);
virtual void getPrivateData(dp::String const&, dp::String const&);
virtual void setPrivateData(dp::String const&, dp::String const&, dp::String const&);
virtual void getContentURL();
virtual void getThumbnailURL();
virtual void thumbnailChangeNotify();
virtual void getAnnotationURL();
virtual void annotationChangeNotify();
virtual void isTaggedBy(dp::ref<dplib::ContentTag> const&);
virtual void addTag(dp::ref<dplib::ContentTag> const&);
virtual void removeTag(dp::ref<dplib::ContentTag> const&);
virtual void getTags();
virtual void setDirty();
void loadXML(dp::Data const&);
void staticInit();
void* s_descriptor;
};
class ContentRecordList: public dp::List<dplib::ContentRecord>
{
public:
virtual ~ContentRecordList();
virtual void addRef();
virtual void release();
virtual void length();
virtual void operator[](unsigned int);
};
class ContentTag: public dp::RefCounted
{
public:
virtual ~ContentTag();
virtual void* getInterfaceID();
virtual void addRef() = 0;
virtual void release() = 0;
virtual void getLibrary() = 0;
virtual void getMetadata(dp::String const&) = 0;
virtual void setMetadata(dp::String const&, dp::String const&) = 0;
virtual void getTagID() = 0;
virtual void getParent() = 0;
virtual void getPrivateData(dp::String const&, dp::String const&) = 0;
virtual void setPrivateData(dp::String const&, dp::String const&, dp::String const&) = 0;
};
class ContentTagImpl: public dplib::ContentTag, public dplib::LibraryItem
{
public:
ContentTagImpl(dplib::LibraryImpl*, dplib::ContentTagImpl const&);
ContentTagImpl(dplib::LibraryImpl*, uft::String const&, dp::Data const&);
ContentTagImpl(dplib::LibraryImpl*, uft::String const&, uft::String const&);
virtual ~ContentTagImpl();
virtual void* getInterfaceID();
virtual void addRef();
virtual void release();
virtual void getLibrary();
virtual void getMetadata(dp::String const&);
virtual void setMetadata(dp::String const&, dp::String const&);
virtual void getTagID();
virtual void getParent();
virtual void getPrivateData(dp::String const&, dp::String const&);
virtual void setPrivateData(dp::String const&, dp::String const&, dp::String const&);
virtual void setDirty();
void getFinalLeaf();
void getParentTagID();
void loadXML(dp::Data const&);
void staticInit();
void* s_descriptor;
};
// class CreateUniqueFileCallback<dplib::ContentRecordImpl>: public dp::Callback
// {
// public:
// virtual ~CreateUniqueFileCallback();
// virtual void reportError(dp::String const&);
// virtual void invoke(dp::Unknown*);
// };
// class CreateUniqueFileCallback<dplib::ContentTagImpl>: public dp::Callback
// {
// public:
// virtual ~CreateUniqueFileCallback();
// virtual void reportError(dp::String const&);
// virtual void invoke(dp::Unknown*);
// };
class Library: public dp::Unknown
{
public:
virtual ~Library();
virtual void* getInterfaceID();
virtual dpio::Partition* getPartition() = 0;
virtual bool isLoaded() = 0;
virtual void createContentRecord(dp::String const&) = 0;
virtual void cloneContentRecord(dp::ref<dplib::ContentRecord> const&, dp::String const&) = 0;
virtual void getContentRecordByURL(dp::String const&) = 0;
virtual void removeContentRecord(dp::ref<dplib::ContentRecord> const&) = 0;
virtual void getTags(dp::ref<dplib::ContentTag> const&) = 0;
virtual void getContentRecords(dp::ref<dplib::ContentTag> const&) = 0;
virtual void getTagByID(dp::String const&) = 0;
virtual void removeTag(dp::ref<dplib::ContentTag> const&) = 0;
virtual void addListener(dplib::LibraryListener*) = 0;
virtual void removeListener(dplib::LibraryListener*) = 0;
void getPartitionLibrary(dpio::Partition*);
};
class LibraryDeviceListener: public dpdev::DeviceListener
{
public:
virtual ~LibraryDeviceListener();
virtual void reportError(int, int, dp::String const&);
virtual void deviceKeyReady(int, int);
virtual void deviceAdded(int, int, dpdev::Device*);
virtual void deviceRemoved(int, int, dpdev::Device*);
virtual void partitionAdded(int, int, int, dpio::Partition*);
virtual void partitionRemoved(int, int, int, dpio::Partition*);
};
// class LibraryImpl: public dplib::Library, public dptimer::TimerClient
// {
// public:
// LibraryImpl(dpio::Partition*, uft::String const&);
// virtual ~LibraryImpl();
// virtual void* getInterfaceID();
// virtual void getPartition();
// virtual void isLoaded();
// virtual void createContentRecord(dp::String const&);
// virtual void cloneContentRecord(dp::ref<dplib::ContentRecord> const&, dp::String const&);
// virtual void getContentRecordByURL(dp::String const&);
// virtual void removeContentRecord(dp::ref<dplib::ContentRecord> const&);
// virtual void getTags(dp::ref<dplib::ContentTag> const&);
// virtual void getContentRecords(dp::ref<dplib::ContentTag> const&);
// virtual void getTagByID(dp::String const&);
// virtual void removeTag(dp::ref<dplib::ContentTag> const&);
// virtual void addListener(dplib::LibraryListener*);
// virtual void removeListener(dplib::LibraryListener*);
// virtual void timerFired(dptimer::Timer*);
// void addContentRecordToSave(dplib::ContentRecordImpl*);
// void addContentTagToSave(dplib::ContentTagImpl*);
// void addDirectoryToLoad(uft::String const&);
// void addFileToLoad(uft::String const&);
// void annotationChangeNotify(dplib::ContentRecordImpl*);
// void armTimer();
// void assignLocationAndSave(uft::sref<dplib::ContentRecordImpl> const&, uft::String const&);
// void assignLocationAndSave(uft::sref<dplib::ContentTagImpl> const&, uft::String const&);
// void cloneContentTag(dp::ref<dplib::ContentTag> const&);
// void cloneTree(mdom::Reference const&);
// void createContentTag(dp::String const&);
// void doSomeLoading();
// void ensureDomExists();
// void getAnnotationURLPrefix();
// void getContentURLPrefix();
// void getThumbnailURLPrefix();
// void handleBroadcastMessage(uft::String const&, uft::String const&);
// void itemRemoved(uft::sref<dplib::ContentRecordImpl> const&);
// void itemRemoved(uft::sref<dplib::ContentTagImpl> const&);
// void itemSaved(uft::sref<dplib::ContentRecordImpl> const&);
// void itemSaved(uft::sref<dplib::ContentTagImpl> const&);
// void libraryPartitionRemoved();
// void loadDirectory(uft::String const&);
// void loadFile(uft::String const&);
// void loadXML(unsigned int, dp::Data const&);
// void operationError(dp::String);
// void saveContentRecord(dplib::ContentRecordImpl*);
// void saveContentTag(dplib::ContentTagImpl*);
// void saveDirtyContentRecords();
// void saveDirtyTags();
// void shouldSaveContentRecord(dplib::ContentRecordImpl*, bool);
// void staticInit();
// void thumbnailChangeNotify(dplib::ContentRecordImpl*);
// void* s_descriptor;
// };
// class RemoveFileCallback<dplib::ContentRecordImpl>: public dp::Callback
// {
// public:
// virtual ~RemoveFileCallback();
// virtual void reportError(dp::String const&);
// virtual void invoke(dp::Unknown*);
// };
// class RemoveFileCallback<dplib::ContentTagImpl>: public dp::Callback
// {
// public:
// virtual ~RemoveFileCallback();
// virtual void reportError(dp::String const&);
// virtual void invoke(dp::Unknown*);
// };
// class TagList: public dp::List<dplib::ContentTag>
// {
// public:
// virtual ~TagList();
// virtual void addRef();
// virtual void release();
// virtual void length();
// virtual void operator[](unsigned int);
// };
// class WriteFileCallback<dplib::ContentRecordImpl>: public dp::Callback
// {
// public:
// virtual ~WriteFileCallback();
// virtual void reportError(dp::String const&);
// virtual void invoke(dp::Unknown*);
// };
// class WriteFileCallback<dplib::ContentTagImpl>: public dp::Callback
// {
// public:
// virtual ~WriteFileCallback();
// virtual void reportError(dp::String const&);
// virtual void invoke(dp::Unknown*);
// };
}
#endif // _DPLIB_H
include/rmsdk/dpnet.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*
File automatically generated by SOAdvancedDissector.py
More information at http://indefero.soutade.fr/p/soadvanceddissector
*/
#ifndef _DPNET_H
#define _DPNET_H
namespace dpnet {
class NetProvider
{
public:
void getProvider();
static void setProvider(dpnet::NetProvider*);
};
}
#endif // _DPNET_H
include/rmsdk/dpres.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*
File automatically generated by SOAdvancedDissector.py
More information at http://indefero.soutade.fr/p/soadvanceddissector
*/
#ifndef _DPRES_H
#define _DPRES_H
namespace dpres {
class ResourceProvider
{
public:
void getProvider();
void setProvider(dpres::ResourceProvider*);
};
}
#endif // _DPRES_H
include/rmsdk/dpsec.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*
File automatically generated by SOAdvancedDissector.py
More information at http://indefero.soutade.fr/p/soadvanceddissector
*/
#ifndef _DPSEC_H
#define _DPSEC_H
namespace dpsec {
class SecurityHandlerData
{
public:
};
}
#endif // _DPSEC_H
include/rmsdk/dptimer.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/*
File automatically generated by SOAdvancedDissector.py
More information at http://indefero.soutade.fr/p/soadvanceddissector
*/
#ifndef _DPTIMER_H
#define _DPTIMER_H
#include <dp.h>
namespace dptimer {
class Timer;
class MultiplexedTimer;
class TimerClient;
class TimerProvider;
class MultiplexedTimerProvider;
class Timer: public dp::Releasable
{
public:
virtual ~Timer();
virtual void* getInterfaceID();
virtual void release() = 0;
virtual void setTimeout(int) = 0;
virtual void cancel() = 0;
};
class MultiplexedTimer: public dptimer::Timer
{
public:
MultiplexedTimer(dptimer::TimerClient*);
virtual ~MultiplexedTimer();
virtual void* getInterfaceID();
virtual void release();
virtual void setTimeout(int);
virtual void cancel();
};
class TimerClient: public dp::Unknown
{
public:
virtual ~TimerClient();
virtual void* getInterfaceID();
virtual void timerFired(dptimer::Timer*) = 0;
};
class TimerProvider: public dp::Unknown
{
public:
virtual ~TimerProvider();
virtual void* getInterfaceID();
virtual void virtfunc24() = 0;
void getProvider();
void setProvider(dptimer::TimerProvider*);
};
class MultiplexedTimerProvider: public dptimer::TimerClient, public dptimer::TimerProvider
{
public:
MultiplexedTimerProvider();
virtual ~MultiplexedTimerProvider();
virtual void* getInterfaceID();
virtual void timerFired(dptimer::Timer*);
virtual void createTimer(dptimer::TimerClient*);
void add(dptimer::MultiplexedTimer*);
void rearm();
void remove(dptimer::MultiplexedTimer*);
};
}
#endif // _DPTIMER_H
include/rmsdk/dputils.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/*
File automatically generated by SOAdvancedDissector.py
More information at http://indefero.soutade.fr/p/soadvanceddissector
*/
#ifndef _DPUTILS_H
#define _DPUTILS_H
#include <dp.h>
#include <adept.h>
namespace dpio {
class StreamClient;
class Stream: public dp::Releasable
{
public:
virtual ~Stream();
virtual void* getInterfaceID();
virtual void release() = 0;
virtual void setStreamClient(dpio::StreamClient*) = 0;
virtual int getCapabilities() = 0;
virtual void requestInfo() = 0;
virtual void requestBytes(unsigned int, unsigned int) = 0;
virtual void reportWriteError(dp::String const&) = 0;
virtual void adjustModifiedStream();
void createDataStream(dp::String const&, dp::Data const&, dpio::StreamClient*, dp::Callback*);
void createDataURLStream(dp::String const&, dpio::StreamClient*, dp::Callback*);
static dp::Data readSynchronousStream(dpio::Stream*);
};
}
namespace dputils {
class GuardedObject;
class GuardedStream;
class GuardedObject
{
public:
GuardedObject();
virtual void release();
virtual void virtfunc12() = 0;
};
class GuardedStream: public dpio::Stream, public dputils::GuardedObject
{
public:
virtual ~GuardedStream();
virtual void release();
virtual void setStreamClient(dpio::StreamClient*);
virtual int getCapabilities() = 0;
virtual void requestInfo() = 0;
virtual void requestBytes(unsigned int, unsigned int) = 0;
virtual void reportWriteError(dp::String const&) = 0;
virtual void propertiesReady() = 0;
};
}
#endif // _DPUTILS_H
include/rmsdk/librmsdk.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
/*
File automatically generated by SOAdvancedDissector.py
More information at http://indefero.soutade.fr/p/soadvanceddissector
*/
#ifndef _LIBRMSDK_H
#define _LIBRMSDK_H
// #include <xpath.h>
#include <mdom.h>
#include <uft.h>
//#include <mrend.h>
//#include <cssparser.h>
//#include <tahoecss.h>
//#include <xda.h>
#include <adept.h>
#define WORKFLOW_AUTH_SIGN_IN 0x2
#define WORKFLOW_ADD_SIGN_IN 0x4
#define WORKFLOW_ACTIVATION 0x10
#define WORKFLOW_FULFILLMENT 0x20
#define WORKFLOW_LOAN_RETURN 0x80
#define WORKFLOW_UPDATE_LOAN 0x100
#define WORKFLOW_DOWNLOAD 0x200
#define WORKFLOW_JOIN_ACCOUNTS 0x400
#define WORKFLOW_GET_CREDENTIAL_LIST 0x800
#define WORKFLOW_NOTIFICATION 0x1000
namespace rmsdk {
adept::DRMProviderImpl* getProvider();
}
class MetroWisDOM: public mdom::DOM, public mdom::DataSink
{
public:
MetroWisDOM(MetroWisDOM&);
MetroWisDOM(MetroWisDOM&, bool);
MetroWisDOM(uft::ErrorHandler*, int);
virtual ~MetroWisDOM();
virtual void getDOMId();
virtual void getDOMCaps();
virtual void query(uft::Value const&, void*);
virtual void setElementConfigs(mdom::Node const&, mdom::ElementConfig const*, unsigned int);
virtual void setPreParser(uft::ValueParser*);
virtual mdom::Node getRoot();
virtual void getResource(uft::URL const&);
virtual void attachDOMListener(unsigned int, mdom::DOMListener*);
virtual void clearChanges();
virtual void cloneConfig();
virtual void setDOMHost(mdom::DOMHost*);
virtual void setMasterURL(uft::URL const&);
virtual void writeData(uft::URL const&, unsigned char const*, unsigned int, mdom::ParseException*, mdom::ExternalEntityResolver*);
virtual void xformsProcessorHalted();
virtual void xformsFatalError(uft::String);
};
class WisDOMTraversal;
class WisDOMTree;
class WDLinkSnapshot{};
class WDIdAttrValue{};
class WisDOM_NodeTypes{};
class WDNodeReference;
class WDNodeClass;
class WDLinkAttrValue
{
public:
WDLinkAttrValue(uft::sref<mdom::AttrConfig> const&, uft::Value const&, WisDOMTraversal*, int, WisDOMTraversal*, int);
void query(uft::Value const&, void*);
void staticInit();
void* s_descriptor;
};
class WDNodeParserContext: public uft::ParserContext
{
public:
WDNodeParserContext(mdom::Node const&, unsigned int);
virtual void resolveNSPrefix(uft::String const&);
virtual void prefixBindingsChanged();
virtual void getNodeType();
};
class WDSelectorLink
{
public:
WDSelectorLink(uft::Value const&, xpath::Expression const&, mdom::Node&, uft::sref<mdom::AttrConfig> const&);
void staticInit();
void* s_descriptor;
};
class WDStringHash
{
public:
WDStringHash(WDStringHash&);
WDStringHash(WisDOMTree*, unsigned long);
virtual ~WDStringHash();
void get(unsigned long) const;
void hash(char const*, unsigned long);
void lookup(char const*, unsigned long*, unsigned long) const;
void minimizeHash(int*);
void put(char const*);
};
class WisDOMMemory
{
public:
WisDOMMemory();
~WisDOMMemory();
void Alloc(unsigned int);
void Free(void*);
void Realloc(void*, unsigned int);
void appendCommentChars(char*, int, int);
void appendDataChars(char*, int, int, bool);
void getCommentStringBuffer(int);
void getDataStringBuffer(int);
void trimCommentChars();
void trimDataChars();
};
class WisDOMTraversal: public mdom::Traversal
{
public:
WisDOMTraversal(MetroWisDOM*, WisDOMTraversal const&);
WisDOMTraversal(MetroWisDOM*, uft::URL const&);
WisDOMTraversal(WisDOMTraversal const&, WisDOMTree*);
virtual void incRef(mdom::NodeData*);
virtual void decRef(mdom::NodeData*);
virtual void getDOM();
virtual void owner(mdom::Node*);
virtual void parent(mdom::Node*);
virtual void child(mdom::Node*, int, bool);
virtual void sibling(mdom::Node*, int, bool);
virtual void childCount(mdom::Node const*, bool);
virtual void nextLink(mdom::Node const*, unsigned int, unsigned int, mdom::Node*, uft::Value const**);
virtual void finishLinkIteration(mdom::Node const*, unsigned int, unsigned int);
virtual void create(mdom::Node*, int, uft::Value const&);
virtual void clone(mdom::Node*, bool);
virtual void insertBefore(mdom::Node const*, mdom::Node const*, mdom::Node const*);
virtual void remove(mdom::Node const*);
virtual void getNodeType(mdom::Node const*);
virtual uft::String getNodeName(mdom::Node const*);
virtual uft::Value getNodeValue(mdom::Node const*, unsigned int, unsigned int);
virtual void changeNodeValue(mdom::Node const*, unsigned int, unsigned int, uft::Value const&);
virtual void resolvePrefix(mdom::Node const*, uft::String const&);
virtual void getBaseURL(mdom::Node const*);
virtual void nextAttribute(mdom::Node const*, unsigned int, unsigned int, uft::Value const**, uft::Value const**);
virtual void finishAttributeIteration(mdom::Node const*, unsigned int, unsigned int);
virtual void getAttribute(mdom::Node const*, uft::Value const&);
virtual void setAttribute(mdom::Node const*, uft::Value const&, uft::Value const&);
virtual void compareNodes(mdom::Node const*, mdom::Node const*);
virtual void evaluate(xpath::Expression const&, mdom::Node const*, xpath::Context*, xpath::ResultType);
virtual void iterate(xpath::Expression const&, xpath::Context*, mdom::Node*);
virtual void finishIteration(xpath::Expression const&, xpath::Context*);
virtual void getChangeFlags(mdom::Node const*);
virtual void invalidate(mdom::Node const*, unsigned int);
virtual void iterateChangedAttributes(mdom::Node const*, unsigned int, uft::Value*, uft::Value*);
virtual void finishChangedAttributeIteration(mdom::Node const*, unsigned int);
virtual void iterateNodeValueChanges(mdom::Node const*, unsigned int, mdom::TextChangeRecord*);
virtual void finishNodeValueChangeIteration(mdom::Node const*, unsigned int);
virtual void iterateRemovedChildren(mdom::Node const*, unsigned int, mdom::RemovedChildRecord*);
virtual void finishRemovedChildIteration(mdom::Node const*, unsigned int);
virtual void getAttachment(mdom::Node const*, uft::Value const&);
virtual void setAttachment(mdom::Node const*, uft::Value const&, uft::Value const&);
virtual void getAttachment(uft::Value const&);
virtual void setAttachment(uft::Value const&, uft::Value const&);
virtual void getReference(mdom::Node const*, bool);
virtual void destroy();
virtual ~WisDOMTraversal();
virtual void nextNamespaceDecl(mdom::Node const*, unsigned int, unsigned int, uft::Value const**);
virtual void finishNamespaceIteration(mdom::Node const*, unsigned int, unsigned int);
void addRulesToList(mdom::Node const*, uft::Vector const&, uft::Value const&);
void afterInsertion(int);
void afterRemoval(int);
void afterShadowInsertion(int, uft::Dict&);
void allocLinkSnap();
void beforeInsertion(int, uft::Dict&);
void beforeRemoval(int, uft::Dict&);
void cacheChangedAttribute(int, uft::Value const&, uft::Value const&);
void cacheChangedValue(int, uft::Value const&);
void characterData(char const*, int);
void clearChangeCaches();
void clearChanges();
void cloneChildren(int, int, int, int);
void cloneNode(int);
void comment(char const*, bool);
void createElementWithQName(uft::QName const&, char const**, bool);
void createSelectorLink(mdom::Node*, mdom::Reference, uft::Value const&);
void createTextNode(bool);
void deleteLinkSnap(WDLinkSnapshot*);
void detachChildren(int, int, int);
void detachNode(int);
void docTypeName(char const*);
void docTypePublicID(char const*);
void docTypeSystemID(char const*);
void endCDATASection();
void endElement(char const*);
void endNamespace(char const*);
void ensureNSStackCapacity();
void filterAndAddRulesToList(mdom::Node const*, uft::Vector const&, uft::Value const&);
void findDOMInsertIndex(int, int, int);
void findFragInsertIndex(int, int, int, int*, int*, int*);
void findLinkAttr(xpath::Expression const&, int, uft::sref<WDLinkAttrValue> const&);
void findUnattachedNodeIdx(int, int*, int*);
void getAttributeByName(int, uft::Value const&);
void getAttributeConfig(int, uft::Value const&);
void getBranchRoot(int);
void getChangedValue(int, unsigned int);
void getDOMTree();
void getIdAttr(int);
void getIdAttrFromMap(int, uft::String const&);
void getIdMap();
void getLinkCache(int);
void getLocalizedIdMap(int);
void getNode(WDNodeReference*);
void getRoot();
void getSelectorLink(int);
void initDocumentModel(bool);
void internalEntity(char const*, char const*, int);
void newAttribute(int, uft::Value const&, uft::Value const&);
void parsedAttribute(int, WDNodeClass*, uft::Value const&, uft::Value const&);
void processSimpleMatch(xpath::SimpleMatch const&, uft::Value const&, bool);
void processingInstruction(char const*, char const*, bool);
void reconfigureAttribute(mdom::Node*, int, int, uft::QName const&, WDNodeClass*, bool);
void reconfigureElement(mdom::Node*, int, WDNodeClass*, bool);
void registerId(uft::Dict&, uft::sref<WDIdAttrValue> const&);
void registerLink(int, uft::sref<WDLinkAttrValue> const&);
void remapFromDocIndex(int);
void removeAttribute(int, int);
void removeSelectorLink(mdom::Node*, mdom::Reference, uft::Value const&);
void resolvePrefixLocal(int, uft::String const&);
void setDirtyBits(int, unsigned int);
void startCDATASection();
void startElement(char const*, char const**, bool);
void startNamespace(char const*, char const*);
void staticInit();
void unregisterId(uft::Dict&, uft::sref<WDIdAttrValue> const&);
void unregisterLink(int, uft::sref<WDLinkAttrValue> const&);
void updateSelectorLinks();
void writeData(unsigned char const*, unsigned int, mdom::ParseException*, mdom::ExternalEntityResolver*);
void* s_descriptor;
};
class WisDOMTree
{
public:
WisDOMTree(WisDOMTraversal*, int);
WisDOMTree(WisDOMTree&);
WisDOMTree(int);
~WisDOMTree();
void addAttribute(int, uft::Value const&, uft::Value const&);
void addDynamicAttribute(int, uft::Value const&, uft::Value const&, int);
void addNamespace(int, uft::Value const&);
void addNode(WisDOM_NodeTypes, int, int, int, uft::Value const&, bool);
void appendHashKey(char const*, int, int);
void cacheUnattachedNode(int);
void clearChanges();
void closeElements(_IO_FILE*, int);
void copyAttribute(int, uft::Value, uft::Value);
void copyNode(int);
void ensureAttributeCapacity();
void ensureDynamicAttributeCapacity();
void ensureNamespaceCapacity();
void ensureNodeCapacity();
void ensurePriorIndex();
void freePriorIndex();
void getRoot();
void initDocumentModel(bool);
void insertUnattachedNode(int, int, int);
void isUsingNamespaces();
void makePriorIndex();
void makeSerialIndex();
void serializeAttribute(_IO_FILE*, uft::Value, uft::Value);
void serializeComment(_IO_FILE*, int);
void serializeDOM(_IO_FILE*);
void serializeElement(_IO_FILE*, int);
void serializeNamespace(_IO_FILE*, int);
void serializePI(_IO_FILE*, int);
void serializeText(_IO_FILE*, int);
void setTraversal(WisDOMTraversal*);
void writeData(unsigned char const*, unsigned int, mdom::ParseException*, mdom::ExternalEntityResolver*);
};
#endif // _LIBRMSDK_H
include/rmsdk/mdom.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
/*
File automatically generated by SOAdvancedDissector.py
More information at http://indefero.soutade.fr/p/soadvanceddissector
*/
#ifndef _MDOM_H
#define _MDOM_H
#include <xpath.h>
#include <uft.h>
namespace mdom {
class AttrConfig;
class NameValueIterator;
class AttributeIterator;
class Traversal;
class TearOffNodeTraversal;
class AttributeNodeTraversal;
class AttributeValueTraversal;
class DOM;
class DOMHost;
class DOMListener;
class DOMListenerMultiplex;
class DocumentHandler;
class DOMSerializer;
class DataSink;
class DelegatingDOM;
class DelegatingDOMLink;
class LinkAccessor;
class DelegatingDOMLinkAccessor;
class DelegatingDOMNodeRef;
class DelegatingTraversal;
class ElementConfig;
class ExternalEntityResolver;
class GenericAttributeValue;
class InfoSetHasher;
class Link;
class NamespaceNodeTraversal;
class Node;
class NodeData;
class NodeIterator;
class NodeLine;
class NodeLineTranslationIterator;
class NodeTranslationIterator;
class Node_firstChild;
class Node_firstChildElement;
class Node_lastChildElement;
class Node_nextSibling;
class ParseException;
class Reference;
class RemovedChildRecord;
class ShiftedNodeLine;
class SingleNodeLineTranslationIterator;
class SourceNodeLine;
class TearOffNodeReference;
class TextChangeRecord;
class TraversalRef;
class AttrConfig
{
public:
AttrConfig(uft::QName const&, uft::ValueParser const*, unsigned int, unsigned int, uft::Value const&, unsigned int);
void getCanonicalName() const;
void setFlags(unsigned int);
void staticInit();
void* s_descriptor;
};
class NameValueIterator
{
public:
virtual ~NameValueIterator();
virtual void next(uft::Value*, uft::Value*) = 0;
};
class AttributeIterator: public mdom::NameValueIterator
{
public:
AttributeIterator(mdom::Node const&);
virtual ~AttributeIterator();
virtual void next(uft::Value*, uft::Value*);
};
class Traversal
{
public:
virtual void incRef(mdom::NodeData*) = 0;
virtual void decRef(mdom::NodeData*) = 0;
virtual void getDOM() = 0;
virtual void owner(mdom::Node*) = 0;
virtual void parent(mdom::Node*) = 0;
virtual void child(mdom::Node*, int, bool) = 0;
virtual void sibling(mdom::Node*, int, bool) = 0;
virtual void attributeNode(mdom::Node*, uft::Value const&);
virtual void namespaceNode(mdom::Node*, uft::Value const&);
virtual void childCount(mdom::Node const*, bool);
virtual void getChildrenCountsToNode(mdom::Node const*, mdom::Node const*, unsigned int*, unsigned int*);
virtual void getChildrenCountsToElement(mdom::Node const*, uft::String, unsigned int*, unsigned int*, mdom::Node*, unsigned int);
virtual int iterateBranch(mdom::Node const*, mdom::Node*, unsigned int);
virtual void iterateDirtyBranch(mdom::Node const*, mdom::Node*, unsigned int);
virtual void nextLink(mdom::Node const*, unsigned int, unsigned int, mdom::Node*, uft::Value const**) = 0;
virtual void finishLinkIteration(mdom::Node const*, unsigned int, unsigned int) = 0;
virtual void create(mdom::Node*, int, uft::Value const&) = 0;
virtual void clone(mdom::Node*, bool) = 0;
virtual void import(mdom::Node*, mdom::Node const*, bool);
virtual void insertBefore(mdom::Node const*, mdom::Node const*, mdom::Node const*) = 0;
virtual void remove(mdom::Node const*) = 0;
virtual void getNodeType(mdom::Node const*) = 0;
virtual uft::String getNodeName(mdom::Node const*) = 0;
virtual uft::Value getNodeValue(mdom::Node const*, unsigned int, unsigned int) = 0;
virtual void changeNodeValue(mdom::Node const*, unsigned int, unsigned int, uft::Value const&) = 0;
virtual void resolvePrefix(mdom::Node const*, uft::String const&) = 0;
virtual void getBaseURL(mdom::Node const*) = 0;
virtual void nextAttribute(mdom::Node const*, unsigned int, unsigned int, uft::Value const**, uft::Value const**) = 0;
virtual void finishAttributeIteration(mdom::Node const*, unsigned int, unsigned int) = 0;
virtual void getAttribute(mdom::Node const*, uft::Value const&) = 0;
virtual void setAttribute(mdom::Node const*, uft::Value const&, uft::Value const&) = 0;
virtual void compareNodes(mdom::Node const*, mdom::Node const*);
virtual void evaluate(xpath::Expression const&, mdom::Node const*, xpath::Context*, xpath::ResultType);
virtual void iterate(xpath::Expression const&, xpath::Context*, mdom::Node*);
virtual void finishIteration(xpath::Expression const&, xpath::Context*);
virtual void getChangeFlags(mdom::Node const*) = 0;
virtual void invalidate(mdom::Node const*, unsigned int) = 0;
virtual void iterateChangedAttributes(mdom::Node const*, unsigned int, uft::Value*, uft::Value*) = 0;
virtual void finishChangedAttributeIteration(mdom::Node const*, unsigned int) = 0;
virtual void iterateNodeValueChanges(mdom::Node const*, unsigned int, mdom::TextChangeRecord*) = 0;
virtual void finishNodeValueChangeIteration(mdom::Node const*, unsigned int) = 0;
virtual void iterateRemovedChildren(mdom::Node const*, unsigned int, mdom::RemovedChildRecord*) = 0;
virtual void finishRemovedChildIteration(mdom::Node const*, unsigned int) = 0;
virtual void getAttachment(mdom::Node const*, uft::Value const&) = 0;
virtual void setAttachment(mdom::Node const*, uft::Value const&, uft::Value const&) = 0;
virtual void getCacheID(mdom::Node const*);
virtual void getAttachment(uft::Value const&) = 0;
virtual void setAttachment(uft::Value const&, uft::Value const&) = 0;
virtual void getReference(mdom::Node const*, bool) = 0;
virtual void destroy() = 0;
virtual ~Traversal();
void addRef();
void release();
};
class TearOffNodeTraversal: public mdom::Traversal
{
public:
TearOffNodeTraversal(mdom::Node const&);
virtual void incRef(mdom::NodeData*);
virtual void decRef(mdom::NodeData*);
virtual void getDOM();
virtual void owner(mdom::Node*);
virtual void parent(mdom::Node*);
virtual void child(mdom::Node*, int, bool);
virtual void sibling(mdom::Node*, int, bool);
virtual void attributeNode(mdom::Node*, uft::Value const&);
virtual void namespaceNode(mdom::Node*, uft::Value const&);
virtual void childCount(mdom::Node const*, bool);
virtual void getChildrenCountsToNode(mdom::Node const*, mdom::Node const*, unsigned int*, unsigned int*);
virtual void getChildrenCountsToElement(mdom::Node const*, uft::String, unsigned int*, unsigned int*, mdom::Node*, unsigned int);
virtual int iterateBranch(mdom::Node const*, mdom::Node*, unsigned int);
virtual void iterateDirtyBranch(mdom::Node const*, mdom::Node*, unsigned int);
virtual void nextLink(mdom::Node const*, unsigned int, unsigned int, mdom::Node*, uft::Value const**);
virtual void finishLinkIteration(mdom::Node const*, unsigned int, unsigned int);
virtual void create(mdom::Node*, int, uft::Value const&);
virtual void clone(mdom::Node*, bool);
virtual void import(mdom::Node*, mdom::Node const*, bool);
virtual void insertBefore(mdom::Node const*, mdom::Node const*, mdom::Node const*);
virtual void remove(mdom::Node const*);
virtual void getNodeType(mdom::Node const*);
virtual uft::String getNodeName(mdom::Node const*);
virtual uft::Value getNodeValue(mdom::Node const*, unsigned int, unsigned int);
virtual void changeNodeValue(mdom::Node const*, unsigned int, unsigned int, uft::Value const&);
virtual void resolvePrefix(mdom::Node const*, uft::String const&);
virtual void getBaseURL(mdom::Node const*);
virtual void nextAttribute(mdom::Node const*, unsigned int, unsigned int, uft::Value const**, uft::Value const**);
virtual void finishAttributeIteration(mdom::Node const*, unsigned int, unsigned int);
virtual void getAttribute(mdom::Node const*, uft::Value const&);
virtual void setAttribute(mdom::Node const*, uft::Value const&, uft::Value const&);
virtual void compareNodes(mdom::Node const*, mdom::Node const*);
virtual void evaluate(xpath::Expression const&, mdom::Node const*, xpath::Context*, xpath::ResultType);
virtual void iterate(xpath::Expression const&, xpath::Context*, mdom::Node*);
virtual void finishIteration(xpath::Expression const&, xpath::Context*);
virtual void getChangeFlags(mdom::Node const*);
virtual void invalidate(mdom::Node const*, unsigned int);
virtual void iterateChangedAttributes(mdom::Node const*, unsigned int, uft::Value*, uft::Value*);
virtual void finishChangedAttributeIteration(mdom::Node const*, unsigned int);
virtual void iterateNodeValueChanges(mdom::Node const*, unsigned int, mdom::TextChangeRecord*);
virtual void finishNodeValueChangeIteration(mdom::Node const*, unsigned int);
virtual void iterateRemovedChildren(mdom::Node const*, unsigned int, mdom::RemovedChildRecord*);
virtual void finishRemovedChildIteration(mdom::Node const*, unsigned int);
virtual void getAttachment(mdom::Node const*, uft::Value const&);
virtual void setAttachment(mdom::Node const*, uft::Value const&, uft::Value const&);
virtual void getCacheID(mdom::Node const*);
virtual void getAttachment(uft::Value const&);
virtual void setAttachment(uft::Value const&, uft::Value const&);
virtual void getReference(mdom::Node const*, bool);
virtual void destroy();
virtual ~TearOffNodeTraversal();
virtual void getKey();
virtual void getAttKey();
void createTearOffNode(mdom::Node const&, uft::Value const&, unsigned int);
void staticInit();
void* s_descriptor;
};
class AttributeNodeTraversal: public mdom::TearOffNodeTraversal
{
public:
AttributeNodeTraversal(mdom::Node const&);
virtual void incRef(mdom::NodeData*);
virtual void decRef(mdom::NodeData*);
virtual void getDOM();
virtual void owner(mdom::Node*);
virtual void parent(mdom::Node*);
virtual void child(mdom::Node*, int, bool);
virtual void sibling(mdom::Node*, int, bool);
virtual void attributeNode(mdom::Node*, uft::Value const&);
virtual void namespaceNode(mdom::Node*, uft::Value const&);
virtual void childCount(mdom::Node const*, bool);
virtual void getChildrenCountsToNode(mdom::Node const*, mdom::Node const*, unsigned int*, unsigned int*);
virtual void getChildrenCountsToElement(mdom::Node const*, uft::String, unsigned int*, unsigned int*, mdom::Node*, unsigned int);
virtual int iterateBranch(mdom::Node const*, mdom::Node*, unsigned int);
virtual void iterateDirtyBranch(mdom::Node const*, mdom::Node*, unsigned int);
virtual void nextLink(mdom::Node const*, unsigned int, unsigned int, mdom::Node*, uft::Value const**);
virtual void finishLinkIteration(mdom::Node const*, unsigned int, unsigned int);
virtual void create(mdom::Node*, int, uft::Value const&);
virtual void clone(mdom::Node*, bool);
virtual void import(mdom::Node*, mdom::Node const*, bool);
virtual void insertBefore(mdom::Node const*, mdom::Node const*, mdom::Node const*);
virtual void remove(mdom::Node const*);
virtual void getNodeType(mdom::Node const*);
virtual uft::String getNodeName(mdom::Node const*);
virtual uft::Value getNodeValue(mdom::Node const*, unsigned int, unsigned int);
virtual void changeNodeValue(mdom::Node const*, unsigned int, unsigned int, uft::Value const&);
virtual void resolvePrefix(mdom::Node const*, uft::String const&);
virtual void getBaseURL(mdom::Node const*);
virtual void nextAttribute(mdom::Node const*, unsigned int, unsigned int, uft::Value const**, uft::Value const**);
virtual void finishAttributeIteration(mdom::Node const*, unsigned int, unsigned int);
virtual void getAttribute(mdom::Node const*, uft::Value const&);
virtual void setAttribute(mdom::Node const*, uft::Value const&, uft::Value const&);
virtual void compareNodes(mdom::Node const*, mdom::Node const*);
virtual void evaluate(xpath::Expression const&, mdom::Node const*, xpath::Context*, xpath::ResultType);
virtual void iterate(xpath::Expression const&, xpath::Context*, mdom::Node*);
virtual void finishIteration(xpath::Expression const&, xpath::Context*);
virtual void getChangeFlags(mdom::Node const*);
virtual void invalidate(mdom::Node const*, unsigned int);
virtual void iterateChangedAttributes(mdom::Node const*, unsigned int, uft::Value*, uft::Value*);
virtual void finishChangedAttributeIteration(mdom::Node const*, unsigned int);
virtual void iterateNodeValueChanges(mdom::Node const*, unsigned int, mdom::TextChangeRecord*);
virtual void finishNodeValueChangeIteration(mdom::Node const*, unsigned int);
virtual void iterateRemovedChildren(mdom::Node const*, unsigned int, mdom::RemovedChildRecord*);
virtual void finishRemovedChildIteration(mdom::Node const*, unsigned int);
virtual void getAttachment(mdom::Node const*, uft::Value const&);
virtual void setAttachment(mdom::Node const*, uft::Value const&, uft::Value const&);
virtual void getCacheID(mdom::Node const*);
virtual void getAttachment(uft::Value const&);
virtual void setAttachment(uft::Value const&, uft::Value const&);
virtual void getReference(mdom::Node const*, bool);
virtual void destroy();
virtual ~AttributeNodeTraversal();
virtual void getKey();
virtual void getAttKey();
};
class AttributeValueTraversal: public mdom::TearOffNodeTraversal
{
public:
AttributeValueTraversal(mdom::Node const&);
virtual void incRef(mdom::NodeData*);
virtual void decRef(mdom::NodeData*);
virtual void getDOM();
virtual void owner(mdom::Node*);
virtual void parent(mdom::Node*);
virtual void child(mdom::Node*, int, bool);
virtual void sibling(mdom::Node*, int, bool);
virtual void attributeNode(mdom::Node*, uft::Value const&);
virtual void namespaceNode(mdom::Node*, uft::Value const&);
virtual void childCount(mdom::Node const*, bool);
virtual void getChildrenCountsToNode(mdom::Node const*, mdom::Node const*, unsigned int*, unsigned int*);
virtual void getChildrenCountsToElement(mdom::Node const*, uft::String, unsigned int*, unsigned int*, mdom::Node*, unsigned int);
virtual int iterateBranch(mdom::Node const*, mdom::Node*, unsigned int);
virtual void iterateDirtyBranch(mdom::Node const*, mdom::Node*, unsigned int);
virtual void nextLink(mdom::Node const*, unsigned int, unsigned int, mdom::Node*, uft::Value const**);
virtual void finishLinkIteration(mdom::Node const*, unsigned int, unsigned int);
virtual void create(mdom::Node*, int, uft::Value const&);
virtual void clone(mdom::Node*, bool);
virtual void import(mdom::Node*, mdom::Node const*, bool);
virtual void insertBefore(mdom::Node const*, mdom::Node const*, mdom::Node const*);
virtual void remove(mdom::Node const*);
virtual void getNodeType(mdom::Node const*);
virtual uft::String getNodeName(mdom::Node const*);
virtual uft::Value getNodeValue(mdom::Node const*, unsigned int, unsigned int);
virtual void changeNodeValue(mdom::Node const*, unsigned int, unsigned int, uft::Value const&);
virtual void resolvePrefix(mdom::Node const*, uft::String const&);
virtual void getBaseURL(mdom::Node const*);
virtual void nextAttribute(mdom::Node const*, unsigned int, unsigned int, uft::Value const**, uft::Value const**);
virtual void finishAttributeIteration(mdom::Node const*, unsigned int, unsigned int);
virtual void getAttribute(mdom::Node const*, uft::Value const&);
virtual void setAttribute(mdom::Node const*, uft::Value const&, uft::Value const&);
virtual void compareNodes(mdom::Node const*, mdom::Node const*);
virtual void evaluate(xpath::Expression const&, mdom::Node const*, xpath::Context*, xpath::ResultType);
virtual void iterate(xpath::Expression const&, xpath::Context*, mdom::Node*);
virtual void finishIteration(xpath::Expression const&, xpath::Context*);
virtual void getChangeFlags(mdom::Node const*);
virtual void invalidate(mdom::Node const*, unsigned int);
virtual void iterateChangedAttributes(mdom::Node const*, unsigned int, uft::Value*, uft::Value*);
virtual void finishChangedAttributeIteration(mdom::Node const*, unsigned int);
virtual void iterateNodeValueChanges(mdom::Node const*, unsigned int, mdom::TextChangeRecord*);
virtual void finishNodeValueChangeIteration(mdom::Node const*, unsigned int);
virtual void iterateRemovedChildren(mdom::Node const*, unsigned int, mdom::RemovedChildRecord*);
virtual void finishRemovedChildIteration(mdom::Node const*, unsigned int);
virtual void getAttachment(mdom::Node const*, uft::Value const&);
virtual void setAttachment(mdom::Node const*, uft::Value const&, uft::Value const&);
virtual void getCacheID(mdom::Node const*);
virtual void getAttachment(uft::Value const&);
virtual void setAttachment(uft::Value const&, uft::Value const&);
virtual void getReference(mdom::Node const*, bool);
virtual void destroy();
virtual ~AttributeValueTraversal();
virtual void getKey();
virtual void getAttKey();
};
class DOM
{
public:
DOM(uft::ErrorHandler*);
virtual ~DOM();
virtual void getDOMId() = 0;
virtual void getDOMCaps() = 0;
virtual void query(uft::Value const&, void*) = 0;
virtual void setElementConfigs(mdom::Node const&, mdom::ElementConfig const*, unsigned int) = 0;
virtual void setPreParser(uft::ValueParser*) = 0;
virtual mdom::Node getRoot() = 0;
virtual void getResource(uft::URL const&) = 0;
virtual void attachDOMListener(unsigned int, mdom::DOMListener*) = 0;
virtual void getErrorHandler();
virtual void clearChanges() = 0;
virtual void cloneConfig() = 0;
virtual void setDOMHost(mdom::DOMHost*) = 0;
};
class DOMHost
{
public:
virtual ~DOMHost();
virtual void requestClearChanges(mdom::Node const&) = 0;
virtual void requestResource(uft::URL const&) = 0;
virtual void showErrorMessage(uft::String&) = 0;
};
class DOMListener
{
public:
virtual ~DOMListener();
virtual void created(mdom::Node const*) = 0;
virtual void inserting(mdom::Node const*, mdom::Node const*) = 0;
virtual void inserted(mdom::Node const*, mdom::Node const*) = 0;
virtual void removing(mdom::Node const*, mdom::Node const*) = 0;
virtual void removed(mdom::Node const*, mdom::Node const*) = 0;
virtual void changingNodeValue(mdom::Node const*, unsigned int, unsigned int, uft::Value const&) = 0;
virtual void wantChangedNodeValueCall(mdom::Node const*) = 0;
virtual void changedNodeValue(mdom::Node const*, unsigned int, unsigned int, uft::Value const&) = 0;
virtual void changingAttribute(mdom::Node const*, uft::Value const&, uft::Value const&) = 0;
virtual void wantChangedAttributeCall(mdom::Node const*, uft::Value const&) = 0;
virtual void changedAttribute(mdom::Node const*, uft::Value const&, uft::Value const&, uft::Value const&) = 0;
virtual void changingLink(mdom::Node const*, uft::Value const&, mdom::Node const*, mdom::Node const*) = 0;
virtual void wantChangedLinkCall(mdom::Node const*, uft::Value const&) = 0;
virtual void changedLink(mdom::Node const*, uft::Value const&, mdom::Node const*, mdom::Node const*) = 0;
virtual void changingElementConfig(mdom::Node const*, unsigned int) = 0;
virtual void changedElementConfig(mdom::Node const*) = 0;
virtual void changedBranch(mdom::Node const*) = 0;
};
class DOMListenerMultiplex
{
public:
DOMListenerMultiplex();
DOMListenerMultiplex(mdom::DOMListenerMultiplex const&);
~DOMListenerMultiplex();
void attachDOMListener(unsigned int, mdom::DOMListener*);
void changedAttribute(mdom::Node const*, uft::Value const&, uft::Value const&, uft::Value const&);
void changedBranch(mdom::Node const*);
void changedElementConfig(mdom::Node const*);
// void changedLink(mdom::Node const*, uft::sref<mdom::AttrConfig> const&, mdom::Node const*, mdom::Node const*);
void changedNodeValue(mdom::Node const*, unsigned int, unsigned int, uft::Value const&);
void changingAttribute(mdom::Node const*, uft::Value const&, uft::Value const&);
void changingElementConfig(mdom::Node const*, unsigned int);
// void changingLink(mdom::Node const*, uft::sref<mdom::AttrConfig> const&, mdom::Node const*, mdom::Node const*);
void changingNodeValue(mdom::Node const*, unsigned int, unsigned int, uft::Value const&);
void created(mdom::Node const*);
void inserted(mdom::Node const*, mdom::Node const*);
void inserting(mdom::Node const*, mdom::Node const*);
void removed(mdom::Node const*, mdom::Node const*);
void removing(mdom::Node const*, mdom::Node const*);
void wantChangedAttributeCall(mdom::Node const*, uft::Value const&);
// void wantChangedLinkCall(mdom::Node const*, uft::sref<mdom::AttrConfig> const&);
void wantChangedNodeValueCall(mdom::Node const*);
};
class DocumentHandler
{
public:
DocumentHandler();
virtual ~DocumentHandler();
virtual bool characters(uft::Value const&) = 0;
virtual bool comment(uft::Value const&) = 0;
virtual bool endDocument() = 0;
virtual bool endElement(uft::Value const&, uft::Value const&, uft::Value const&) = 0;
virtual bool endEntity(uft::Value const&) = 0;
virtual bool processingInstruction(uft::Value const&, uft::Value const&) = 0;
virtual bool startDocument() = 0;
virtual bool startElement(mdom::Node const&, uft::Value const&, uft::Value const&, uft::Value const&, mdom::NameValueIterator*) = 0;
virtual bool startEntity(uft::Value const&) = 0;
};
class DOMSerializer: public mdom::DocumentHandler
{
public:
DOMSerializer();
virtual ~DOMSerializer();
virtual bool characters(uft::Value const&);
virtual bool comment(uft::Value const&);
virtual bool endDocument();
virtual bool endElement(uft::Value const&, uft::Value const&, uft::Value const&);
virtual bool endEntity(uft::Value const&);
virtual bool processingInstruction(uft::Value const&, uft::Value const&);
virtual bool startDocument();
virtual bool startElement(mdom::Node const&, uft::Value const&, uft::Value const&, uft::Value const&, mdom::NameValueIterator*);
virtual bool startEntity(uft::Value const&);
virtual bool getOutputString();
void appendValue(uft::Value const&, unsigned int);
void lookupAutogenNSStack(uft::String&, uft::String&);
void lookupNSStack(uft::String&, uft::String&);
};
class DataSink
{
public:
virtual void virtfunc8() = 0;
virtual void virtfunc12() = 0;
};
class DelegatingDOM: public mdom::DOM
{
public:
DelegatingDOM(mdom::DOM*);
DelegatingDOM(mdom::Node const&);
virtual ~DelegatingDOM();
virtual void getDOMId() = 0;
virtual void getDOMCaps() = 0;
virtual void query(uft::Value const&, void*) = 0;
virtual void setElementConfigs(mdom::Node const&, mdom::ElementConfig const*, unsigned int);
virtual void setPreParser(uft::ValueParser*);
virtual mdom::Node getRoot();
virtual void getResource(uft::URL const&);
virtual void attachDOMListener(unsigned int, mdom::DOMListener*);
virtual void getErrorHandler();
virtual void clearChanges();
virtual void cloneConfig();
virtual void setDOMHost(mdom::DOMHost*);
virtual void baseNode(mdom::Node const&);
virtual void traversalSwitch(mdom::Node*);
virtual void traversalSwitch(mdom::Node*, uft::Value const&);
virtual void createDelegateFor(mdom::Node*, uft::Value const&);
virtual void destroyDelegate(mdom::DelegatingTraversal*);
virtual void getDefaultKey() const;
void refreshBase(mdom::Node const&);
void registerRef(mdom::DelegatingDOMNodeRef*);
void translateNode(mdom::Node const&);
void translateNode(mdom::Node const&, uft::Value const&);
void unregisterRef(mdom::DelegatingDOMNodeRef*);
};
class DelegatingDOMLink
{
public:
void query(uft::Value const&, void*);
void staticInit();
void toString() const;
void* s_descriptor;
};
class LinkAccessor
{
public:
virtual void getFirstLinkedNode(uft::Value const&, mdom::Node const&);
virtual void iterateLinkedNodes(uft::Value const&, mdom::Node const&, unsigned int*);
virtual void finishLinkedNodeIteration(uft::Value const&, mdom::Node const&, unsigned int);
void* s_instance;
};
class DelegatingDOMLinkAccessor: public mdom::LinkAccessor
{
public:
virtual void getFirstLinkedNode(uft::Value const&, mdom::Node const&);
virtual void iterateLinkedNodes(uft::Value const&, mdom::Node const&, unsigned int*);
virtual void finishLinkedNodeIteration(uft::Value const&, mdom::Node const&, unsigned int);
void* s_instance;
};
class DelegatingDOMNodeRef
{
public:
DelegatingDOMNodeRef(mdom::DelegatingDOM*, mdom::Reference const&, uft::Value const&);
~DelegatingDOMNodeRef();
void query(uft::Value const&, void*);
void staticInit();
void toString() const;
void* s_descriptor;
};
class DelegatingTraversal: public mdom::Traversal
{
public:
DelegatingTraversal(mdom::Traversal*, mdom::DelegatingDOM*, uft::Value const&);
virtual void incRef(mdom::NodeData*);
virtual void decRef(mdom::NodeData*);
virtual void getDOM();
virtual void owner(mdom::Node*);
virtual void parent(mdom::Node*);
virtual void child(mdom::Node*, int, bool);
virtual void sibling(mdom::Node*, int, bool);
virtual void attributeNode(mdom::Node*, uft::Value const&);
virtual void namespaceNode(mdom::Node*, uft::Value const&);
virtual void childCount(mdom::Node const*, bool);
virtual void getChildrenCountsToNode(mdom::Node const*, mdom::Node const*, unsigned int*, unsigned int*);
virtual void getChildrenCountsToElement(mdom::Node const*, uft::String, unsigned int*, unsigned int*, mdom::Node*, unsigned int);
virtual int iterateBranch(mdom::Node const*, mdom::Node*, unsigned int);
virtual void iterateDirtyBranch(mdom::Node const*, mdom::Node*, unsigned int);
virtual void nextLink(mdom::Node const*, unsigned int, unsigned int, mdom::Node*, uft::Value const**);
virtual void finishLinkIteration(mdom::Node const*, unsigned int, unsigned int);
virtual void create(mdom::Node*, int, uft::Value const&);
virtual void clone(mdom::Node*, bool);
virtual void import(mdom::Node*, mdom::Node const*, bool);
virtual void insertBefore(mdom::Node const*, mdom::Node const*, mdom::Node const*);
virtual void remove(mdom::Node const*);
virtual void getNodeType(mdom::Node const*);
virtual uft::String getNodeName(mdom::Node const*);
virtual uft::Value getNodeValue(mdom::Node const*, unsigned int, unsigned int);
virtual void changeNodeValue(mdom::Node const*, unsigned int, unsigned int, uft::Value const&);
virtual void resolvePrefix(mdom::Node const*, uft::String const&);
virtual void getBaseURL(mdom::Node const*);
virtual void nextAttribute(mdom::Node const*, unsigned int, unsigned int, uft::Value const**, uft::Value const**);
virtual void finishAttributeIteration(mdom::Node const*, unsigned int, unsigned int);
virtual void getAttribute(mdom::Node const*, uft::Value const&);
virtual void setAttribute(mdom::Node const*, uft::Value const&, uft::Value const&);
virtual void compareNodes(mdom::Node const*, mdom::Node const*);
virtual void evaluate(xpath::Expression const&, mdom::Node const*, xpath::Context*, xpath::ResultType);
virtual void iterate(xpath::Expression const&, xpath::Context*, mdom::Node*);
virtual void finishIteration(xpath::Expression const&, xpath::Context*);
virtual void getChangeFlags(mdom::Node const*);
virtual void invalidate(mdom::Node const*, unsigned int);
virtual void iterateChangedAttributes(mdom::Node const*, unsigned int, uft::Value*, uft::Value*);
virtual void finishChangedAttributeIteration(mdom::Node const*, unsigned int);
virtual void iterateNodeValueChanges(mdom::Node const*, unsigned int, mdom::TextChangeRecord*);
virtual void finishNodeValueChangeIteration(mdom::Node const*, unsigned int);
virtual void iterateRemovedChildren(mdom::Node const*, unsigned int, mdom::RemovedChildRecord*);
virtual void finishRemovedChildIteration(mdom::Node const*, unsigned int);
virtual void getAttachment(mdom::Node const*, uft::Value const&);
virtual void setAttachment(mdom::Node const*, uft::Value const&, uft::Value const&);
virtual void getCacheID(mdom::Node const*);
virtual void getAttachment(uft::Value const&);
virtual void setAttachment(uft::Value const&, uft::Value const&);
virtual void getReference(mdom::Node const*, bool);
virtual void destroy();
virtual ~DelegatingTraversal();
virtual void traversalSwitch(mdom::Node*);
virtual void traversalSwitchForResource(mdom::Node*, mdom::Node const&);
};
class ElementConfig
{
public:
};
class ExternalEntityResolver
{
public:
virtual void getExternalEntity(uft::String const&, uft::URL const&) = 0;
};
class GenericAttributeValue
{
public:
void staticInit();
void* s_descriptor;
};
class InfoSetHasher
{
public:
InfoSetHasher();
~InfoSetHasher();
virtual void update(unsigned char const*, unsigned int) = 0;
void flushText();
void hashInfoset(mdom::Node const&);
void updateStr(char const*, unsigned int);
void updateStr(uft::String const&);
};
class Link
{
public:
void finishLinkedNodeIteration(mdom::Node const&, unsigned int) const;
void getFirstLinkedNode(mdom::Node const&) const;
void getLinkAccessor() const;
void isInstanceOf(uft::Value const&);
void iterateLinkedNodes(mdom::Node const&, unsigned int*) const;
};
class NamespaceNodeTraversal: public mdom::TearOffNodeTraversal
{
public:
NamespaceNodeTraversal(mdom::Node const&);
virtual void incRef(mdom::NodeData*);
virtual void decRef(mdom::NodeData*);
virtual void getDOM();
virtual void owner(mdom::Node*);
virtual void parent(mdom::Node*);
virtual void child(mdom::Node*, int, bool);
virtual void sibling(mdom::Node*, int, bool);
virtual void attributeNode(mdom::Node*, uft::Value const&);
virtual void namespaceNode(mdom::Node*, uft::Value const&);
virtual void childCount(mdom::Node const*, bool);
virtual void getChildrenCountsToNode(mdom::Node const*, mdom::Node const*, unsigned int*, unsigned int*);
virtual void getChildrenCountsToElement(mdom::Node const*, uft::String, unsigned int*, unsigned int*, mdom::Node*, unsigned int);
virtual int iterateBranch(mdom::Node const*, mdom::Node*, unsigned int);
virtual void iterateDirtyBranch(mdom::Node const*, mdom::Node*, unsigned int);
virtual void nextLink(mdom::Node const*, unsigned int, unsigned int, mdom::Node*, uft::Value const**);
virtual void finishLinkIteration(mdom::Node const*, unsigned int, unsigned int);
virtual void create(mdom::Node*, int, uft::Value const&);
virtual void clone(mdom::Node*, bool);
virtual void import(mdom::Node*, mdom::Node const*, bool);
virtual void insertBefore(mdom::Node const*, mdom::Node const*, mdom::Node const*);
virtual void remove(mdom::Node const*);
virtual void getNodeType(mdom::Node const*);
virtual uft::String getNodeName(mdom::Node const*);
virtual uft::Value getNodeValue(mdom::Node const*, unsigned int, unsigned int);
virtual void changeNodeValue(mdom::Node const*, unsigned int, unsigned int, uft::Value const&);
virtual void resolvePrefix(mdom::Node const*, uft::String const&);
virtual void getBaseURL(mdom::Node const*);
virtual void nextAttribute(mdom::Node const*, unsigned int, unsigned int, uft::Value const**, uft::Value const**);
virtual void finishAttributeIteration(mdom::Node const*, unsigned int, unsigned int);
virtual void getAttribute(mdom::Node const*, uft::Value const&);
virtual void setAttribute(mdom::Node const*, uft::Value const&, uft::Value const&);
virtual void compareNodes(mdom::Node const*, mdom::Node const*);
virtual void evaluate(xpath::Expression const&, mdom::Node const*, xpath::Context*, xpath::ResultType);
virtual void iterate(xpath::Expression const&, xpath::Context*, mdom::Node*);
virtual void finishIteration(xpath::Expression const&, xpath::Context*);
virtual void getChangeFlags(mdom::Node const*);
virtual void invalidate(mdom::Node const*, unsigned int);
virtual void iterateChangedAttributes(mdom::Node const*, unsigned int, uft::Value*, uft::Value*);
virtual void finishChangedAttributeIteration(mdom::Node const*, unsigned int);
virtual void iterateNodeValueChanges(mdom::Node const*, unsigned int, mdom::TextChangeRecord*);
virtual void finishNodeValueChangeIteration(mdom::Node const*, unsigned int);
virtual void iterateRemovedChildren(mdom::Node const*, unsigned int, mdom::RemovedChildRecord*);
virtual void finishRemovedChildIteration(mdom::Node const*, unsigned int);
virtual void getAttachment(mdom::Node const*, uft::Value const&);
virtual void setAttachment(mdom::Node const*, uft::Value const&, uft::Value const&);
virtual void getCacheID(mdom::Node const*);
virtual void getAttachment(uft::Value const&);
virtual void setAttachment(uft::Value const&, uft::Value const&);
virtual void getReference(mdom::Node const*, bool);
virtual void destroy();
virtual ~NamespaceNodeTraversal();
virtual void getKey();
virtual void getAttKey();
};
class NodeIterator
{
public:
virtual ~NodeIterator();
virtual void next() = 0;
virtual void current() = 0;
};
class Node
{
public:
Node();
Node(mdom::Node const&);
Node(mdom::Node_firstChild const&);
Node(mdom::Node_firstChildElement const&);
Node(mdom::Node_lastChildElement const&);
Node(mdom::Node_nextSibling const&);
~Node();
void appendChild(mdom::Node const&) const;
void createElement(uft::QName const&) const;
void createNode(int, uft::Value const&) const;
void createTextNode(uft::String const&) const;
void finishIteration(xpath::Expression const&, xpath::Context*);
void getAttribute(uft::Value const&) const;
mdom::Node_firstChild getFirstChild() const;
mdom::Node_firstChildElement getFirstChildElement() const;
void getLastChildElement() const;