<?xml version="1.0" encoding="UTF-8"?>

<!-- ====================================================================== -->
<!-- = iturm-i.xml                                                        = -->
<!-- = standard itu module - reference manual                             = -->
<!-- ====================================================================== -->
<!-- = This  program  is  free  software; you  can redistribute it and/or = -->
<!-- = modify it provided that this copyright notice is kept intact.      = -->
<!-- = 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. In no event = -->
<!-- = shall  the  copyright  holder be liable for any  direct, indirect, = -->
<!-- = incidental  or special  damages arising  in any way out of the use = -->
<!-- = of this software.                                                  = -->
<!-- ====================================================================== -->
<!-- = copyright (c) 1999-2013 - amaury darsch                            = -->
<!-- ====================================================================== -->

<appendix module="itu" number="i">
  <title>Standard Telecom Reference</title>

  <!-- =================================================================== -->
  <!-- = asn node object                                                 = -->
  <!-- =================================================================== -->

  <object nameset="afnix:itu">
    <name>AsnNode</name>

    <!-- synopsis -->
    <p>
      The <code>AsnNode</code> class is the base class used to represent
      the asn tree. The structure of the node is defined in ITU-T X.690
      recommendation. This implementation supports 64 bits tag number
      with natural machine length encoding. The Canonical Encoding Rule
      (CER) and Distinguished Encoding Rule (DER) are defined by the
      class. Since ASN.1 provides several encoding schemes, the class is
      designed to be as generic as possible but does not provides the 
      mechanism for changing from one representation to another although
      it is perfectly valid to read a DER representation and write it in 
      the CER form.
    </p>

    <!-- predicate -->
    <pred>asn-node-p</pred>

    <!-- inheritance -->
    <inherit>
      <name>Object</name>
    </inherit>

    <!-- methods -->
    <methods>
      <meth>
	<name>write</name>
	<retn>none</retn>
	<args>none|OutputStream|Buffer</args>
	<p>
	  The <code>write</code> method write the asn node contents as well as
	  the child nodes to an output stream argument or a
	  buffer. Without argument, the node is written to the
	  interpreter output stream. With one argument, the node is
	  written to the specified stream or buffer.
	</p>
      </meth>
    </methods>
  </object>

  <!-- =================================================================== -->
  <!-- = asn eoc object                                                  = -->
  <!-- =================================================================== -->

  <object nameset="afnix:itu">
    <name>AsnEoc</name>

    <!-- synopsis -->
    <p>
      The <code>AsnEoc</code> class is is the asn object class that
      encodes the eoc or end-of-content primitive. This primitive is 
      almost never used but its encoding is used with the indefinite
      length encoding.
    </p>

    <!-- predicate -->
    <pred>asn-eoc-p</pred>

    <!-- inheritance -->
    <inherit>
      <name>AsnNode</name>
    </inherit>

    <!-- constructors -->
    <ctors>
      <ctor>
	<name>AsnEoc</name>
	<args>none</args>
	<p>
	  The <code>AsnEoc</code> constructor creates a default asn eoc node.
	</p>
      </ctor>
    </ctors>
  </object>
</appendix>
