File: cxref.xml

package info (click to toggle)
pdfedit 0.4.1-2
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 15,032 kB
  • ctags: 21,708
  • sloc: cpp: 185,471; xml: 8,824; yacc: 1,178; ansic: 666; perl: 664; makefile: 636; sh: 371; lisp: 51
file content (64 lines) | stat: -rw-r--r-- 2,649 bytes parent folder | download | duplicates (2)
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
<!-- vim:tabstop=4:shiftwidth=4:noexpandtab:textwidth=80 
-->
<sect1 id="kernel_part_cxref">
	<title>CXRef</title>
	<para>
		CXRef class wrapps Xpdf <classname>XRef</classname> class and provides additional functionality
		with same interface (see <xref linkend="wrapper"/>. It provides with
		protected interface for making changes and internally stores changed
		objects. When object should be fetched (<classname>fetch</classname>
		method is called), it will check whether this object is already changed
		and if so, uses changed value. Otherwise delegates to <classname>XRef</classname> original
		implementation (this logic is kept in all methods defined in XRef).
	</para>
	<para>
		CXRef inherits from <classname>XRef</classname> and so can be polymorphicaly used in xpdf code
		and this code doesn't need any changes to use CXref functionality.
		Aditional interface enables changes, but as we want to keep this making
		changes under control so it is protected and so accessible only for its
		inheritance descendants.
	</para>
	<para>
		Added functionality includes:
		<itemizedlist>
			<listitem>
				new indirect objects creation - creates new pdf object and
				associates it with reserved reference.
			</listitem>
			<listitem>
				changing of already existing indirect objects.
				<classname>changeObject</classname> method which changes object
				with given reference with given object.
			</listitem>
			<listitem>
				changing of document trailer - add, remove or change elements of
				<xref linkend="trailer"/>.
			</listitem>
			<listitem>
				checking for type safety - checks whether given object can
				safely replace original value (in document or currently saved
				form) according types. Type safe change is consider such change,
				when new value type is either same as old type, or dereferenced
				types (if any of types is reference) or if original value is
				CNull, then new value may have arbitrary type.
			</listitem>
			<listitem>
				reopen functionality - <classname>reopen</classname> method which
				is responsible for document content reopen with <xref linkend="crossref_table"/>
				at specified position. This is then used to change current
				revision of document, where cross reference table position is
				specific for desired revision.
			</listitem>
		</itemizedlist>
	</para>
	<para>
		For more information about CXref usage, please see <xref linkend="kernel_part_layers_ch"/>.
	</para>
 	<mediaobject>
	  <imageobject>
          <imagedata fileref="kernel/images/cxref.png" format="PNG"/>
	  </imageobject>
	  <caption><para>CXref class scheme</para></caption>
	</mediaobject>
</sect1>