summaryrefslogtreecommitdiff
path: root/tools/build/v2/doc/src/property-set.xml
diff options
context:
space:
mode:
Diffstat (limited to 'tools/build/v2/doc/src/property-set.xml')
-rw-r--r--tools/build/v2/doc/src/property-set.xml128
1 files changed, 128 insertions, 0 deletions
diff --git a/tools/build/v2/doc/src/property-set.xml b/tools/build/v2/doc/src/property-set.xml
new file mode 100644
index 0000000000..a5b5b8c7f6
--- /dev/null
+++ b/tools/build/v2/doc/src/property-set.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE section PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+ "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
+
+<section id="bbv2.reference.class.property-set">
+
+ <title>Class property-set</title>
+ <indexterm>
+ <primary>property-set</primary>
+ </indexterm>
+
+ <para>Class for storing a set of properties.</para>
+
+<programlisting language="jam">
+class property-set {
+ rule <link linkend="bbv2.reference.class.property-set.raw">raw</link> ( )
+ rule <link linkend="bbv2.reference.class.property-set.str">str</link> ( )
+ rule <link linkend="bbv2.reference.class.property-set.propagated">propagated</link> ( )
+ rule <link linkend="bbv2.reference.class.property-set.add">add</link> ( ps )
+ rule <link linkend="bbv2.reference.class.property-set.add-raw">add-raw</link> ( properties * )
+ rule <link linkend="bbv2.reference.class.property-set.refine">refine</link> ( ps )
+ rule <link linkend="bbv2.reference.class.property-set.get">get</link> ( feature )
+}
+</programlisting>
+
+ <para>
+ There is 1&lt;-&gt;1 correspondence between identity and value. No two instances
+ of the class are equal. To maintain this property, the 'property-set.create'
+ rule should be used to create new instances. Instances are immutable.
+ </para>
+
+ <orderedlist>
+
+ <listitem id="bbv2.reference.class.property-set.raw">
+ <indexterm zone="bbv2.reference.class.property-set.raw">
+ <primary>raw</primary>
+ <secondary>Property Set Method</secondary>
+ </indexterm>
+ <code language="jam">rule raw ( )</code>
+ <para>Returns a Jam list of the stored properties.</para>
+ </listitem>
+
+ <listitem id="bbv2.reference.class.property-set.str">
+ <indexterm zone="bbv2.reference.class.property-set.str">
+ <primary>str</primary>
+ <secondary>Property Set Method</secondary>
+ </indexterm>
+ <code language="jam">rule str ( )</code>
+ <para>Returns the string repesentation of the stored properties.</para>
+ </listitem>
+
+ <listitem id="bbv2.reference.class.property-set.propagated">
+ <indexterm zone="bbv2.reference.class.property-set.propagated">
+ <primary>propagated</primary>
+ <secondary>Property Set Method</secondary>
+ </indexterm>
+ <code language="jam">rule propagated ( )</code>
+ <para>
+ Returns a <link linkend="bbv2.reference.class.property-set">property-set</link>
+ containing all the <link linkend="bbv2.reference.features.attributes.propagated">propagated</link>
+ properties in this <link linkend="bbv2.reference.class.property-set">property-set</link>.
+ </para>
+ </listitem>
+
+ <listitem id="bbv2.reference.class.property-set.add">
+ <indexterm zone="bbv2.reference.class.property-set.add">
+ <primary>add</primary>
+ <secondary>Property Set Method</secondary>
+ </indexterm>
+ <code language="jam">rule add ( ps )</code>
+ <para>
+ Returns a new <link linkend="bbv2.reference.class.property-set">
+ property-set</link> containing the union of the properties
+ in this <link linkend="bbv2.reference.class.property-set">
+ property-set</link> and in <literal>ps</literal>.
+ <note>
+ <para>
+ If <literal>ps</literal> contains non-free properties
+ that should override the values in this object, use
+ <link linkend="bbv2.reference.class.property-set.refine">
+ refine</link> instead.
+ </para>
+ </note>
+ </para>
+ </listitem>
+
+ <listitem id="bbv2.reference.class.property-set.add-raw">
+ <indexterm zone="bbv2.reference.class.property-set.add-raw">
+ <primary>add-raw</primary>
+ <secondary>Property Set Method</secondary>
+ </indexterm>
+ <code language="jam">rule add-raw ( properties * )</code>
+ <para>
+ Link <link linkend="bbv2.reference.class.property-set.add">
+ add</link>, except that it takes a list of properties
+ instead of a <link linkend="bbv2.reference.class.property-set">
+ property-set</link>.
+ </para>
+ </listitem>
+
+ <listitem id="bbv2.reference.class.property-set.refine">
+ <indexterm zone="bbv2.reference.class.property-set.refine">
+ <primary>refine</primary>
+ <secondary>Property Set Method</secondary>
+ </indexterm>
+ <code language="jam">rule refine ( ps )</code>
+ <para>
+ Refines properties by overriding any non-free and non-conditional
+ properties for which a different value is specified in
+ <literal>ps</literal>. Returns the resulting
+ <link linkend="bbv2.reference.class.property-set">property-set</link>.
+ </para>
+ </listitem>
+
+ <listitem id="bbv2.reference.class.property-set.get">
+ <indexterm zone="bbv2.reference.class.property-set.get">
+ <primary>get</primary>
+ <secondary>Property Set Method</secondary>
+ </indexterm>
+ <code language="jam">rule get ( feature )</code>
+ <para>
+ Returns all the values of <literal>feature</literal>.
+ </para>
+ </listitem>
+
+ </orderedlist>
+
+</section>