autodoc.git / onepage.xml

version» Context lines:

autodoc.git/onepage.xml:2669:   </docgroup>   </class>   <class name='DES3'>   <docgroup homogen-name='CBC' homogen-type='inherit'>   <inherit name='CBC'><classname resolved='8.0::Crypto.CBC'>Crypto.CBC</classname></inherit>   </docgroup>   </class>   <class name='DHKeyExchange'>   <doc><text><p>Implements Diffie-Hellman key-exchange.</p>   <p> The following key exchange methods are implemented here: -  <ref resolved='7.8::SSL.Constants.KeyExchangeType.KE_dhe_dss'>KE_dhe_dss</ref>, <ref resolved='7.8::SSL.Constants.KeyExchangeType.KE_dhe_rsa'>KE_dhe_rsa</ref> and <ref resolved='7.8::SSL.Constants.KeyExchangeType.KE_dh_anon'>KE_dh_anon</ref>.</p> +  <ref resolved='predef::SSL.Constants.KeyExchangeType.KE_dhe_dss'>KE_dhe_dss</ref>, <ref resolved='predef::SSL.Constants.KeyExchangeType.KE_dhe_rsa'>KE_dhe_rsa</ref> and <ref resolved='predef::SSL.Constants.KeyExchangeType.KE_dh_anon'>KE_dh_anon</ref>.</p>   </text></doc>   <docgroup homogen-name='create' homogen-type='method'>   <method name='create'><modifiers><protected/></modifiers>   <arguments><argument name='p'><type><object resolved='7.8::SSL.Cipher.DHParameters'>DHParameters</object></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   </class>   <class name='DHParameters'>   <doc><text><p>Diffie-Hellman parameters.</p>
autodoc.git/onepage.xml:3286:   <variable name='client_cert_distinguished_names'><type><array><valuetype><string/></valuetype></array></type></variable>   </docgroup>   <docgroup homogen-type='variable'><doc><text><p>Random cookies, sent and received with the hello-messages.</p>   </text></doc>   <variable name='client_random'><type><string/></type></variable>   <variable name='server_random'><type><string/></type></variable>   </docgroup>   <docgroup homogen-name='create' homogen-type='method'><doc><group><param name='is_server'/><text><p>Whether this is the server end of the connection or not.</p>   </text></group><group><param name='ctx'/><text><p>The context for the connection.</p>   </text></group><group><param name='min_version'/><text><p>Minimum version of SSL to support. -  Defaults to <ref resolved='7.8::SSL.Constants.ProtocolVersion.PROTOCOL_SSL_3_0'>Constants.PROTOCOL_SSL_3_0</ref>.</p> +  Defaults to <ref resolved='predef::SSL.Constants.ProtocolVersion.PROTOCOL_SSL_3_0'>Constants.PROTOCOL_SSL_3_0</ref>.</p>   </text></group><group><param name='max_version'/><text><p>Maximum version of SSL to support.    Defaults to <ref resolved='7.8::SSL.Constants.PROTOCOL_minor'>Constants.PROTOCOL_minor</ref>.</p>   </text></group></doc>   <method name='create'>   <arguments><argument name='is_server'><type><int/></type></argument><argument name='ctx'><type><or><void/><object resolved='7.8::SSL.context'>SSL.context</object></or></type></argument><argument name='min_version'><type><or><void/><object resolved='7.8::SSL.Constants.ProtocolVersion'>ProtocolVersion</object></or></type></argument><argument name='max_version'><type><or><void/><object resolved='7.8::SSL.Constants.ProtocolVersion'>ProtocolVersion</object></or></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='handle_handshake' homogen-type='method'><doc><text><p>Do handshake processing. Type is one of HANDSHAKE_*, data is the    contents of the packet, and raw is the raw packet received (needed
autodoc.git/onepage.xml:6972:   <docgroup homogen-name='verify' homogen-type='method'>   <method name='verify'>   <arguments><argument name='algorithm'><type><object resolved='predef::Standards.ASN1.Types.Sequence'>Sequence</object></type></argument><argument name='msg'><type><string/></type></argument><argument name='signature'><type><string/></type></argument></arguments>   <returntype><int><min>0</min><max>1</max></int></returntype>   </method>   </docgroup>   </class>   </module>   </module>   </namespace> + <namespace name='cpp'> + <doc><text><p>Pike has a builtin C-style preprocessor. It works similar to the +  ANSI-C preprocessor but has a few extra features. These and the +  default set of preprocessor macros are described here.</p> + </text></doc> + <docgroup homogen-name='#!' homogen-type='directive'><doc><text><p>All lines beginning with <ref resolved='cpp::'>#!</ref> will be regarded as comments, +  to enable shell integration. It is recommended that Pike applications +  begin with the line <tt>"#! /usr/bin/env pike"</tt> for maximum cross +  platform compatibility.</p> + </text></doc> + <directive name='#!'/> + </docgroup> + <docgroup homogen-name='#""' homogen-type='directive'><doc><text><p>If a string literal is opened with <tt>#"</tt> newlines in the +  string will end up in the string literal, instead of triggering a +  <tt>"newline in string"</tt> error.</p> + </text><group><note/><text><p>Newlines will be converted to <tt>\n</tt> characters in the string +  even if the newlines in the file are something else.</p> + <p> This preprocessor directive may appear anywhere a string may +  appear.</p> + </text></group><group><seealso/><text><p><ref resolved='cpp::'>#string</ref></p> + </text></group></doc> + <directive name='#""'/> + </docgroup> + <docgroup homogen-type='directive'><doc><text><p>If a string literal is opened with <tt>#(</tt> all subsequent +  characters until the closing <tt>#)</tt> will be treated as +  literals, including newlines, <tt>\</tt>, <tt>"</tt> and <tt>'</tt>.</p> + <p> There are three different pairs of start/end tokens for this +  type of literals, #( and #), #[ and #], and #{ and #}.</p> + </text><group><example/><text><p><expr>#["\n\'##]</expr> is equivalent to <expr>"\"\\n\\'#"</expr>.</p> + </text></group></doc> + <directive name='#(#)'/> + <directive name='#[#]'/> + <directive name='#{#}'/> + </docgroup> + <docgroup homogen-type='directive'><doc><text><p>A hash character followed by a number or by the string +  <tt>"line"</tt> and a number will make the preprocessor line counter +  set this number as the line number for the next line and adjust the +  following lines accordingly.</p> + <p> All error messages from Pike will use these line numbers.</p> + <p> Optionally the number may be followed by a file name, e.g. +  <tt>#line 1 "/home/pike/program.pike.in"</tt>. Then this +  filename will be used instead of the current file for error +  messages.</p> + </text></doc> + <directive name='#line'/> + <directive name='#&lt;integer&gt;'/> + </docgroup> + <docgroup homogen-name='#charset' homogen-type='directive'><doc><text><p>Inform the preprocessor about which charset the file is encoded +  with. The Charset module is called with this string to decode +  the remainder of the file.</p> + </text></doc> + <directive name='#charset'/> + </docgroup> + <docgroup homogen-name='#define' homogen-type='directive'><doc><text><p>This directive is used to define or redefine a cpp macro.</p> + <p> The simplest way to use define is to write</p> + <code><text><p>#define <b><i>&lt;identifier&gt;</i></b> <i>&lt;replacement string&gt;</i></p> + </text></code><p>which will cause all subsequent occurances of <tt><b><i>&lt;identifier</i></b></tt> +  to be replaced with the <tt><i>&lt;replacement string&gt;</i></tt>.</p> + <p> Define also has the capability to use arguments, thus a line like</p> + <code><text><p>#define <b><i>&lt;identifier&gt;</i></b>(arg1, arg2) <i>&lt;replacement string&gt;</i></p> + </text></code><p>would cause <tt><b><i>&lt;identifer&gt;</i></b></tt> to be a macro. All occurances of +  '<tt><b><i>&lt;identifier&gt;</i></b>(something1,something2d)</tt>' would be replaced +  with the <tt><i>&lt;replacement string&gt;</i></tt>. +  And in the <tt><i>&lt;replacement string&gt;</i></tt>, <tt>arg1</tt> and <tt>arg2</tt> +  will be replaced with <tt>something1</tt> and <tt>something2</tt>.</p> + </text></doc> + <directive name='#define'/> + </docgroup> + <docgroup homogen-type='directive'><doc><text><p>These work as a combined <ref resolved='cpp::'>#else</ref> and <ref resolved='cpp::'>#if</ref> without +  adding an extra level of nesting.</p> + </text><group><example/><text><p>The following two are equivalent:</p> + <code><text><p>#ifdef A +  // Code for A. +  #else +  #ifdef B +  // Code for B. +  #else +  #ifdef C +  // Code for C. +  #else +  // Code for D. +  #endif +  #endif +  #endif</p> + </text></code><p>And</p> + <code><text><p>#ifdef A +  // Code for A. +  #elif defined(B) +  // Code for B. +  #elseif defined(C) +  // Code for C. +  #else +  // Code for D. +  #endif</p> + </text></code> + </text></group><group><seealso/><text><p><ref resolved='cpp::'>#if</ref>, <ref resolved='cpp::'>#ifdef</ref>, <ref resolved='cpp::'>#else</ref>, <ref resolved='cpp::defined'>defined()</ref>, <ref resolved='cpp::constant'>constant()</ref></p> + </text></group></doc> + <directive name='#elif'/> + <directive name='#elseif'/> + </docgroup> + <docgroup homogen-name='#else' homogen-type='directive'><doc><text><p>This directive is used to divide the current code block into another +  code block with inverse activation.</p> + </text><group><example/><text><code><text><p>#ifdef FAST_ALGORITHM +  do_fast_algorithm(); +  #elif defined(EXPERIMENTAL_ALGORITHM) +  do_experimental_algorithm(); +  #else +  do_default_algorithm(); +  #endif</p> + </text></code></text></group></doc> + <directive name='#else'/> + </docgroup> + <docgroup homogen-name='#endif' homogen-type='directive'><doc><text><p>End a block opened with <ref resolved='cpp::'>#if</ref>, <ref resolved='cpp::'>#ifdef</ref>, <ref resolved='cpp::'>#ifndef</ref>, +  <ref resolved='cpp::'>#else</ref>, <ref resolved='cpp::'>#elseif</ref> or <ref resolved='cpp::'>#elif</ref>.</p> + </text><group><example/><text><code><text><p>#ifdef DEBUG +  do_debug_stuff(); +  #endif // DEBUG</p> + </text></code></text></group></doc> + <directive name='#endif'/> + </docgroup> + <docgroup homogen-name='#error' homogen-type='directive'><doc><text><p>Throw an error during preprocessing.</p> + <p> This directive causes a cpp error. It can be used to notify +  the user that certain functions are missing and similar things.</p> + </text><group><note/><text><p>Note that this directive will cause <ref>cpp()</ref> to throw +  an error at the end of preprocessing, which will cause +  any compilation to fail.</p> + </text></group><group><example/><text><code><text><p>#if !constant(Yp) +  #error Support for NIS not available. +  #endif</p> + </text></code> + </text></group><group><seealso/><text><p><ref resolved='cpp::'>#warning</ref></p> + </text></group></doc> + <directive name='#error'/> + </docgroup> + <docgroup homogen-name='#if' homogen-type='directive'><doc><text><p>The <ref resolved='cpp::'>#if</ref> directive can evaluate simple expressions and, if +  the expression is evaluates to true, "activate" the code block that +  follows. The code block ends when an <ref resolved='cpp::'>#endif</ref>, <ref resolved='cpp::'>#else</ref>, +  <ref resolved='cpp::'>#elseif</ref> or <ref resolved='cpp::'>#elif</ref> block is encountered at the same +  nesting depth.</p> + <p> The <ref resolved='cpp::'>#if</ref> expressions may include defines, integer, string +  and float constants, <tt>?:</tt>, <tt>||</tt> and <tt>&amp;&amp;</tt> operations, +  <tt>~</tt>, <tt>^</tt>, <tt>!</tt>, <tt>|</tt> and <tt>&amp;</tt> operations, +  <tt>&lt;</tt>, <tt>&gt;</tt>, <tt>&lt;=</tt>, <tt>&gt;=</tt>, <tt>==</tt> and <tt>!=</tt> operations, +  <tt>+</tt>, <tt>-</tt>, <tt>*</tt>, <tt>/</tt>, <tt>&lt;&lt;</tt> and <tt>&gt;&gt;</tt> operations +  and paranthesis.</p> + <p> Strings may also be indexed with the <tt>[]</tt> index operator. +  Finally there are three special "functions" available in <ref resolved='cpp::'>#if</ref> +  expressions; <ref resolved='cpp::defined'>defined()</ref>, <ref resolved='cpp::efun'>efun()</ref> and <ref resolved='cpp::constant'>constant()</ref>.</p> + </text><group><seealso/><text><p><ref resolved='cpp::'>#ifdef</ref>, <ref resolved='cpp::'>#ifndef</ref>, <ref resolved='cpp::'>#elif</ref>, <ref resolved='cpp::'>#else</ref>, <ref resolved='cpp::'>#endif</ref>, +  <ref resolved='cpp::defined'>defined()</ref>, <ref resolved='cpp::constant'>constant()</ref>, <ref resolved='cpp::efun'>efun()</ref></p> + </text></group></doc> + <directive name='#if'/> + </docgroup> + <docgroup homogen-name='#ifdef' homogen-type='directive'><doc><text><p>Check whether an identifier is a macro.</p> + <p> The directive</p> + <p> <tt>#ifdef <i>&lt;identifier&gt;</i></tt></p> + <p> is equivalent to</p> + <p> <tt>#if <ref resolved='cpp::defined'>defined</ref>(<i>&lt;identifier&gt;</i>)</tt></p> + </text><group><seealso/><text><p><ref resolved='cpp::'>#if</ref>, <ref resolved='cpp::'>#ifndef</ref>, <ref resolved='cpp::defined'>defined</ref></p> + </text></group></doc> + <directive name='#ifdef'/> + </docgroup> + <docgroup homogen-name='#ifndef' homogen-type='directive'><doc><text><p>Check whether an identifier is not a macro.</p> + <p> This is the inverse of <ref resolved='cpp::'>#ifdef</ref>.</p> + <p> The directive</p> + <p> <tt>#ifndef <i>&lt;identifier&gt;</i></tt></p> + <p> is equivalent to</p> + <p> <tt>#if !<ref resolved='cpp::defined'>defined</ref>(<i>&lt;identifier&gt;</i>)</tt></p> + </text><group><seealso/><text><p><ref resolved='cpp::'>#if</ref>, <ref resolved='cpp::'>#ifdef</ref>, <ref resolved='cpp::defined'>defined</ref></p> + </text></group></doc> + <directive name='#ifndef'/> + </docgroup> + <docgroup homogen-name='#include' homogen-type='directive'><doc><text><p><ref resolved='cpp::'>#include</ref> is used to insert the contents of another file into +  the processed file at the place of the include directive.</p> + <p> Files can be referenced either by absolute or relative path from the +  source file, or searched for in the include paths.</p> + <p> To include a file with absolute or relative path, use double quotes, +  e.g. <tt>#include "constants.pike"</tt> or <tt>#include "../debug.h"</tt>.</p> + <p> To include from the include paths, use less than and greater than, +  e.g. <tt>#include &lt;profiling.h&gt;</tt>.</p> + <p> It is also possible to include a file whose path is defined in a +  preprocessor macro, e.g. <tt>#include USER_SETTINGS</tt>.</p> + </text></doc> + <directive name='#include'/> + </docgroup> + <docgroup homogen-name='#pike' homogen-type='directive'><doc><text><p>Set the Pike compiler backward compatibility level.</p> + <p> This tells the compiler which version of Pike it should +  attempt to emulate from this point on in the current +  compilation unit.</p> + <p> This is typically used to "quick-fix" old code to work +  with more recent versions of Pike.</p> + </text><group><example/><text><code><text><p>// This code was written for Pike 7.2, and depends on +  // the old behaviour for <expr>7.2::dirname()</expr>. +  #pike 7.2</p> + <p> // ... Code that uses <ref>dirname()</ref> ...</p> + </text></code><p>This directive is also needed for Pike modules that +  have been installed globally, and might be used by +  a Pike that has been started with the <tt>-V</tt> flag.</p> + </text></group><group><example/><text><code><text><p>// Pike modules that are bundled with Pike are +  // typically written for the same version of Pike. +  #pike __REAL_VERSION__</p> + </text></code></text></group></doc> + <directive name='#pike'/> + </docgroup> + <docgroup homogen-name='#pragma' homogen-type='directive'><doc><text><p>This is a generic directive for flags to the compiler.</p> + <p> These are some of the flags that are available:</p> + <string><group><value>"all_inline"</value><text><p>This is the same as adding the modifier <tt>inline</tt> +  to all functions that follow.</p> + </text></group><group><value>"all_final"</value><text><p>Instructs the compiler to mark all symbols as <tt>final</tt>.</p> + </text></group><group><value>"deprecation_warnings"</value><text><p>Enable warnings for use of deprecated symbols (default).</p> + </text></group><group><value>"no_deprecation_warnings"</value><text><p>Disable warnings for use of deprecated symbols. This is +  typically used in code that implements the deprecated +  symbols.</p> + </text></group><group><value>"save_parent"</value><text><p>Cause nested classes to save a reference to their +  surrounding class even if not strictly needed.</p> + </text></group><group><value>"dont_save_parent"</value><text><p>Inverse of <tt>"save_parent"</tt>. This is needed to override +  if the global symbol <ref>predef::__pragma_save_parent__</ref> +  has been set.</p> + </text></group><group><value>"strict_types"</value><text><p>Enable warnings for all cases where the compiler +  isn't certain that the types are correct.</p> + </text></group><group><value>"disassemble"</value><text><p>Enable disassembly output for the code being compiled. +  Note that this option essentially has a function-level +  scope, so enabling it for just a few lines is usually +  a noop. This is similar to <ref>Debug.assembler_debug()</ref> +  level <expr>3</expr>.</p> + </text></group><group><value>"no_disassemble"</value><text><p>Disable disassembly output (default).</p> + </text></group></string></text></doc> + <directive name='#pragma'/> + </docgroup> + <docgroup homogen-name='#require' homogen-type='directive'><doc><text><p>If the directive evaluates to false, the source file will be +  considered to have failed dependencies, and will not be found by +  the resolver. In practical terms the <ref>cpp()</ref> call will return +  zero.</p> + </text><group><seealso/><text><p><ref resolved='cpp::'>#if</ref></p> + </text></group></doc> + <directive name='#require'/> + </docgroup> + <docgroup homogen-name='#string' homogen-type='directive'><doc><text><p>The preprocessor directive <ref resolved='cpp::'>#string</ref> will load the file in the +  string that follows and insert its contents as a string. This +  preprocessor directive may appear anywhere a string may appear.</p> + </text><group><example/><text><code><text><p>do_something(#string "the_file.wks");</p> + </text></code> + </text></group><group><seealso/><text><p><ref resolved='cpp::'>#include</ref></p> + </text></group></doc> + <directive name='#string'/> + </docgroup> + <docgroup homogen-type='directive'><doc><text><p>This removes the effect of a <ref resolved='cpp::'>#define</ref>, all subsequent occurances of +  the undefined identifier will not be replaced by anything.</p> + </text><group><note/><text><p>Note that when undefining a macro, you just give the identifer, +  not the arguments.</p> + </text></group><group><example/><text><p>// Strip debug +  #define werror(X ...) 0 +  #include "/home/someone/experimental/stuff.h" +  #undef werror</p> + </text></group><group><seealso/><text><p><ref resolved='cpp::'>#define</ref>, <ref resolved='cpp::defined'>defined()</ref></p> + </text></group></doc> + <directive name='#undef'/> + <directive name='#undefine'/> + </docgroup> + <docgroup homogen-name='#warning' homogen-type='directive'><doc><text><p>Generate a warning during preprocessing.</p> + <p> This directive causes a cpp warning, it can be used to notify +  the user that certain functions are missing and similar things.</p> + </text><group><example/><text><code><text><p>#if !constant(Yp) +  #warning Support for NIS not available. Some features may not work. +  #endif</p> + </text></code> + </text></group><group><seealso/><text><p><ref resolved='cpp::'>#error</ref></p> + </text></group></doc> + <directive name='#warning'/> + </docgroup> + <docgroup homogen-name='_Pragma' homogen-type='method'><doc><text><p>This macro inserts the corresponding <ref resolved='cpp::_Pragma'>#pragma</ref> <ref resolved='cpp::_Pragma.directive'>directive</ref> +  in the source.</p> + <p> e.g. <expr>_Pragma("strict_types")</expr> is the same +  as <expr>#pragma strict_types</expr> .</p> + </text><group><seealso/><text><p><ref resolved='cpp::_Pragma'>#pragma</ref></p> + </text></group></doc> + <method name='_Pragma'> + <arguments><argument name='directive'><type><string/></type></argument></arguments> + <returntype><void/></returntype> + </method> + </docgroup> + <docgroup homogen-name='__AUTO_BIGNUM__' homogen-type='constant'><doc><text><p>This define is defined when automatic bignum conversion is enabled. +  When enabled all integers will automatically be converted to +  bignums when they get bigger than what can be represented by +  an integer, hampering performance slightly instead of crashing +  the program. This define is always set since Pike 8.0.</p> + </text></doc> + <constant name='__AUTO_BIGNUM__'/> + </docgroup> + <docgroup homogen-name='__BUILD__' homogen-type='constant'><doc><text><p>This constant contains the build number of the current Pike version, +  represented as an integer. If another Pike version is emulated, +  this constant remains unaltered.</p> + </text><group><seealso/><text><p><ref resolved='cpp::.__REAL_MINOR__'>__REAL_MINOR__</ref></p> + </text></group></doc> + <constant name='__BUILD__'/> + </docgroup> + <docgroup homogen-name='__COUNTER__' homogen-type='variable'><doc><text><p>This define contains a unique counter (unless it has been expanded +  Int.NATIVE_MAX times) represented as an integer.</p> + </text></doc> + <variable name='__COUNTER__'><type><int><min>1</min><max/></int></type></variable> + </docgroup> + <docgroup homogen-name='__DATE__' homogen-type='constant'><doc><text><p>This define contains the current date at the time of compilation, +  e.g. "Jul 28 2001".</p> + </text></doc> + <constant name='__DATE__'/> + </docgroup> + <docgroup homogen-name='__DIR__' homogen-type='constant'><doc><text><p>This define contains the directory path of the source file.</p> + </text></doc> + <constant name='__DIR__'/> + </docgroup> + <docgroup homogen-name='__FILE__' homogen-type='constant'><doc><text><p>This define contains the file path and name of the source file.</p> + </text></doc> + <constant name='__FILE__'/> + </docgroup> + <docgroup homogen-name='__LINE__' homogen-type='constant'><doc><text><p>This define contains the current line number, represented as an +  integer, in the source file.</p> + </text></doc> + <constant name='__LINE__'/> + </docgroup> + <docgroup homogen-name='__MAJOR__' homogen-type='constant'><doc><text><p>This define contains the major part of the current Pike version, +  represented as an integer. If another Pike version is emulated, +  this define is updated accordingly.</p> + </text><group><seealso/><text><p><ref resolved='cpp::.__REAL_MAJOR__'>__REAL_MAJOR__</ref></p> + </text></group></doc> + <constant name='__MAJOR__'/> + </docgroup> + <docgroup homogen-name='__MINOR__' homogen-type='constant'><doc><text><p>This define contains the minor part of the current Pike version, +  represented as an integer. If another Pike version is emulated, +  this define is updated accordingly.</p> + </text><group><seealso/><text><p><ref resolved='cpp::.__REAL_MINOR__'>__REAL_MINOR__</ref></p> + </text></group></doc> + <constant name='__MINOR__'/> + </docgroup> + <docgroup homogen-name='__NT__' homogen-type='constant'><doc><text><p>This define is defined when the Pike is running on a Microsoft Windows OS, +  not just Microsoft Windows NT, as the name implies.</p> + </text></doc> + <constant name='__NT__'/> + </docgroup> + <docgroup homogen-name='__PIKE__' homogen-type='constant'><doc><text><p>This define is always true.</p> + </text></doc> + <constant name='__PIKE__'/> + </docgroup> + <docgroup homogen-name='__REAL_BUILD__' homogen-type='constant'><doc><text><p>This define always contains the minor part of the version of the +  current Pike, represented as an integer.</p> + </text><group><seealso/><text><p><ref resolved='cpp::.__BUILD__'>__BUILD__</ref></p> + </text></group></doc> + <constant name='__REAL_BUILD__'/> + </docgroup> + <docgroup homogen-name='__REAL_MAJOR__' homogen-type='constant'><doc><text><p>This define always contains the major part of the version of the +  current Pike, represented as an integer.</p> + </text><group><seealso/><text><p><ref resolved='cpp::.__MAJOR__'>__MAJOR__</ref></p> + </text></group></doc> + <constant name='__REAL_MAJOR__'/> + </docgroup> + <docgroup homogen-name='__REAL_MINOR__' homogen-type='constant'><doc><text><p>This define always contains the minor part of the version of the +  current Pike, represented as an integer.</p> + </text><group><seealso/><text><p><ref resolved='cpp::.__MINOR__'>__MINOR__</ref></p> + </text></group></doc> + <constant name='__REAL_MINOR__'/> + </docgroup> + <docgroup homogen-name='__REAL_VERSION__' homogen-type='constant'><doc><text><p>This define always contains the version of the current Pike, +  represented as a float.</p> + </text><group><seealso/><text><p><ref resolved='cpp::.__VERSION__'>__VERSION__</ref></p> + </text></group></doc> + <constant name='__REAL_VERSION__'/> + </docgroup> + <docgroup homogen-name='__TIME__' homogen-type='constant'><doc><text><p>This define contains the current time at the time of compilation, +  e.g. "12:20:51".</p> + </text></doc> + <constant name='__TIME__'/> + </docgroup> + <docgroup homogen-name='__VERSION__' homogen-type='constant'><doc><text><p>This define contains the current Pike version as a float. If +  another Pike version is emulated, this define is updated +  accordingly.</p> + </text><group><seealso/><text><p><ref resolved='cpp::.__REAL_VERSION__'>__REAL_VERSION__</ref></p> + </text></group></doc> + <constant name='__VERSION__'/> + </docgroup> + <docgroup homogen-name='__amigaos__' homogen-type='constant'><doc><text><p>This define is defined when the Pike is running on Amiga OS.</p> + </text></doc> + <constant name='__amigaos__'/> + </docgroup> + <docgroup homogen-type='method'><doc><text><p>Check whether the argument resolves to a constant or not.</p> + </text><group><seealso/><text><p><ref resolved='cpp::constant'>#if</ref>, <ref resolved='cpp::defined'>defined()</ref></p> + </text></group></doc> + <method name='constant'> + <arguments><argument name='identifier'><type><mixed/></type></argument></arguments> + <returntype><int><min>0</min><max>1</max></int></returntype> + </method> + <method name='efun'> + <arguments><argument name='identifier'><type><mixed/></type></argument></arguments> + <returntype><attribute><prefix/><attribute>"deprecated"</attribute><subtype><int><min>0</min><max>1</max></int></subtype></attribute></returntype> + </method> + </docgroup> + <docgroup homogen-name='defined' homogen-type='method'><doc><text><p>Check whether an identifier is a cpp macro or not.</p> + </text><group><returns/><text><p><ref resolved='cpp::defined'>defined</ref> returns true if the symbol given as argument +  is defined.</p> + </text></group><group><note/><text><p><tt>#if defined(MY_DEF)</tt> is equivalent to +  <tt>#ifdef MY_DEF</tt>.</p> + </text></group><group><seealso/><text><p><ref resolved='cpp::defined'>#if</ref>, <ref resolved='cpp::defined'>#ifdef</ref>, <ref resolved='cpp::constant'>constant()</ref></p> + </text></group></doc> + <method name='defined'> + <arguments><argument name='identifier'><type><mixed/></type></argument></arguments> + <returntype><int><min>0</min><max>1</max></int></returntype> + </method> + </docgroup> + <docgroup homogen-name='static_assert' homogen-type='constant'><doc><text><p>This define expands to the symbol <ref>_Static_assert</ref>.</p> + <p> It is the preferred way to perform static +  (ie compile-time) assertions.</p> + </text><group><note/><text><p>The macro can also be used to check for whether static assertions +  are supported.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::_Static_assert'>predef::_Static_assert()</ref></p> + </text></group></doc> + <constant name='static_assert'/> + </docgroup> + </namespace>   <namespace name='lfun'>   <doc><text><p>Callback functions used to overload various builtin functions.</p>   <p> The functions can be grouped into a few sets:</p>   <ul><group><item/><text><p>Object initialization and destruction.</p>   <p> <ref resolved='lfun::__INIT'>__INIT()</ref>, <ref resolved='lfun::create'>create()</ref>, <ref resolved='lfun::_destruct'>_destruct()</ref></p>   </text></group><group><item/><text><p>Unary operator overloading.</p>   <p> <ref resolved='lfun::`~'>`~()</ref>, <ref resolved='lfun::`!'>`!()</ref>,    <ref resolved='lfun::_values'>_values()</ref>, <ref resolved='lfun::cast'>cast()</ref>,    <ref resolved='lfun::_sizeof'>_sizeof()</ref>, <ref resolved='lfun::_indices'>_indices()</ref>,    <ref resolved='lfun::__hash'>__hash()</ref></p>
autodoc.git/onepage.xml:7858:   </docgroup>   <docgroup homogen-name='UNDEFINED' homogen-type='constant'><doc><text><p>The undefined value; ie a zero for which <ref resolved='predef::zero_type'>zero_type()</ref> returns 1.</p>   </text></doc>   <constant name='UNDEFINED'/>   </docgroup>   <docgroup homogen-name='_Static_assert' homogen-type='method'><doc><text><p>Perform a compile-time assertion check.</p>   <p> If <ref resolved='predef::_Static_assert.constant_expression'>constant_expression</ref> is false, a compiler error message    containing <ref resolved='predef::_Static_assert.constant_message'>constant_message</ref> will be generated.</p>   </text><group><note/><text><p>Note that the function call compiles to the null statement,    and thus does not affect the run-time.</p> - </text></group><group><seealso/><text><p><ref>cpp::static_assert</ref></p> + </text></group><group><seealso/><text><p><ref resolved='cpp::.static_assert'>cpp::static_assert</ref></p>   </text></group></doc>   <method name='_Static_assert'>   <arguments><argument name='constant_expression'><type><int/></type></argument><argument name='constant_message'><type><string/></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='__empty_program' homogen-type='method'>   <method name='__empty_program'>   <arguments><argument name='line'><type><or><int/><void/></or></type></argument><argument name='file'><type><or><string/><void/></or></type></argument></arguments>   <returntype><program/></returntype>
autodoc.git/onepage.xml:7998:   </text></doc>   <method name='_gdb_breakpoint'>   <arguments/>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='_static_modules' homogen-type='variable'><doc><text><p>This is an object containing the classes for all static    (ie non-dynamic) C-modules.</p>   <p> In a typic Pike with support for dynamic modules the contained    module classes are:</p> - <dl><group><item><p><ref>Builtin</ref></p> + <dl><group><item><p><ref resolved='predef::Builtin'>Builtin</ref></p>   </item><item><p><ref resolved='predef::Gmp'>Gmp</ref></p>   </item><item><p><ref>_Stdio</ref></p>   </item><item><p><ref>_math</ref></p>   </item><item><p><ref>_system</ref></p>   </item></group></dl><p>If the Pike binary lacks support for dynamic modules, all C-modules    will show up here.</p>   </text></doc>   <variable name='_static_modules'><type><object resolved='predef::'/></type></variable>   </docgroup>   <docgroup homogen-name='_typeof' homogen-type='method'><doc><text><p>Return the runtime type of <ref resolved='predef::_typeof.x'>x</ref>.</p>
autodoc.git/onepage.xml:9619:    compiles it into a clonable program.</p>   <p> The optional argument <ref resolved='predef::compile.handler'>handler</ref> is used to specify an alternative    error handler. If it is not specified the current master object will    be used.</p>   <p> The optional arguments <ref resolved='predef::compile.major'>major</ref> and <ref resolved='predef::compile.minor'>minor</ref> are used to tell the    compiler to attempt to be compatible with Pike <ref resolved='predef::compile.major'>major</ref>.<ref resolved='predef::compile.minor'>minor</ref>.</p>   </text><group><note/><text><p>Note that <ref resolved='predef::compile.source'>source</ref> must contain the complete source for a program.    It is not possible to compile a single expression or statement.</p>   <p> Also note that <ref resolved='predef::compile'>compile()</ref> does not preprocess the program.    To preprocess the program you can use <ref resolved='predef::compile_string'>compile_string()</ref> or -  call the preprocessor manually by calling <ref>cpp()</ref>.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::compile_string'>compile_string()</ref>, <ref resolved='predef::compile_file'>compile_file()</ref>, <ref>cpp()</ref>, <ref resolved='predef::master'>master()</ref>, +  call the preprocessor manually by calling <ref resolved='predef::cpp'>cpp()</ref>.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::compile_string'>compile_string()</ref>, <ref resolved='predef::compile_file'>compile_file()</ref>, <ref resolved='predef::cpp'>cpp()</ref>, <ref resolved='predef::master'>master()</ref>,    <ref resolved='predef::CompilationHandler'>CompilationHandler</ref>, <ref resolved='predef::DefaultCompilerEnvironment'>DefaultCompilerEnvironment</ref></p>   </text></group></doc>   <method name='compile'>   <arguments><argument name='source'><type><string/></type></argument><argument name='handler'><type><or><object resolved='predef::CompilationHandler'>CompilationHandler</object><void/></or></type></argument><argument name='major'><type><or><int/><void/></or></type></argument><argument name='minor'><type><or><int/><void/></or></type></argument><argument name='target'><type><or><program/><void/></or></type></argument><argument name='placeholder'><type><or><object resolved='predef::compile'/><void/></or></type></argument></arguments>   <returntype><program/></returntype>   </method>   </docgroup>   <docgroup homogen-name='compile_file' homogen-type='method'><doc><text><p>Compile the Pike code contained in the file <ref resolved='predef::compile_file.filename'>filename</ref> into a program.</p>   <p> This function will compile the file <ref resolved='predef::compile_file.filename'>filename</ref> to a Pike program that can    later be instantiated. It is the same as doing    <expr><ref resolved='predef::compile_string'>compile_string</ref>(<ref resolved='predef::Stdio.read_file'>Stdio.read_file</ref>(<ref resolved='predef::compile_file.filename'>filename</ref>), <ref resolved='predef::compile_file.filename'>filename</ref>)</expr>.</p> - </text><group><seealso/><text><p><ref resolved='predef::compile'>compile()</ref>, <ref resolved='predef::compile_string'>compile_string()</ref>, <ref>cpp()</ref></p> + </text><group><seealso/><text><p><ref resolved='predef::compile'>compile()</ref>, <ref resolved='predef::compile_string'>compile_string()</ref>, <ref resolved='predef::cpp'>cpp()</ref></p>   </text></group></doc>   <method name='compile_file'>   <arguments><argument name='filename'><type><string/></type></argument><argument name='handler'><type><or><object resolved='predef::compile_file'/><void/></or></type></argument><argument name='p'><type><or><void/><program/></or></type></argument><argument name='o'><type><or><void/><object resolved='predef::compile_file'/></or></type></argument></arguments>   <returntype><program/></returntype>   </method>   </docgroup>   <docgroup homogen-name='compile_string' homogen-type='method'><doc><text><p>Compile the Pike code in the string <ref resolved='predef::compile_string.source'>source</ref> into a program.    If <ref resolved='predef::compile_string.filename'>filename</ref> is not specified, it will default to <expr>"-"</expr>.</p> - <p> Functionally equal to <expr><ref resolved='predef::compile'>compile</ref>(<ref>cpp</ref>(<ref resolved='predef::compile_string.source'>source</ref>, <ref resolved='predef::compile_string.filename'>filename</ref>))</expr>.</p> - </text><group><seealso/><text><p><ref resolved='predef::compile'>compile()</ref>, <ref>cpp()</ref>, <ref resolved='predef::compile_file'>compile_file()</ref></p> + <p> Functionally equal to <expr><ref resolved='predef::compile'>compile</ref>(<ref resolved='predef::cpp'>cpp</ref>(<ref resolved='predef::compile_string.source'>source</ref>, <ref resolved='predef::compile_string.filename'>filename</ref>))</expr>.</p> + </text><group><seealso/><text><p><ref resolved='predef::compile'>compile()</ref>, <ref resolved='predef::cpp'>cpp()</ref>, <ref resolved='predef::compile_file'>compile_file()</ref></p>   </text></group></doc>   <method name='compile_string'>   <arguments><argument name='source'><type><string/></type></argument><argument name='filename'><type><or><void/><string/></or></type></argument><argument name='handler'><type><or><object resolved='predef::compile_string'/><void/></or></type></argument><argument name='p'><type><or><void/><program/></or></type></argument><argument name='o'><type><or><void/><object resolved='predef::compile_string'/></or></type></argument><argument name='_show_if_constant_errors'><type><or><void/><int/></or></type></argument></arguments>   <returntype><program/></returntype>   </method>   </docgroup>   <docgroup homogen-name='copy_value' homogen-type='method'><doc><text><p>Copy a value recursively.</p>   <p> If the result value is changed destructively (only possible for    multisets, arrays and mappings) the copied value will not be changed.</p>   <p> The resulting value will always be equal to the copied (as tested with
autodoc.git/onepage.xml:9689:         <docgroup homogen-name='cp' homogen-type='method'><doc><text><p>Copies the file <ref resolved='predef::cp.from'>from</ref> to the new position <ref resolved='predef::cp.to'>to</ref>. This is an    alias for <ref resolved='predef::Stdio.cp'>Stdio.cp</ref>.</p>   </text></doc>   <method name='cp'>   <arguments><argument name='from'><type><string/></type></argument><argument name='to'><type><string/></type></argument></arguments>   <returntype><int/></returntype>   </method>   </docgroup> + <docgroup homogen-name='cpp' homogen-type='method'><doc><text><p>Run a string through the preprocessor.</p> + <p> Preprocesses the string <ref resolved='predef::cpp.data'>data</ref> with Pike's builtin ANSI-C look-alike +  preprocessor. If the <ref resolved='predef::cpp.current_file'>current_file</ref> argument has not been specified, +  it will default to <expr>"-"</expr>. <ref resolved='predef::cpp.charset'>charset</ref> defaults to <expr>"ISO-10646"</expr>.</p> + <p> If the second argument is a mapping, no other arguments may follow. +  Instead, they have to be given as members of the mapping (if wanted). +  The following members are recognized:</p> + <mapping><group><member><type><string/></type><index>"current_file"</index></member><text><p>Name of the current file. It is used for generating +  #line directives and for locating include files.</p> + </text></group><group><member><type><or><int/><string/></or></type><index>"charset"</index></member><text><p>Charset to use when processing <expr>data</expr>.</p> + </text></group><group><member><type><object resolved='predef::cpp'/></type><index>"handler"</index></member><text><p>Compilation handler.</p> + </text></group><group><member><type><int/></type><index>"compat_major"</index></member><text><p>Sets the major pike version used for compat handling.</p> + </text></group><group><member><type><int/></type><index>"compat_minor"</index></member><text><p>Sets the minor pike version used for compat handling.</p> + </text></group><group><member><type><int/></type><index>"picky_cpp"</index></member><text><p>Generate more warnings.</p> + </text></group><group><member><type><int/></type><index>"keep_comments"</index></member><text><p>This option keeps <ref resolved='predef::cpp'>cpp()</ref> from removing comments. +  Useful in combination with the prefix feature below.</p> + </text></group><group><member><type><string/></type><index>"prefix"</index></member><text><p>If a prefix is given, only prefixed directives will be +  processed. For example, if the prefix is <expr>"foo"</expr>, then +  <expr>#foo_ifdef COND</expr> and <expr>foo___LINE__</expr> would be +  processed, <expr>#ifdef COND</expr> and <expr>__LINE__</expr> would not.</p> + </text></group></mapping> + </text><group><seealso/><text><p><ref resolved='predef::compile'>compile()</ref></p> + </text></group></doc> + <method name='cpp'> + <arguments><argument name='data'><type><string/></type></argument><argument name='current_file'><type><or><mapping/><string/><void/></or></type></argument><argument name='charset'><type><or><int/><string/><void/></or></type></argument><argument name='handler'><type><or><object resolved='predef::cpp'/><void/></or></type></argument><argument name='compat_major'><type><or><void/><int/></or></type></argument><argument name='compat_minor'><type><or><void/><int/></or></type></argument><argument name='picky_cpp'><type><or><void/><int/></or></type></argument></arguments> + <returntype><string/></returntype> + </method> + </docgroup>   <docgroup homogen-name='crypt' homogen-type='method'><doc><text><p>This function crypts and verifies a short string (only the first    8 characters are significant).</p>   <p> The first syntax crypts the string <ref resolved='predef::crypt.password'>password</ref> into something that    is hopefully hard to decrypt.</p>   <p> The second syntax is used to verify <ref>typed_password</ref> against    <ref resolved='predef::crypt.crypted_password'>crypted_password</ref>, and returns <expr>1</expr> if they match, and    <expr>0</expr> (zero) otherwise.</p>   <p> The third syntax generates a random string and then crypts it,    creating a string useful as a password.</p>   </text><group><note/><text><p>Note that strings containing null characters will only be
autodoc.git/onepage.xml:10755:   </text></group></doc>   <method name='hash_value'>   <arguments><argument name='value'><type><mixed/></type></argument></arguments>   <returntype><int/></returntype>   </method>   </docgroup>             + <docgroup homogen-name='' homogen-type='import'> + <import name=''><classname resolved='cpp::'>cpp::</classname></import> + </docgroup>   <docgroup homogen-name='indices' homogen-type='method'><doc><text><p>Return an array of all valid indices for the value <ref resolved='predef::indices.x'>x</ref>.</p>   </text><group><param name='x'/><text><mixed><group><type><string/></type><type><array/></type><text><p>For strings and arrays this is simply an array of ascending    numbers.</p>   </text></group><group><type><mapping/></type><type><multiset/></type><text><p>For mappings and multisets, the array might contain any value.</p>   </text></group><group><type><object resolved='predef::indices'/></type><text><p>For objects which define <ref resolved='lfun::_indices'>lfun::_indices()</ref> that return value    is used.</p>   <p> For other objects an array with the names of all non-protected    symbols is returned.</p>   </text></group></mixed>   </text></group><group><seealso/><text><p><ref resolved='predef::values'>values()</ref>, <ref resolved='predef::types'>types()</ref>, <ref resolved='lfun::_indices'>lfun::_indices()</ref></p>
autodoc.git/onepage.xml:12493:   <method name='values'>   <arguments><argument name='x'><type><or><string/><array/><mapping/><multiset/><object resolved='predef::values'/></or></type></argument></arguments>   <returntype><array/></returntype>   </method>   </docgroup>      <docgroup homogen-name='version' homogen-type='method'><doc><text><p>Report the version of Pike. Does the same as</p>   <code><text><p>sprintf("Pike v%d.%d release %d", __REAL_VERSION__,    __REAL_MINOR__, __REAL_BUILD__);</p>   </text></code> - </text><group><seealso/><text><p><ref>__VERSION__</ref>, <ref>__MINOR__</ref>, <ref>__BUILD__</ref>, -  <ref>__REAL_VERSION__</ref>, <ref>__REAL_MINOR__</ref>, <ref>__REAL_BUILD__</ref>,</p> + </text><group><seealso/><text><p><ref resolved='cpp::.__VERSION__'>__VERSION__</ref>, <ref resolved='cpp::.__MINOR__'>__MINOR__</ref>, <ref resolved='cpp::.__BUILD__'>__BUILD__</ref>, +  <ref resolved='cpp::.__REAL_VERSION__'>__REAL_VERSION__</ref>, <ref resolved='cpp::.__REAL_MINOR__'>__REAL_MINOR__</ref>, <ref resolved='cpp::.__REAL_BUILD__'>__REAL_BUILD__</ref>,</p>   </text></group></doc>   <method name='version'>   <arguments/>   <returntype><string/></returntype>   </method>   </docgroup>   <docgroup homogen-name='werror' homogen-type='method'><doc><text><p>Writes a string on stderr. Works just like <ref resolved='predef::Stdio.Fd.write'>Stdio.File.write</ref>    on <ref resolved='predef::Stdio.stderr'>Stdio.stderr</ref>.</p>   </text></doc>   <method name='werror'>
autodoc.git/onepage.xml:17158:   </docgroup>   <docgroup homogen-name='encode' homogen-type='method'><doc><text><p>Encodes a string using Bootstring encoding into a string constisting    only of "basic" code points (&lt; initial_n).</p>   </text></doc>   <method name='encode'>   <arguments><argument name='s'><type><string/></type></argument></arguments>   <returntype><string/></returntype>   </method>   </docgroup>   </class> + <module name='Builtin'> + <docgroup homogen-name='_take_over_initial_predefines' homogen-type='method'><doc><text><p>Returns a mapping containing the set of predefined macros. +  These are typically the macros defined via the <tt>-D</tt> option +  when starting Pike.</p> + <p> This function is typically called by the <ref resolved='predef::MasterObject'>MasterObject</ref> at +  initialization, and may only be called once. After it has been called, +  <ref resolved='predef::cpp'>cpp()</ref> will start calling <ref>CompilationHandler-&gt;get_predefines()</ref> to +  retrieve the set of predefined macros.</p> + </text><group><seealso/><text><p>[cpp()], <ref>CompilationHandler-&gt;get_predefines()</ref></p> + </text></group></doc> + <method name='_take_over_initial_predefines'> + <arguments/> + <returntype><mapping><indextype><string/></indextype><valuetype><mixed/></valuetype></mapping></returntype> + </method> + </docgroup> + </module>   <module name='Bz2'>   <doc><text><p>The Bz2 module contains functions to compress and uncompress    strings using the same algorithm as the program <tt>bzip2</tt>.    Compressing and decompressing can be done in streaming mode    feeding the compress and decompress objects with arbitrarily large    pieces of data.</p>   <p> The Bz2 module consists of three classes; <ref resolved='predef::Bz2.Deflate'>Bz2.Deflate</ref>,    <ref resolved='predef::Bz2.Inflate'>Bz2.Inflate</ref> and <ref resolved='predef::Bz2.File'>Bz2.File</ref>. <ref resolved='predef::Bz2.Deflate'>Bz2.Deflate</ref> is used to compress    data and <ref resolved='predef::Bz2.Inflate'>Bz2.Inflate</ref> is used to uncompress data. <ref resolved='predef::Bz2.File'>Bz2.File</ref> is    used to handle Bzip2 files.</p>
autodoc.git/onepage.xml:17381:    }</p>   </text></group><group><seealso/><text><p><ref resolved='predef::Bz2.Deflate.deflate'>Bz2.Deflate-&gt;deflate()</ref></p>   </text></group></doc>   <method name='inflate'>   <arguments><argument name='data'><type><string/></type></argument></arguments>   <returntype><string/></returntype>   </method>   </docgroup>   </class>   </module> + <class name='CPP'> + <doc><text><p>The state for an instance of the preprocessor.</p> + </text><group><seealso/><text><p><ref resolved='predef::cpp'>predef::cpp()</ref></p> + </text></group></doc> + <class name='CompilationHandler'> + <doc><text><p>Objects used by the compiler to handle references to global symbols, +  modules, external files, etc.</p> + <p> There can be up to three compilation handlers active at the same +  time during a compilation. They are in order of precedence:</p> + <ol><group><item/><text><p>The error handler</p> + <p> This is the object passed to <ref resolved='predef::compile'>compile()</ref> as +  the second argument (if any). This object is returned by +  <ref resolved='predef::get_active_error_handler'>get_active_error_handler()</ref> during a compilation.</p> + </text></group><group><item/><text><p>The compatibility handler</p> + <p> This is the object returned by +  <ref>master()-&gt;get_compilation_handler()</ref> (if any), which +  the compiler calls when it sees <tt>#pike</tt>-directives, +  or expressions using the version scope +  (eg <expr>7.4::rusage</expr>). This object is returned by +  <ref resolved='predef::get_active_compilation_handler'>get_active_compilation_handler()</ref> during a compilation.</p> + </text></group><group><item/><text><p>The master object.</p> + <p> This is returned by <ref resolved='predef::master'>master()</ref> at any time.</p> + </text></group></ol><p>Any of the objects may implement a subset of the <ref resolved='predef::CPP.CompilationHandler'>CompilationHandler</ref> +  functions, and the first object that implements a function will be +  used. The error handler object can thus be used to block certain +  functionality (eg to restrict the number of available functions).</p> + </text><group><seealso/><text><p><ref>master()-&gt;get_compilation_handler()</ref>, <ref resolved='predef::get_active_error_handler'>get_active_error_handler()</ref>, +  <ref resolved='predef::get_active_compilation_handler'>get_active_compilation_handler()</ref>, <ref resolved='predef::compile'>compile()</ref></p> + </text></group></doc> + <docgroup homogen-name='compile_error' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::compile'>compile()</ref> and <ref resolved='predef::cpp'>cpp()</ref> when they encounter +  errors in the code they compile.</p> + </text><group><param name='filename'/><text><p>File where the error was detected.</p> + </text></group><group><param name='line'/><text><p>Line where the error was detected.</p> + </text></group><group><param name='msg'/><text><p>Description of error.</p> + </text></group><group><seealso/><text><p><ref>compile_warning()</ref>.</p> + </text></group></doc> + <method name='compile_error'> + <arguments><argument name='filename'><type><string/></type></argument><argument name='line'><type><int/></type></argument><argument name='msg'><type><string/></type></argument></arguments> + <returntype><void/></returntype> + </method> + </docgroup> + <docgroup homogen-name='compile_exception' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::compile'>compile()</ref> and <ref resolved='predef::cpp'>cpp()</ref> if they trigger +  exceptions.</p> + </text></doc> + <method name='compile_exception'> + <arguments><argument name='exception'><type><mixed/></type></argument></arguments> + <returntype><void/></returntype> + </method> + </docgroup> + <docgroup homogen-name='get_predefines' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::cpp'>cpp()</ref> to get the set of global symbols.</p> + </text><group><returns/><text><p>Returns a mapping from symbol name to symbol value. +  Returns zero on failure.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::CPP.CompilationHandler.resolv'>resolv()</ref>, <ref>get_default_module()</ref></p> + </text></group></doc> + <method name='get_predefines'> + <arguments/> + <returntype><mapping><indextype><string/></indextype><valuetype><mixed/></valuetype></mapping></returntype> + </method> + </docgroup> + <docgroup homogen-name='handle_import' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::compile'>compile()</ref> and <ref resolved='predef::cpp'>cpp()</ref> to handle import +  directives specifying specific paths.</p> + </text><group><returns/><text><p>Returns the resolved value, or <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> on failure.</p> + </text></group></doc> + <method name='handle_import'> + <arguments><argument name='path'><type><string/></type></argument><argument name='filename'><type><string/></type></argument><argument name='handler'><type><object resolved='predef::CPP.CompilationHandler'>CompilationHandler</object></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='handle_include' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::cpp'>cpp()</ref> to resolv <expr>#include</expr> and <expr>#string</expr> +  directives.</p> + </text><group><param name='header_file'/><text><p>File that was requested for inclusion.</p> + </text></group><group><param name='current_file'/><text><p>File where the directive was found.</p> + </text></group><group><param name='is_local_ref'/><text><p>Specifies reference method.</p> + <int><group><value>0</value><text><p>Directive was <expr>#include &lt;header_file&gt;</expr>.</p> + </text></group><group><value>1</value><text><p>Directive was <expr>#include "header_file"</expr>.</p> + </text></group></int> + </text></group><group><returns/><text><p>Returns the filename to pass to <ref resolved='predef::CPP.CompilationHandler.read_include'>read_include()</ref> if found, +  and <expr>0</expr> (zero) on failure.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::CPP.CompilationHandler.read_include'>read_include()</ref></p> + </text></group></doc> + <method name='handle_include'> + <arguments><argument name='header_file'><type><string/></type></argument><argument name='current_file'><type><string/></type></argument><argument name='is_local_ref'><type><int><min>0</min><max>1</max></int></type></argument></arguments> + <returntype><string/></returntype> + </method> + </docgroup> + <docgroup homogen-name='read_include' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::cpp'>cpp()</ref> to read included files.</p> + </text><group><param name='filename'/><text><p>Filename as returned by <ref resolved='predef::CPP.CompilationHandler.handle_include'>handle_include()</ref>.</p> + </text></group><group><returns/><text><p>Returns a string with the content of the header file on success, +  and <expr>0</expr> (zero) on failure.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::CPP.CompilationHandler.handle_include'>handle_include()</ref></p> + </text></group></doc> + <method name='read_include'> + <arguments><argument name='filename'><type><string/></type></argument></arguments> + <returntype><string/></returntype> + </method> + </docgroup> + <docgroup homogen-name='resolv' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::compile'>compile()</ref> and <ref resolved='predef::cpp'>cpp()</ref> to resolv +  module references.</p> + </text><group><returns/><text><p>Returns the resolved value, or <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> on failure.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::CPP.CompilationHandler.get_predefines'>get_predefines()</ref></p> + </text></group></doc> + <method name='resolv'> + <arguments><argument name='symbol'><type><string/></type></argument><argument name='filename'><type><string/></type></argument><argument name='handler'><type><object resolved='predef::CPP.CompilationHandler'>CompilationHandler</object></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + </class> + <class name='MasterObject'> + <docgroup homogen-name='decode_charset' homogen-type='method'><doc><text><p>Convert <ref resolved='predef::CPP.MasterObject.decode_charset.raw'>raw</ref> from encoding <ref resolved='predef::CPP.MasterObject.decode_charset.charset'>charset</ref> to UNICODE.</p> + <p> This function is called by <ref resolved='predef::cpp'>cpp()</ref> when it encounters +  <expr>#charset</expr> directives.</p> + </text><group><param name='raw'/><text><p>String to convert.</p> + </text></group><group><param name='charset'/><text><p>Name of encoding that <ref resolved='predef::CPP.MasterObject.decode_charset.raw'>raw</ref> uses.</p> + </text></group><group><returns/><text><p><ref resolved='predef::CPP.MasterObject.decode_charset.raw'>raw</ref> decoded to UNICODE, or <expr>0</expr> (zero) if the decoding failed.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::Charset'>Charset</ref></p> + </text></group></doc> + <method name='decode_charset'> + <arguments><argument name='raw'><type><string/></type></argument><argument name='charset'><type><string/></type></argument></arguments> + <returntype><string/></returntype> + </method> + </docgroup> + <docgroup homogen-name='get_compilation_handler' homogen-type='method'><doc><text><p>Get compilation handler for simulation of Pike v<ref resolved='predef::CPP.MasterObject.get_compilation_handler.major'>major</ref>.<ref resolved='predef::CPP.MasterObject.get_compilation_handler.minor'>minor</ref>.</p> + <p> This function is called by <ref resolved='predef::cpp'>cpp()</ref> when it encounters +  <expr>#pike</expr> directives.</p> + </text><group><param name='major'/><text><p>Major version.</p> + </text></group><group><param name='minor'/><text><p>Minor version.</p> + </text></group><group><returns/><text><p>Returns a compilation handler for Pike &gt;= <ref resolved='predef::CPP.MasterObject.get_compilation_handler.major'>major</ref>.<ref resolved='predef::CPP.MasterObject.get_compilation_handler.minor'>minor</ref>.</p> + </text></group></doc> + <method name='get_compilation_handler'> + <arguments><argument name='major'><type><int/></type></argument><argument name='minor'><type><int/></type></argument></arguments> + <returntype><object resolved='predef::CPP.CompilationHandler'>CompilationHandler</object></returntype> + </method> + </docgroup> + <docgroup homogen-name='CompilationHandler' homogen-type='inherit'><doc><text><p>The master object acts as fallback compilation handler for +  <ref resolved='predef::compile'>compile()</ref> and <ref resolved='predef::cpp'>cpp()</ref>.</p> + </text></doc> + <inherit name='CompilationHandler'><classname resolved='predef::CPP.CompilationHandler'>CompilationHandler</classname></inherit> + </docgroup> + </class> + </class>   <module name='Cache'>   <doc><text><p>Common Caching implementation</p>   <p> This module serves as a front-end to different kinds of caching    systems. It uses two helper objects to actually store data, and to    determine expiration policies.</p>   <p> To create a new cache, do <ref resolved='predef::Cache.cache'>Cache.cache</ref>( <ref resolved='predef::Cache.Storage.Base'>Cache.Storage.Base</ref> storage_type, <ref resolved='predef::Cache.Policy.Base'>Cache.Policy.Base</ref> expiration_policy )</p>   <p> The cache store instances of <ref resolved='predef::Cache.Data'>Cache.Data</ref>.</p>   </text></doc>   <docgroup homogen-name='' homogen-type='import'>   <import name=''><classname resolved='predef::'>predef::</classname></import>
autodoc.git/onepage.xml:22494:   </text><group><note/><text><p>This function essentially performs</p>   <code><text><p>program compile(mixed ... args)    {    return PikeCompiler(@args)-&gt;compile();    }</p>   </text></code>   </text></group><group><note/><text><p>Note that <ref resolved='predef::CompilerEnvironment.compile.source'>source</ref> must contain the complete source for a program.    It is not possible to compile a single expression or statement.</p>   <p> Also note that <ref resolved='predef::CompilerEnvironment.compile'>compile()</ref> does not preprocess the program.    To preprocess the program you can use <ref resolved='predef::compile_string'>compile_string()</ref> or -  call the preprocessor manually by calling <ref>cpp()</ref>.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::compile_string'>compile_string()</ref>, <ref resolved='predef::compile_file'>compile_file()</ref>, <ref>cpp()</ref>, <ref resolved='predef::master'>master()</ref>, +  call the preprocessor manually by calling <ref resolved='predef::cpp'>cpp()</ref>.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::compile_string'>compile_string()</ref>, <ref resolved='predef::compile_file'>compile_file()</ref>, <ref resolved='predef::cpp'>cpp()</ref>, <ref resolved='predef::master'>master()</ref>,    <ref resolved='predef::CompilationHandler'>CompilationHandler</ref></p>   </text></group></doc>   <method name='compile'>   <arguments><argument name='source'><type><string/></type></argument><argument name='handler'><type><or><object resolved='predef::CompilationHandler'>CompilationHandler</object><void/></or></type></argument><argument name='major'><type><or><int/><void/></or></type></argument><argument name='minor'><type><or><int/><void/></or></type></argument><argument name='target'><type><or><program/><void/></or></type></argument><argument name='placeholder'><type><or><object resolved='predef::CompilerEnvironment.compile'/><void/></or></type></argument></arguments>   <returntype><program/></returntype>   </method>   </docgroup>   <docgroup homogen-name='get_compilation_handler' homogen-type='method'><doc><text><p>Get compatibility handler for Pike <ref resolved='predef::CompilerEnvironment.get_compilation_handler.major'>major</ref>.<ref resolved='predef::CompilerEnvironment.get_compilation_handler.minor'>minor</ref>.</p>   <p> The default implementation calls the corresponding    function in the master object.</p>
autodoc.git/onepage.xml:22614:   <docgroup homogen-name='change_compiler_compatibility' homogen-type='method'><doc><text><p>Change compiler to attempt to be compatible with Pike <ref resolved='predef::CompilerEnvironment.PikeCompiler.change_compiler_compatibility.major'>major</ref>.<ref resolved='predef::CompilerEnvironment.PikeCompiler.change_compiler_compatibility.minor'>minor</ref>.</p>   </text></doc>   <method name='change_compiler_compatibility'>   <arguments><argument name='major'><type><int/></type></argument><argument name='minor'><type><int/></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='compile' homogen-type='method'><doc><text><p>Compile the current source into a program.</p>   <p> This function compiles the current Pike source code    into a clonable program.</p> - </text><group><seealso/><text><p><ref resolved='predef::compile_string'>compile_string()</ref>, <ref resolved='predef::compile_file'>compile_file()</ref>, <ref>cpp()</ref>, <ref resolved='predef::master'>master()</ref>, + </text><group><seealso/><text><p><ref resolved='predef::compile_string'>compile_string()</ref>, <ref resolved='predef::compile_file'>compile_file()</ref>, <ref resolved='predef::cpp'>cpp()</ref>, <ref resolved='predef::master'>master()</ref>,    <ref resolved='predef::CompilationHandler'>CompilationHandler</ref>, <ref resolved='predef::CompilerEnvironment.PikeCompiler.create'>create()</ref></p>   </text></group></doc>   <method name='compile'>   <arguments/>   <returntype><program/></returntype>   </method>   </docgroup>   <docgroup homogen-name='create' homogen-type='method'><doc><text><p>Create a PikeCompiler object for a source string.</p>   <p> This function takes a piece of Pike code as a string and    initializes a compiler object accordingly.</p>
autodoc.git/onepage.xml:22642:    returned by <ref resolved='predef::__empty_program'>__empty_program()</ref> will be modified and returned    by <ref resolved='predef::CompilerEnvironment.PikeCompiler.compile'>compile()</ref> on success.</p>   </text></group><group><param name='placeholder'/><text><p><ref resolved='predef::.__null_program'>__null_program()</ref> placeholder object to fill in. The object    will be modified into an instance of the resulting program    on successfull compile. Note that <ref resolved='lfun::create'>lfun::create()</ref> in the    program will be called without any arguments.</p>   </text></group><group><note/><text><p>Note that <ref resolved='predef::CompilerEnvironment.PikeCompiler.create.source'>source</ref> must contain the complete source for a program.    It is not possible to compile a single expression or statement.</p>   <p> Also note that no preprocessing is performed.    To preprocess the program you can use <ref resolved='predef::compile_string'>compile_string()</ref> or -  call the preprocessor manually by calling <ref>cpp()</ref>.</p> +  call the preprocessor manually by calling <ref resolved='predef::cpp'>cpp()</ref>.</p>   </text></group><group><note/><text><p>Note that all references to <ref resolved='predef::CompilerEnvironment.PikeCompiler.create.target'>target</ref> and <ref resolved='predef::CompilerEnvironment.PikeCompiler.create.placeholder'>placeholder</ref> should    removed if <ref resolved='predef::CompilerEnvironment.PikeCompiler.compile'>compile()</ref> failes. On failure the <ref resolved='predef::CompilerEnvironment.PikeCompiler.create.placeholder'>placeholder</ref>    object will be destructed.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::compile_string'>compile_string()</ref>, <ref resolved='predef::compile_file'>compile_file()</ref>, <ref>cpp()</ref>, <ref resolved='predef::master'>master()</ref>, + </text></group><group><seealso/><text><p><ref resolved='predef::compile_string'>compile_string()</ref>, <ref resolved='predef::compile_file'>compile_file()</ref>, <ref resolved='predef::cpp'>cpp()</ref>, <ref resolved='predef::master'>master()</ref>,    <ref resolved='predef::CompilationHandler'>CompilationHandler</ref></p>   </text></group></doc>   <method name='create'>   <arguments><argument name='source'><type><or><string/><void/></or></type></argument><argument name='handler'><type><or><object resolved='predef::CompilationHandler'>CompilationHandler</object><void/></or></type></argument><argument name='major'><type><or><int/><void/></or></type></argument><argument name='minor'><type><or><int/><void/></or></type></argument><argument name='target'><type><or><program/><void/></or></type></argument><argument name='placeholder'><type><or><object resolved='predef::CompilerEnvironment.PikeCompiler.create'/><void/></or></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='get_compilation_handler' homogen-type='method'><doc><text><p>Get compatibility handler for Pike <ref resolved='predef::CompilerEnvironment.PikeCompiler.get_compilation_handler.major'>major</ref>.<ref resolved='predef::CompilerEnvironment.PikeCompiler.get_compilation_handler.minor'>minor</ref>.</p>   </text><group><note/><text><p>This function is called by <ref resolved='predef::CompilerEnvironment.PikeCompiler.change_compiler_compatibility'>change_compiler_compatibility()</ref>.</p>   </text></group></doc>
autodoc.git/onepage.xml:88675:   </docgroup>   <docgroup homogen-name='show_doc' homogen-type='method'><doc><text><p>Show documentation for the item <ref resolved='predef::MasterObject.show_doc.obj'>obj</ref></p>   </text><group><param name='obj'/><text><p>The object for which the documentation should be shown</p>   </text></group><group><returns/><text><p>an AutoDoc object</p>   </text></group></doc>   <method name='show_doc'>   <arguments><argument name='obj'><type><or><program/><object resolved='predef::MasterObject.show_doc'/><function/></or></type></argument></arguments>   <returntype><object resolved='predef::MasterObject.show_doc'/></returntype>   </method>   </docgroup> - <docgroup homogen-name='show_if_constant_errors' homogen-type='variable'><doc><text><p>Show compilation warnings from compilation of <ref>cpp()</ref> + <docgroup homogen-name='show_if_constant_errors' homogen-type='variable'><doc><text><p>Show compilation warnings from compilation of <ref resolved='predef::cpp'>cpp()</ref>    <expr>#if constant()</expr> expressions.</p>   <p> This is typically set via the option <expr>"--picky-cpp"</expr>.</p>   </text></doc>   <variable name='show_if_constant_errors'><type><int/></type></variable>   </docgroup>   <docgroup homogen-name='thread_quanta_exceeded' homogen-type='method'><doc><text><p>Function called when a thread has exceeded the thread quanta.</p>   </text><group><param name='thread'/><text><p>Thread that exceeded the thread quanta.</p>   </text></group><group><param name='ns'/><text><p>Number of nanoseconds that the thread executed before allowing    other threads to run.</p>   <p> The default master prints a diagnostic and the thread backtrace
autodoc.git/onepage.xml:88761:    the ZIP archive (see the subpath argument).</p>   </text></group><group><param name='subpath'/><text><p>if path is a ZIP archive, this argument will determine the path within    the archive to be searched.</p>   </text></group></doc>   <method name='add_module_path'>   <arguments><argument name='path'><type><string/></type></argument><argument name='subpath'><type><or><string/><void/></or></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='add_predefine' homogen-type='method'><doc><text><p>Add a define (without arguments) which will be implicitly -  defined in <ref>cpp</ref> calls.</p> +  defined in <ref resolved='predef::cpp'>cpp</ref> calls.</p>   </text></doc>   <method name='add_predefine'>   <arguments><argument name='name'><type><string/></type></argument><argument name='value'><type><mixed/></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='add_program_path' homogen-type='method'><doc><text><p>Add a directory to search for programs.</p>   <p> This is the same as the command line option <tt>-P</tt>.</p>   </text><group><seealso/><text><p><ref resolved='predef::MasterObject.CompatResolver.remove_program_path'>remove_program_path()</ref></p>   </text></group></doc>
autodoc.git/onepage.xml:88870:   <docgroup homogen-name='remove_module_path' homogen-type='method'><doc><text><p>Remove a directory to search for modules.</p>   <p> This function performs the reverse operation of <ref resolved='predef::MasterObject.CompatResolver.add_module_path'>add_module_path()</ref>.</p>   </text><group><seealso/><text><p><ref resolved='predef::MasterObject.CompatResolver.add_module_path'>add_module_path()</ref></p>   </text></group></doc>   <method name='remove_module_path'>   <arguments><argument name='tmp'><type><string/></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='remove_predefine' homogen-type='method'><doc><text><p>Remove a define from the set that are implicitly defined in -  <ref>cpp</ref> calls.</p> +  <ref resolved='predef::cpp'>cpp</ref> calls.</p>   </text></doc>   <method name='remove_predefine'>   <arguments><argument name='name'><type><string/></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='remove_program_path' homogen-type='method'><doc><text><p>Remove a directory to search for programs.</p>   <p> This function performs the reverse operation of <ref resolved='predef::MasterObject.CompatResolver.add_program_path'>add_program_path()</ref>.</p>   </text><group><seealso/><text><p><ref resolved='predef::MasterObject.CompatResolver.add_program_path'>add_program_path()</ref></p>   </text></group></doc>
autodoc.git/onepage.xml:96614:   <variable name='lr_error'><type><int/></type></variable>   </docgroup>   <docgroup homogen-name='make_parser' homogen-type='method'><doc><text><p>Compiles the parser-specification given in the first argument.    Named actions are taken from the object if available, otherwise    left as is.</p>   </text><group><bugs/><text><p>Returns error-code in both GrammarParser.error and    return_value-&gt;lr_error.</p>   </text></group></doc>   <method name='make_parser'>   <arguments><argument name='str'><type><string/></type></argument><argument name='m'><type><or><object resolved='predef::Parser.LR.GrammarParser.make_parser'/><void/></or></type></argument></arguments> - <returntype><object resolved='predef::Parser'>Parser</object></returntype> + <returntype><object resolved='predef::Parser.LR.Parser'>Parser</object></returntype>   </method>   </docgroup>   <docgroup homogen-name='make_parser_from_file' homogen-type='method'><doc><text><p>Compiles the file specified in the first argument into an LR parser.</p>   </text><group><seealso/><text><p><ref resolved='predef::Parser.LR.GrammarParser.make_parser'>make_parser</ref></p>   </text></group></doc>   <method name='make_parser_from_file'>   <arguments><argument name='fname'><type><string/></type></argument><argument name='m'><type><or><object resolved='predef::Parser.LR.GrammarParser.make_parser_from_file'/><void/></or></type></argument></arguments> - <returntype><or><int/><object resolved='predef::Parser'>Parser</object></or></returntype> + <returntype><or><int/><object resolved='predef::Parser.LR.Parser'>Parser</object></or></returntype>   </method>   </docgroup>   </module>   <class name='Parser'>   <doc><text><p>This object implements an LALR(1) parser and compiler.</p>   <p> Normal use of this object would be:</p>   <p> <pre>    set_error_handler    {add_rule, set_priority, set_associativity}*    set_symbol_to_string
autodoc.git/onepage.xml:99456:   </docgroup>   <docgroup homogen-type='constant'><doc><text><p>Flags for use together with <ref resolved='predef::set_weak_flag'>set_weak_flag</ref> and <ref resolved='predef::get_weak_flag'>get_weak_flag</ref>.    See <ref resolved='predef::set_weak_flag'>set_weak_flag</ref> for details.</p>   </text></doc>   <constant name='WEAK_INDICES'><modifiers><local/></modifiers></constant>   <constant name='WEAK_VALUES'><modifiers><local/></modifiers></constant>   <constant name='WEAK'><modifiers><local/></modifiers></constant>   </docgroup>   <docgroup homogen-name='__HAVE_CPP_PREFIX_SUPPORT__' homogen-type='constant'><doc><text><p>This constant exists and has the value 1 if cpp supports    the prefix feature.</p> - </text><group><seealso/><text><p><ref>cpp()</ref></p> + </text><group><seealso/><text><p><ref resolved='predef::cpp'>cpp()</ref></p>   </text></group></doc>   <constant name='__HAVE_CPP_PREFIX_SUPPORT__'><modifiers><local/></modifiers></constant>   </docgroup>   <docgroup homogen-name='count_memory' homogen-type='method'><doc><text><p>In brief, if you call <expr>Pike.count_memory(0,x)</expr> you get back    the number of bytes <expr>x</expr> occupies in memory.</p>   <p> The detailed story is a bit longer:</p>   <p> This function calculates the number of bytes that all <ref resolved='predef::Pike.count_memory.things'>things</ref>    occupy. Or put another way, it calculates the number of bytes that    would be freed if all those things would lose their references at    the same time, i.e. not only the memory in the things themselves,
autodoc.git/onepage.xml:121199:   </text><group><seealso/><text><p><ref resolved='predef::Sql.tds.big_query'>big_query()</ref></p>   </text></group></doc>   <method name='create'><modifiers><protected/></modifiers>   <arguments><argument name='query'><type><string/></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   </class>   </class>   </module> + <class name='Stack'> + <doc><text><p>This class implements a simple stack. Instead of adding and removing +  elements to an array, and thus making it vary in size for every push +  and pop operation, this stack tries to keep the stack size constant. +  If however the stack risks to overflow, it will allocate double its +  current size, i.e. pushing an element on an full 32 slot stack will +  result in a 64 slot stack with 33 elements.</p> + </text></doc> + <docgroup homogen-name='_search' homogen-type='method'><doc><text><p>Return the stack-depth to <ref resolved='predef::Stack._search.item'>item</ref>.</p> + <p> This function makes it possible to use +  eg <ref resolved='predef::search'>search()</ref> and <ref resolved='predef::has_value'>has_value()</ref> on the stack.</p> + </text></doc> + <method name='_search'> + <arguments><argument name='item'><type><mixed/></type></argument></arguments> + <returntype><int/></returntype> + </method> + </docgroup> + <docgroup homogen-name='_sizeof' homogen-type='method'><doc><text><p><ref resolved='predef::sizeof'>sizeof</ref> on a stack returns the number of entries +  in the stack.</p> + </text></doc> + <method name='_sizeof'> + <arguments/> + <returntype><int/></returntype> + </method> + </docgroup> + <docgroup homogen-name='_values' homogen-type='method'><doc><text><p><ref resolved='predef::values'>values</ref> on a stack returns all the entries in +  the stack, in order.</p> + </text></doc> + <method name='_values'> + <arguments/> + <returntype><array/></returntype> + </method> + </docgroup> + <docgroup homogen-name='`+' homogen-type='method'><doc><text><p>A stack added with another stack yields a new +  stack with all the elements from both stacks, +  and the elements from the second stack at the +  top of the new stack.</p> + </text></doc> + <method name='`+'> + <arguments><argument name='s'><type><object resolved='predef::Stack'>this_program</object></type></argument></arguments> + <returntype><object resolved='predef::Stack'>this_program</object></returntype> + </method> + </docgroup> + <docgroup homogen-name='create' homogen-type='method'><doc><text><p>An initial stack size can be given when +  a stack is cloned. The default value is +  32.</p> + </text></doc> + <method name='create'> + <arguments><argument name='initial_size'><type><or><int/><void/></or></type></argument></arguments> + <returntype><void/></returntype> + </method> + </docgroup> + <docgroup homogen-name='pop' homogen-type='method'><doc><text><p>Pops and returns entry <ref resolved='predef::Stack.pop.val'>val</ref> from the stack, counting +  from the top. If no value is given the top element is +  popped and returned. All popped entries are freed from +  the stack.</p> + </text></doc> + <method name='pop'> + <arguments><argument name='val'><type><or><void/><int/></or></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='push' homogen-type='method'><doc><text><p>Push an element on the top of the stack.</p> + </text></doc> + <method name='push'> + <arguments><argument name='val'><type><mixed/></type></argument></arguments> + <returntype><void/></returntype> + </method> + </docgroup> + <docgroup homogen-name='quick_pop' homogen-type='method'><doc><text><p>Pops <ref resolved='predef::Stack.quick_pop.val'>val</ref> entries from the stack, or one entry +  if no value is given. The popped entries are not +  returned.</p> + </text></doc> + <method name='quick_pop'> + <arguments><argument name='val'><type><or><void/><int/></or></type></argument></arguments> + <returntype><void/></returntype> + </method> + </docgroup> + <docgroup homogen-name='reset' homogen-type='method'><doc><text><p>Empties the stack, resets the stack pointer +  and shrinks the stack size to the given value +  or 32 if none is given.</p> + </text><group><seealso/><text><p><ref resolved='predef::Stack.create'>create</ref></p> + </text></group></doc> + <method name='reset'> + <arguments><argument name='initial_size'><type><or><int/><void/></or></type></argument></arguments> + <returntype><void/></returntype> + </method> + </docgroup> + <docgroup homogen-name='set_stack' homogen-type='method'><doc><text><p>Sets the stacks content to the provided array.</p> + </text></doc> + <method name='set_stack'> + <arguments><argument name='stack'><type><array/></type></argument></arguments> + <returntype><void/></returntype> + </method> + </docgroup> + <docgroup homogen-name='top' homogen-type='method'><doc><text><p>Returns the top element from the stack, without +  popping it.</p> + </text><group><throws/><text><p>Throws an error if called on an empty stack.</p> + </text></group></doc> + <method name='top'> + <arguments/> + <returntype><mixed/></returntype> + </method> + </docgroup> + </class>   <module name='Standards'>   <module name='ASN1'>   <docgroup homogen-name='decode_der_oid' homogen-type='method'><doc><text><p>Convenience function to convert a DER/BER encoded oid (object    identifier) to the human readable dotted-decimal form.</p>   </text><group><seealso/><text><p><ref resolved='predef::Standards.ASN1.encode_der_oid'>encode_der_oid</ref></p>   </text></group></doc>   <method name='decode_der_oid'>   <arguments><argument name='der_oid'><type><string/></type></argument></arguments>   <returntype><string/></returntype>   </method>
autodoc.git/onepage.xml:123648:    public keys must be set.</p>   </text></group><group><param name='name'/><text><p>The distinguished name for the certificate.</p>   </text></group><group><param name='attributes'/><text><p>Attributes from PKCS #9 to add to the certificate.</p>   </text></group><group><param name='hash'/><text><p>Hash algoritm to use for the CSR signature.    Defaults to <ref resolved='predef::Crypto.SHA256'>Crypto.SHA256</ref>.</p>   </text></group><group><note/><text><p>Prior to Pike 8.0 this function only supported signing    with <ref resolved='predef::Crypto.RSA'>Crypto.RSA</ref> and the default (and only) hash was    <ref resolved='predef::Crypto.MD5'>Crypto.MD5</ref>.</p>   </text></group></doc>   <method name='build_csr'> - <arguments><argument name='sign'><type><object resolved='predef::Crypto.Sign'>Crypto.Sign</object></type></argument><argument name='name'><type><object resolved='predef::Standards.ASN1.Types.Sequence'>Sequence</object></type></argument><argument name='attributes'><type><mapping><indextype><string/></indextype><valuetype><array><valuetype><object resolved='predef::Object'>Object</object></valuetype></array></valuetype></mapping></type></argument><argument name='hash'><type><or><object resolved='predef::Crypto.Hash'>Crypto.Hash</object><void/></or></type></argument></arguments> + <arguments><argument name='sign'><type><object resolved='predef::Crypto.Sign'>Crypto.Sign</object></type></argument><argument name='name'><type><object resolved='predef::Standards.ASN1.Types.Sequence'>Sequence</object></type></argument><argument name='attributes'><type><mapping><indextype><string/></indextype><valuetype><array><valuetype><object resolved='predef::Standards.ASN1.Types.Object'>Object</object></valuetype></array></valuetype></mapping></type></argument><argument name='hash'><type><or><object resolved='predef::Crypto.Hash'>Crypto.Hash</object><void/></or></type></argument></arguments>   <returntype><object resolved='predef::Standards.ASN1.Types.Sequence'>Sequence</object></returntype>   </method>   </docgroup>   <docgroup homogen-name='' homogen-type='import'>   <import name=''><classname resolved='predef::'>predef::</classname></import>   </docgroup>   <docgroup homogen-name='Types' homogen-type='import'>   <import name='Types'><classname resolved='predef::Standards.ASN1.Types'>Standards.ASN1.Types</classname></import>   </docgroup>   <docgroup homogen-name='sign_cri' homogen-type='method'><doc><text><p>Sign a <ref resolved='predef::Standards.PKCS.CSR.CRI'>CRI</ref> to generate a Certificate Signing Request.</p>
autodoc.git/onepage.xml:124098:   <p>Setting</p>   <p> The signature.</p>   </text></doc>   <variable name='signature'><type><object resolved='predef::Standards.ASN1.Types.BitString'>BitString</object></type></variable>   </docgroup>   <docgroup homogen-name='tbs' homogen-type='variable'><doc><text><p>Getting</p>   <p> ASN.1 structure that has been signed.</p>   <p>Setting</p>   <p> ASN.1 structure that has been signed.</p>   </text></doc> - <variable name='tbs'><type><object resolved='predef::Object'>Object</object></type></variable> + <variable name='tbs'><type><object resolved='predef::Standards.ASN1.Types.Object'>Object</object></type></variable>   </docgroup>   </class>   </module>   </module>   <module name='TLD'>   <docgroup homogen-name='cc' homogen-type='constant'><doc><text><p>A mapping between country TLDs and the name of the country.</p>   </text></doc>   <constant name='cc'/>   </docgroup>   <docgroup homogen-name='generic' homogen-type='variable'><doc><text><p>A multiset containing the generic TLDs, such as "com" and "info".</p>
autodoc.git/onepage.xml:124610:   <method name='load_authorities'>   <arguments><argument name='root_cert_dirs'><type><or><string/><array><valuetype><string/></valuetype></array><void/></or></type></argument><argument name='cache'><type><or><int><min>0</min><max>1</max></int><void/></or></type></argument></arguments>   <returntype><mapping><indextype><string/></indextype><valuetype><array><valuetype><object resolved='predef::Standards.X509.Verifier'>Verifier</object></valuetype></array></valuetype></mapping></returntype>   </method>   </docgroup>   <docgroup homogen-name='make_extension' homogen-type='method'><doc><text><p>Creates a certificate extension with the <ref resolved='predef::Standards.X509.make_extension.id'>id</ref> as identifier and    <ref resolved='predef::Standards.X509.make_extension.ext'>ext</ref> as the extension payload. If the <ref resolved='predef::Standards.X509.make_extension.critical'>critical</ref> flag is set    the extension will be marked as critical.</p>   </text></doc>   <method name='make_extension'> - <arguments><argument name='id'><type><object resolved='predef::Standards.ASN1.Types.Identifier'>Identifier</object></type></argument><argument name='ext'><type><object resolved='predef::Object'>Object</object></type></argument><argument name='critical'><type><or><void/><int/></or></type></argument></arguments> + <arguments><argument name='id'><type><object resolved='predef::Standards.ASN1.Types.Identifier'>Identifier</object></type></argument><argument name='ext'><type><object resolved='predef::Standards.ASN1.Types.Object'>Object</object></type></argument><argument name='critical'><type><or><void/><int/></or></type></argument></arguments>   <returntype><object resolved='predef::Standards.ASN1.Types.Sequence'>Sequence</object></returntype>   </method>   </docgroup>   <docgroup homogen-name='make_selfsigned_certificate' homogen-type='method'><doc><text><p>Creates a selfsigned certificate, i.e. where issuer and subject    are the same entity. This entity is derived from the list of pairs    in <ref resolved='predef::Standards.X509.make_selfsigned_certificate.name'>name</ref>, which is encoded into an distinguished_name by    <ref resolved='predef::Standards.PKCS.Certificate.build_distinguished_name'>Standards.PKCS.Certificate.build_distinguished_name</ref>.</p>   </text><group><param name='c'/><text><p>The public key cipher used for the certificate, <ref resolved='predef::Crypto.RSA'>Crypto.RSA</ref>,    <ref resolved='predef::Crypto.DSA'>Crypto.DSA</ref> or <ref resolved='predef::Crypto.ECC.Curve.ECDSA'>Crypto.ECC.Curve.ECDSA</ref>. The object should be    initialized with both public and private keys.</p>
autodoc.git/onepage.xml:124894:   </docgroup>   <docgroup homogen-name='ext_subjectKeyIdentifier' homogen-type='variable'><doc><text><p>Set to the value of the SubjectKeyIdentifier if the certificate    contains the subjectKeyIdentifier    extension. <rfc>3280:4.2.1.2</rfc>.</p>   </text></doc>   <variable name='ext_subjectKeyIdentifier'><type><string/></type></variable>   </docgroup>   <docgroup homogen-name='extensions' homogen-type='variable'><doc><group><note/><text><p>optional</p>   </text></group><group><note/><text><p>Read only</p>   </text></group></doc> - <variable name='extensions'><type><mapping><indextype><object resolved='predef::Standards.ASN1.Types.Identifier'>Identifier</object></indextype><valuetype><object resolved='predef::Object'>Object</object></valuetype></mapping></type></variable> + <variable name='extensions'><type><mapping><indextype><object resolved='predef::Standards.ASN1.Types.Identifier'>Identifier</object></indextype><valuetype><object resolved='predef::Standards.ASN1.Types.Object'>Object</object></valuetype></mapping></type></variable>   </docgroup>   <docgroup homogen-name='hash' homogen-type='variable'><doc><text><p>Algorithm hash if known and supported.    Otherwise <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref>.</p>   </text><group><note/><text><p>Read only</p>   </text></group></doc>   <variable name='hash'><type><object resolved='predef::Crypto.Hash'>Crypto.Hash</object></type></variable>   </docgroup>   <docgroup homogen-name='Sequence' homogen-type='inherit'>   <inherit name='Sequence'><classname resolved='predef::Standards.ASN1.Types.Sequence'>Sequence</classname></inherit>   </docgroup>   <docgroup homogen-name='init' homogen-type='method'><doc><text><p>Populates the object from a certificate decoded into an ASN.1    Object. Returns the object on success, otherwise <expr>0</expr>. You    probably want to call <ref resolved='predef::Standards.X509.decode_certificate'>decode_certificate</ref> or even    <ref resolved='predef::Standards.X509.verify_certificate'>verify_certificate</ref>.</p>   </text></doc>   <method name='init'> - <arguments><argument name='asn1'><type><or><array/><object resolved='predef::Object'>Object</object></or></type></argument></arguments> + <arguments><argument name='asn1'><type><or><array/><object resolved='predef::Standards.ASN1.Types.Object'>Object</object></or></type></argument></arguments>   <returntype><object resolved='predef::Standards.X509.TBSCertificate'>this_program</object></returntype>   </method>   </docgroup>   <docgroup homogen-name='internal_critical' homogen-type='variable'><doc><group><note/><text><p>optional</p>   </text></group></doc>   <variable name='internal_critical'><modifiers><protected/></modifiers><type><multiset/></type></variable>   </docgroup>   <docgroup homogen-name='internal_extensions' homogen-type='variable'><doc><group><note/><text><p>optional</p>   </text></group></doc> - <variable name='internal_extensions'><modifiers><protected/></modifiers><type><mapping><indextype><object resolved='predef::Standards.ASN1.Types.Identifier'>Identifier</object></indextype><valuetype><object resolved='predef::Object'>Object</object></valuetype></mapping></type></variable> + <variable name='internal_extensions'><modifiers><protected/></modifiers><type><mapping><indextype><object resolved='predef::Standards.ASN1.Types.Identifier'>Identifier</object></indextype><valuetype><object resolved='predef::Standards.ASN1.Types.Object'>Object</object></valuetype></mapping></type></variable>   </docgroup>   <docgroup homogen-name='issuer' homogen-type='variable'><doc><text><p>Certificate issuer.</p>   </text></doc>   <variable name='issuer'><type><void/></type></variable>   </docgroup>   <docgroup homogen-name='issuer_id' homogen-type='variable'><doc><group><note/><text><p>optional</p>   </text></group></doc>   <variable name='issuer_id'><type><void/></type></variable>   </docgroup>   <docgroup homogen-name='keyinfo' homogen-type='variable'>
autodoc.git/onepage.xml:145583:   <inherit name='joinnode'><classname resolved='predef::MasterObject.joinnode'>MasterObject.joinnode</classname></inherit>   </docgroup>   </class>   <enum name='bool'>   <doc><text><p>Boolean datatype.</p>   </text></doc>   <docgroup homogen-type='constant'><constant name='false'/>   <constant name='true'/>   </docgroup>   </enum> + <class name='define'> + <docgroup homogen-name='`()' homogen-type='method'><doc><group><param name='arguments'/><text><p>Array of arguments to the macro. Zero if no parenthesis.</p> + </text></group><group><param name='context'/><text><p>CPP context we are evaluating in.</p> + </text></group><group><returns/><text><p>Returns the expansion of the macro.</p> + </text></group></doc> + <method name='`()'> + <arguments><argument name='arguments'><type><or><array><valuetype><string/></valuetype></array><void/></or></type></argument><argument name='context'><type><or><object resolved='predef::CPP'>CPP</object><void/></or></type></argument><argument name='flags'><type><or><int/><void/></or></type></argument></arguments> + <returntype><string/></returntype> + </method> + </docgroup> + </class>   <class name='mklibpike'>   <docgroup homogen-name='parse' homogen-type='method'><doc><text><p>Returns a mapping from symbol to a tuple of return type and parameters.</p>   </text></doc>   <method name='parse'>   <arguments><argument name='tokens'><type><array><valuetype><object resolved='predef::Parser.C.Token'>Parser.C.Token</object></valuetype></array></type></argument></arguments>   <returntype><mapping><indextype><string/></indextype><valuetype><array><valuetype><array><valuetype><object resolved='predef::Parser.C.Token'>Parser.C.Token</object></valuetype></array></valuetype></array></valuetype></mapping></returntype>   </method>   </docgroup>   <class name='C_Include_Handler'>   <docgroup homogen-name='create' homogen-type='method'>