|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r57569 - in sandbox/stm/branches/vbe/libs/stm/doc: . html html/toward_boost_stm html/toward_boost_stm/appendices html/toward_boost_stm/reference reference reference/contention_managers
From: vicente.botet_at_[hidden]
Date: 2009-11-11 11:01:30
Author: viboes
Date: 2009-11-11 11:01:26 EST (Wed, 11 Nov 2009)
New Revision: 57569
URL: http://svn.boost.org/trac/boost/changeset/57569
Log:
TBoost.STM vbe: doc reorganization
Added:
sandbox/stm/branches/vbe/libs/stm/doc/reference/contention_managers/concept.qbk (contents, props changed)
Text files modified:
sandbox/stm/branches/vbe/libs/stm/doc/html/index.html | 16
sandbox/stm/branches/vbe/libs/stm/doc/html/standalone_HTML.manifest | 7
sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/appendices/changes.html | 4
sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/appendices/implementation.html | 10
sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/appendices/rationale.html | 66 +-
sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/appendices/todo.html | 32
sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/examples.html | 8
sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/reference.html | 87 +-
sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/reference/contention_managers.html | 301 ++++++----
sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/reference/non_transactional_objects.html | 195 +++---
sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/reference/stm_hpp.html | 6
sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/reference/transactional_objects.html | 1071 ++++++++++++++++++++-------------------
sandbox/stm/branches/vbe/libs/stm/doc/reference.qbk | 61 +
sandbox/stm/branches/vbe/libs/stm/doc/reference/contention_manager.qbk | 10
14 files changed, 1017 insertions(+), 857 deletions(-)
Modified: sandbox/stm/branches/vbe/libs/stm/doc/html/index.html
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/doc/html/index.html (original)
+++ sandbox/stm/branches/vbe/libs/stm/doc/html/index.html 2009-11-11 11:01:26 EST (Wed, 11 Nov 2009)
@@ -53,13 +53,15 @@
<dt><span class="section">Reference</span></dt>
<dd><dl>
<dt><span class="section"> Header <boost/stm.hpp>
</span></dt>
-<dt><span class="section">Basics</span></dt>
-<dt><span class="section"><a href="toward_boost_stm/reference/contention_managers.html">Contention
- managers</a></span></dt>
-<dt><span class="section"><a href="toward_boost_stm/reference/transactional_objects.html">Transactional
- objects</a></span></dt>
+<dt><span class="section">Core</span></dt>
+<dt><span class="section"><a href="toward_boost_stm/reference/mixins_transactional_objects.html">Mixins
+ Transactional Objects</a></span></dt>
+<dt><span class="section"><a href="toward_boost_stm/reference/warppers_transactional_objects.html">Warppers
+ Transactional Objects</a></span></dt>
<dt><span class="section"><a href="toward_boost_stm/reference/non_transactional_objects.html">Non
- transactional objects</a></span></dt>
+ Transactional Objects</a></span></dt>
+<dt><span class="section"><a href="toward_boost_stm/reference/contention_managers.html">Contention
+ Managers</a></span></dt>
</dl></dd>
<dt><span class="section">Examples</span></dt>
<dt><span class="section">Appendices</span></dt>
@@ -96,7 +98,7 @@
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: October 21, 2009 at 07:38:07 GMT</small></p></td>
+<td align="left"><p><small>Last revised: October 24, 2009 at 19:31:01 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
Modified: sandbox/stm/branches/vbe/libs/stm/doc/html/standalone_HTML.manifest
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/doc/html/standalone_HTML.manifest (original)
+++ sandbox/stm/branches/vbe/libs/stm/doc/html/standalone_HTML.manifest 2009-11-11 11:01:26 EST (Wed, 11 Nov 2009)
@@ -8,10 +8,11 @@
toward_boost_stm/users_guide/glosary.html
toward_boost_stm/reference.html
toward_boost_stm/reference/stm_hpp.html
-toward_boost_stm/reference/basics.html
-toward_boost_stm/reference/contention_managers.html
-toward_boost_stm/reference/transactional_objects.html
+toward_boost_stm/reference/core.html
+toward_boost_stm/reference/mixins_transactional_objects.html
+toward_boost_stm/reference/warppers_transactional_objects.html
toward_boost_stm/reference/non_transactional_objects.html
+toward_boost_stm/reference/contention_managers.html
toward_boost_stm/examples.html
toward_boost_stm/appendices.html
toward_boost_stm/appendices/changes.html
Modified: sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/appendices/changes.html
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/appendices/changes.html (original)
+++ sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/appendices/changes.html 2009-11-11 11:01:26 EST (Wed, 11 Nov 2009)
@@ -27,7 +27,7 @@
<a name="toward_boost_stm.appendices.changes"></a> Appendix A: History
</h3></div></div></div>
<a name="toward_boost_stm.appendices.changes._emphasis_role__bold__version_0_1__xx_yy__2009__emphasis___emphasis_announcement_of_stm__emphasis_"></a><h4>
-<a name="id4864698"></a>
+<a name="id4865133"></a>
<a href="changes.html#toward_boost_stm.appendices.changes._emphasis_role__bold__version_0_1__xx_yy__2009__emphasis___emphasis_announcement_of_stm__emphasis_"><span class="bold"><strong>Version 0.1, XX YY, 2009</strong></span> <span class="emphasis"><em>Announcement of
STM</em></span></a>
</h4>
@@ -47,7 +47,7 @@
</li>
</ul></div>
<a name="toward_boost_stm.appendices.changes._emphasis_role__bold__tickets___emphasis_"></a><h4>
-<a name="id4864771"></a>
+<a name="id4865206"></a>
<a href="changes.html#toward_boost_stm.appendices.changes._emphasis_role__bold__tickets___emphasis_"><span class="bold"><strong>Tickets:</strong></span></a>
</h4>
<p>
Modified: sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/appendices/implementation.html
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/appendices/implementation.html (original)
+++ sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/appendices/implementation.html 2009-11-11 11:01:26 EST (Wed, 11 Nov 2009)
@@ -56,7 +56,7 @@
constructs are shown in Figures 6 and 8, respectively.
</p>
<a name="toward_boost_stm.appendices.implementation.language_like_macro_blocks.locking_macros"></a><h5>
-<a name="id4880396"></a>
+<a name="id4885320"></a>
<a href="implementation.html#toward_boost_stm.appendices.implementation.language_like_macro_blocks.locking_macros">Locking
Macros</a>
</h5>
@@ -79,7 +79,7 @@
are executed once and only once.
</p>
<a name="toward_boost_stm.appendices.implementation.language_like_macro_blocks.transaction_macros"></a><h5>
-<a name="id4880459"></a>
+<a name="id4885371"></a>
<a href="implementation.html#toward_boost_stm.appendices.implementation.language_like_macro_blocks.transaction_macros">Transaction
Macros</a>
</h5>
@@ -128,7 +128,7 @@
transaction is aborted.
</p>
<a name="toward_boost_stm.appendices.implementation.language_like_macro_blocks.correcting_non_compliant_compilers"></a><h5>
-<a name="id4880566"></a>
+<a name="id4885459"></a>
<a href="implementation.html#toward_boost_stm.appendices.implementation.language_like_macro_blocks.correcting_non_compliant_compilers">Correcting
Non-Compliant Compilers</a>
</h5>
@@ -161,11 +161,11 @@
<a name="toward_boost_stm.appendices.implementation.cache"></a>Cache
</h4></div></div></div>
<a name="toward_boost_stm.appendices.implementation.cache.dispersed"></a><h5>
-<a name="id4884961"></a>
+<a name="id4885587"></a>
<a href="implementation.html#toward_boost_stm.appendices.implementation.cache.dispersed">Dispersed</a>
</h5>
<a name="toward_boost_stm.appendices.implementation.cache.compact"></a><h5>
-<a name="id4884983"></a>
+<a name="id4885609"></a>
<a href="implementation.html#toward_boost_stm.appendices.implementation.cache.compact">Compact</a>
</h5>
</div>
Modified: sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/appendices/rationale.html
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/appendices/rationale.html (original)
+++ sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/appendices/rationale.html 2009-11-11 11:01:26 EST (Wed, 11 Nov 2009)
@@ -267,7 +267,7 @@
read).
</p>
<div class="table">
-<a name="id4865301"></a><p class="title"><b>Table 1.1. Comparaison with other STM systems</b></p>
+<a name="id4865740"></a><p class="title"><b>Table 1.1. Comparaison with other STM systems</b></p>
<table class="table" summary="Comparaison with other STM systems">
<colgroup>
<col>
@@ -472,7 +472,7 @@
handle each specific problem with the most appropriate configuration.
</p>
<div class="table">
-<a name="id4865694"></a><p class="title"><b>Table 1.2. Consistency versus Updating policies composition</b></p>
+<a name="id4866122"></a><p class="title"><b>Table 1.2. Consistency versus Updating policies composition</b></p>
<table class="table" summary="Consistency versus Updating policies composition">
<colgroup>
<col>
@@ -627,7 +627,7 @@
management</a>
</h5></div></div></div>
<a name="toward_boost_stm.appendices.rationale.tm_specific_concepts.contention_management.priority_based_tasks"></a><h6>
-<a name="id4866026"></a>
+<a name="id4866453"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.tm_specific_concepts.contention_management.priority_based_tasks">Priority-Based
Tasks</a>
</h6>
@@ -642,7 +642,7 @@
cases, user-defined priority-based transactions are necessary.
</p>
<a name="toward_boost_stm.appendices.rationale.tm_specific_concepts.contention_management.approach"></a><h6>
-<a name="id4866064"></a>
+<a name="id4866491"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.tm_specific_concepts.contention_management.approach">Approach</a>
</h6>
<p>
@@ -658,7 +658,7 @@
checking models. Last, we present our experimental results.
</p>
<a name="toward_boost_stm.appendices.rationale.tm_specific_concepts.contention_management.attacking__amp__victim_transactions"></a><h6>
-<a name="id4866103"></a>
+<a name="id4866530"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.tm_specific_concepts.contention_management.attacking__amp__victim_transactions">Attacking
& Victim Transactions</a>
</h6>
@@ -678,7 +678,7 @@
transaction since Ta may abort it.
</p>
<a name="toward_boost_stm.appendices.rationale.tm_specific_concepts.contention_management.user_defined_priority_based_transactions"></a><h6>
-<a name="id4866151"></a>
+<a name="id4866577"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.tm_specific_concepts.contention_management.user_defined_priority_based_transactions">User-Defined
Priority-Based Transactions</a>
</h6>
@@ -699,7 +699,7 @@
priority-based transactional environments.
</p>
<a name="toward_boost_stm.appendices.rationale.tm_specific_concepts.contention_management.extensible_polymorphic_contention_management_interface"></a><h6>
-<a name="id4866201"></a>
+<a name="id4866627"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.tm_specific_concepts.contention_management.extensible_polymorphic_contention_management_interface">Extensible
Polymorphic Contention Management Interface</a>
</h6>
@@ -794,7 +794,7 @@
of experimental benchmarks on .
</p>
<a name="toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.introduction"></a><h6>
-<a name="id4866942"></a>
+<a name="id4867336"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.introduction">Introduction</a>
</h6>
<p>
@@ -847,7 +847,7 @@
</li>
</ol></div>
<a name="toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.background"></a><h6>
-<a name="id4867041"></a>
+<a name="id4867436"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.background">Background</a>
</h6>
<p>
@@ -958,7 +958,7 @@
later sections.
</p>
<a name="toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.locks_outside_of_transactions__lot_"></a><h6>
-<a name="id4867606"></a>
+<a name="id4868031"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.locks_outside_of_transactions__lot_">Locks
Outside of Transactions (LoT)</a>
</h6>
@@ -1009,7 +1009,7 @@
<span class="number">27</span> <span class="keyword">int</span> <span class="identifier">lock3</span><span class="special">()</span> <span class="special">{</span> <span class="comment">/* no conflict */</span> <span class="special">}</span>
</pre>
<a name="toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.lot_full_lock_protection"></a><h6>
-<a name="id4868748"></a>
+<a name="id4869196"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.lot_full_lock_protection">LoT
Full Lock Protection</a>
</h6>
@@ -1039,7 +1039,7 @@
stalling.
</p>
<a name="toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.lot_tm_lock_protection"></a><h6>
-<a name="id4868828"></a>
+<a name="id4869257"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.lot_tm_lock_protection">LoT
TM-Lock Protection</a>
</h6>
@@ -1082,7 +1082,7 @@
the third lock protection policy.
</p>
<a name="toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.lot_tx_lock_protection"></a><h6>
-<a name="id4869000"></a>
+<a name="id4869429"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.lot_tx_lock_protection">LoT
TX-Lock Protection</a>
</h6>
@@ -1125,7 +1125,7 @@
cooperative performance while still adhering to the rule.
</p>
<a name="toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.locks_inside_of_transactions__lit_"></a><h6>
-<a name="id4869524"></a>
+<a name="id4765375"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.locks_inside_of_transactions__lit_">Locks
Inside of Transactions (LiT)</a>
</h6>
@@ -1239,7 +1239,7 @@
for the completeness of the example.
</p>
<a name="toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.lit_full_lock_protection"></a><h6>
-<a name="id4870582"></a>
+<a name="id4871284"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.lit_full_lock_protection">LiT
Full-Lock Protection</a>
</h6>
@@ -1269,7 +1269,7 @@
are all allowed to resume.
</p>
<a name="toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.lit_tm_lock_protection"></a><h6>
-<a name="id4870644"></a>
+<a name="id4871345"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.lit_tm_lock_protection">LiT
TM-Lock Protection</a>
</h6>
@@ -1299,7 +1299,7 @@
LiT protection policy, LiT TX-lock protection.
</p>
<a name="toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.lit_tx_lock_protection"></a><h6>
-<a name="id4870705"></a>
+<a name="id4871418"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.lit_tx_lock_protection">LiT
TX-Lock Protection</a>
</h6>
@@ -1339,7 +1339,7 @@
passed. When lockL3 completes tx3 begins and runs through to completion.
</p>
<a name="toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.lock_composition"></a><h6>
-<a name="id4870801"></a>
+<a name="id4871494"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.lock_composition">Lock
Composition</a>
</h6>
@@ -1423,7 +1423,7 @@
lock until the transaction commits.
</p>
<a name="toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.criticality_of_lit_lock_composition"></a><h6>
-<a name="id4871522"></a>
+<a name="id4872216"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.criticality_of_lit_lock_composition">Criticality
of LiT Lock Composition</a>
</h6>
@@ -1474,7 +1474,7 @@
cumulative affects of the move() operation.
</p>
<a name="toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.understanding_lit_lock_composition"></a><h6>
-<a name="id4872132"></a>
+<a name="id4872827"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.understanding_lit_lock_composition">Understanding
LiT Lock Composition</a>
</h6>
@@ -1563,7 +1563,7 @@
shared memory x2.
</p>
<a name="toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.lit_lock_identification"></a><h6>
-<a name="id4873210"></a>
+<a name="id4873921"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.tm_specific_concepts.lock_aware_transaction.lit_lock_identification">LiT
Lock Identification</a>
</h6>
@@ -1873,7 +1873,7 @@
The following table is a compilation of the preceding analysis:
</p>
<div class="table">
-<a name="id4873769"></a><p class="title"><b>Table 1.3. Comparaison with other STM systems</b></p>
+<a name="id4874464"></a><p class="title"><b>Table 1.3. Comparaison with other STM systems</b></p>
<table class="table" summary="Comparaison with other STM systems">
<colgroup><col></colgroup>
<thead><tr>
@@ -2159,7 +2159,7 @@
support in the near future [4].
</p>
<div class="table">
-<a name="id4874918"></a><p class="title"><b>Table 1.4. Comparaison with other STM systems</b></p>
+<a name="id4875591"></a><p class="title"><b>Table 1.4. Comparaison with other STM systems</b></p>
<table class="table" summary="Comparaison with other STM systems">
<colgroup>
<col>
@@ -2257,7 +2257,7 @@
Table 1. TBoost.STM Mutual Exclusion Locking Parallel Constructs.
</p>
<a name="toward_boost_stm.appendices.rationale.c___and_library_specific_concepts.language_like_macro_blocks.library_based_lock_implementations"></a><h6>
-<a name="id4875126"></a>
+<a name="id4875799"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.c___and_library_specific_concepts.language_like_macro_blocks.library_based_lock_implementations">Library-based
Lock Implementations</a>
</h6>
@@ -2305,7 +2305,7 @@
scoping and programmer error.
</p>
<a name="toward_boost_stm.appendices.rationale.c___and_library_specific_concepts.language_like_macro_blocks.pitfalls_in_scoping_of_automatic_object_locks"></a><h6>
-<a name="id4875524"></a>
+<a name="id4876197"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.c___and_library_specific_concepts.language_like_macro_blocks.pitfalls_in_scoping_of_automatic_object_locks">Pitfalls
in Scoping of Automatic Object Locks</a>
</h6>
@@ -2378,7 +2378,7 @@
of locks results in unoptimized performance.
</p>
<a name="toward_boost_stm.appendices.rationale.c___and_library_specific_concepts.language_like_macro_blocks.library_based_transaction_implementations"></a><h6>
-<a name="id4875959"></a>
+<a name="id4880899"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.c___and_library_specific_concepts.language_like_macro_blocks.library_based_transaction_implementations">Library-based
Transaction Implementations</a>
</h6>
@@ -2432,7 +2432,7 @@
behaviors.
</p>
<a name="toward_boost_stm.appendices.rationale.c___and_library_specific_concepts.language_like_macro_blocks.pitfalls_in_transactional_execution_of_automatic_objects"></a><h6>
-<a name="id4876346"></a>
+<a name="id4881271"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.c___and_library_specific_concepts.language_like_macro_blocks.pitfalls_in_transactional_execution_of_automatic_objects">Pitfalls
in Transactional Execution of Automatic Objects</a>
</h6>
@@ -2527,7 +2527,7 @@
of direct language integration of TM instead of API-only approaches.
</p>
<a name="toward_boost_stm.appendices.rationale.c___and_library_specific_concepts.language_like_macro_blocks.disadvantages_of_language_based_transactional_integration"></a><h6>
-<a name="id4877345"></a>
+<a name="id4882270"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.c___and_library_specific_concepts.language_like_macro_blocks.disadvantages_of_language_based_transactional_integration">Disadvantages
of Language Based Transactional Integration</a>
</h6>
@@ -2564,7 +2564,7 @@
objects nor language-based parallel abstractions alone can provide.
</p>
<a name="toward_boost_stm.appendices.rationale.c___and_library_specific_concepts.language_like_macro_blocks.parallel_constructs_for_mutually_exclusive_locks"></a><h6>
-<a name="id4877438"></a>
+<a name="id4882347"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.c___and_library_specific_concepts.language_like_macro_blocks.parallel_constructs_for_mutually_exclusive_locks">Parallel
Constructs for Mutually Exclusive Locks</a>
</h6>
@@ -2600,7 +2600,7 @@
in client code.
</p>
<a name="toward_boost_stm.appendices.rationale.c___and_library_specific_concepts.language_like_macro_blocks.exception_based_timed_locks"></a><h6>
-<a name="id4877940"></a>
+<a name="id4882850"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.c___and_library_specific_concepts.language_like_macro_blocks.exception_based_timed_locks">Exception-based
Timed Locks</a>
</h6>
@@ -2687,7 +2687,7 @@
<span class="identifier">Figure</span> <span class="number">12.</span> <span class="identifier">Optimized</span> <span class="identifier">Timed</span> <span class="identifier">Locking</span> <span class="identifier">with</span> TBoost.STM<span class="special">.</span>
</pre>
<a name="toward_boost_stm.appendices.rationale.c___and_library_specific_concepts.language_like_macro_blocks.parallel_constructs_for_transactional_memory"></a><h6>
-<a name="id4879198"></a>
+<a name="id4884110"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.c___and_library_specific_concepts.language_like_macro_blocks.parallel_constructs_for_transactional_memory">Parallel
Constructs for Transactional Memory</a>
</h6>
@@ -2765,7 +2765,7 @@
correct behavior and then throwing an exception upward.
</p>
<a name="toward_boost_stm.appendices.rationale.c___and_library_specific_concepts.language_like_macro_blocks.transaction_nesting"></a><h6>
-<a name="id4879855"></a>
+<a name="id4884771"></a>
<a href="rationale.html#toward_boost_stm.appendices.rationale.c___and_library_specific_concepts.language_like_macro_blocks.transaction_nesting">Transaction
Nesting</a>
</h6>
@@ -2826,7 +2826,7 @@
with other STM systems</a>
</h4></div></div></div>
<div class="table">
-<a name="id4879974"></a><p class="title"><b>Table 1.5. Comparaison
+<a name="id4884898"></a><p class="title"><b>Table 1.5. Comparaison
with other STM systems</b></p>
<table class="table" summary="Comparaison
with other STM systems">
Modified: sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/appendices/todo.html
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/appendices/todo.html (original)
+++ sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/appendices/todo.html 2009-11-11 11:01:26 EST (Wed, 11 Nov 2009)
@@ -44,7 +44,7 @@
to do before review</a>
</h4></div></div></div>
<a name="toward_boost_stm.appendices.todo.tasks_to_do_before_review.interface"></a><h5>
-<a name="id4887291"></a>
+<a name="id4887920"></a>
<a href="todo.html#toward_boost_stm.appendices.todo.tasks_to_do_before_review.interface">Interface</a>
</h5>
<p>
@@ -192,7 +192,7 @@
</li>
</ul></div>
<a name="toward_boost_stm.appendices.todo.tasks_to_do_before_review.adding_some_components_to_boost_to_preparing_boostification_of_stm"></a><h5>
-<a name="id4887618"></a>
+<a name="id4888247"></a>
<a href="todo.html#toward_boost_stm.appendices.todo.tasks_to_do_before_review.adding_some_components_to_boost_to_preparing_boostification_of_stm">Adding
some components to Boost to preparing Boostification of STM</a>
</h5>
@@ -232,7 +232,7 @@
</li>
</ul></div>
<a name="toward_boost_stm.appendices.todo.tasks_to_do_before_review.boostifying_stm"></a><h5>
-<a name="id4887721"></a>
+<a name="id4888351"></a>
<a href="todo.html#toward_boost_stm.appendices.todo.tasks_to_do_before_review.boostifying_stm">Boostifying
STM</a>
</h5>
@@ -308,7 +308,7 @@
</li>
</ul></div>
<a name="toward_boost_stm.appendices.todo.tasks_to_do_before_review.implementation"></a><h5>
-<a name="id4887897"></a>
+<a name="id4888527"></a>
<a href="todo.html#toward_boost_stm.appendices.todo.tasks_to_do_before_review.implementation">Implementation</a>
</h5>
<p>
@@ -335,28 +335,28 @@
</li>
</ul></div>
<a name="toward_boost_stm.appendices.todo.tasks_to_do_before_review.tests"></a><h5>
-<a name="id4887967"></a>
+<a name="id4888598"></a>
<a href="todo.html#toward_boost_stm.appendices.todo.tasks_to_do_before_review.tests">Tests</a>
</h5>
<div class="itemizedlist"><ul type="disc"><li>
Add unit tests
</li></ul></div>
<a name="toward_boost_stm.appendices.todo.tasks_to_do_before_review.examples"></a><h5>
-<a name="id4887998"></a>
+<a name="id4888628"></a>
<a href="todo.html#toward_boost_stm.appendices.todo.tasks_to_do_before_review.examples">Examples</a>
</h5>
<div class="itemizedlist"><ul type="disc"><li>
Add unit tests
</li></ul></div>
<a name="toward_boost_stm.appendices.todo.tasks_to_do_before_review.benchmarks"></a><h5>
-<a name="id4888028"></a>
+<a name="id4888658"></a>
<a href="todo.html#toward_boost_stm.appendices.todo.tasks_to_do_before_review.benchmarks">Benchmarks</a>
</h5>
<div class="itemizedlist"><ul type="disc"><li>
Add some specific benchmarks.
</li></ul></div>
<a name="toward_boost_stm.appendices.todo.tasks_to_do_before_review.documentation"></a><h5>
-<a name="id4888059"></a>
+<a name="id4888689"></a>
<a href="todo.html#toward_boost_stm.appendices.todo.tasks_to_do_before_review.documentation">Documentation</a>
</h5>
<div class="itemizedlist"><ul type="disc">
@@ -464,12 +464,12 @@
could be done after acceptation.
</p>
<a name="toward_boost_stm.appendices.todo.for_later_releases.integrate_with_stm_test_benchmarks_as_stamp_or_stmbench7"></a><h5>
-<a name="id4888301"></a>
+<a name="id4888932"></a>
<a href="todo.html#toward_boost_stm.appendices.todo.for_later_releases.integrate_with_stm_test_benchmarks_as_stamp_or_stmbench7">Integrate
with STM test benchmarks as STAMP or STMBench7</a>
</h5>
<a name="toward_boost_stm.appendices.todo.for_later_releases.providing_closed_nested_transaction_that_are_not_flat"></a><h5>
-<a name="id4888328"></a>
+<a name="id4888958"></a>
<a href="todo.html#toward_boost_stm.appendices.todo.for_later_releases.providing_closed_nested_transaction_that_are_not_flat">Providing
Closed Nested transaction that are not flat</a>
</h5>
@@ -479,12 +479,12 @@
the thread.
</p>
<a name="toward_boost_stm.appendices.todo.for_later_releases.allows_configuration_at_compile_time_and_run_time"></a><h5>
-<a name="id4888361"></a>
+<a name="id4888992"></a>
<a href="todo.html#toward_boost_stm.appendices.todo.for_later_releases.allows_configuration_at_compile_time_and_run_time">Allows
configuration at compile-time and run-time</a>
</h5>
<a name="toward_boost_stm.appendices.todo.for_later_releases.add_explicit_outer_transaction"></a><h5>
-<a name="id4888386"></a>
+<a name="id4889016"></a>
<a href="todo.html#toward_boost_stm.appendices.todo.for_later_releases.add_explicit_outer_transaction">Add
explicit outer transaction</a>
</h5>
@@ -504,22 +504,22 @@
that need a deep research.
</p>
<a name="toward_boost_stm.appendices.todo.more_recherch_needed.transactional_condition_variables"></a><h5>
-<a name="id4888441"></a>
+<a name="id4889070"></a>
<a href="todo.html#toward_boost_stm.appendices.todo.more_recherch_needed.transactional_condition_variables">Transactional
condition variables</a>
</h5>
<a name="toward_boost_stm.appendices.todo.more_recherch_needed.mixing_stm_updating_policies"></a><h5>
-<a name="id4888466"></a>
+<a name="id4889094"></a>
<a href="todo.html#toward_boost_stm.appendices.todo.more_recherch_needed.mixing_stm_updating_policies">Mixing
STM updating policies</a>
</h5>
<a name="toward_boost_stm.appendices.todo.more_recherch_needed.mixing_stm_consistency_checking"></a><h5>
-<a name="id4888491"></a>
+<a name="id4889119"></a>
<a href="todo.html#toward_boost_stm.appendices.todo.more_recherch_needed.mixing_stm_consistency_checking">Mixing
STM consistency checking</a>
</h5>
<a name="toward_boost_stm.appendices.todo.more_recherch_needed.suspend_resume_transactions"></a><h5>
-<a name="id4888516"></a>
+<a name="id4889144"></a>
<a href="todo.html#toward_boost_stm.appendices.todo.more_recherch_needed.suspend_resume_transactions">Suspend/resume
transactions</a>
</h5>
Modified: sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/examples.html
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/examples.html (original)
+++ sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/examples.html 2009-11-11 11:01:26 EST (Wed, 11 Nov 2009)
@@ -6,8 +6,8 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
<link rel="start" href="../index.html" title="Chapter 1. Toward.Boost.STM">
<link rel="up" href="../index.html" title="Chapter 1. Toward.Boost.STM">
-<link rel="prev" href="reference/non_transactional_objects.html" title="Non
- transactional objects">
+<link rel="prev" href="reference/contention_managers.html" title="Contention
+ Managers">
<link rel="next" href="appendices.html" title="Appendices">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="reference/non_transactional_objects.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="appendices.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="reference/contention_managers.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="appendices.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -41,7 +41,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="reference/non_transactional_objects.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="appendices.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="reference/contention_managers.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="appendices.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
</body>
</html>
Modified: sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/reference.html
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/reference.html (original)
+++ sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/reference.html 2009-11-11 11:01:26 EST (Wed, 11 Nov 2009)
@@ -28,63 +28,78 @@
</h2></div></div></div>
<div class="toc"><dl>
<dt><span class="section"> Header <boost/stm.hpp>
</span></dt>
-<dt><span class="section">Basics</span></dt>
+<dt><span class="section">Core</span></dt>
<dd><dl>
-<dt><span class="section"><a href="reference/basics.html#toward_boost_stm.reference.basics.base_transaction_object_hpp">
+<dt><span class="section"><a href="reference/core.html#toward_boost_stm.reference.core.base_transaction_object_hpp">
Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">base_transaction_object</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="reference/basics.html#toward_boost_stm.reference.basics.cache_fct_hpp"> Header
+<dt><span class="section"><a href="reference/core.html#toward_boost_stm.reference.core.cache_fct_hpp"> Header
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">cache_fct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="reference/basics.html#toward_boost_stm.reference.basics.datatypes_hpp"> Header
+<dt><span class="section"><a href="reference/core.html#toward_boost_stm.reference.core.datatypes_hpp"> Header
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">datatypes</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="reference/basics.html#toward_boost_stm.reference.basics.exceptions_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">exceptions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="reference/basics.html#toward_boost_stm.reference.basics.language_like_hpp">
+<dt><span class="section"><a href="reference/core.html#toward_boost_stm.reference.core.exceptions_hpp"> Header
+ <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">exceptions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="reference/core.html#toward_boost_stm.reference.core.language_like_hpp">
Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">language_like</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="reference/basics.html#toward_boost_stm.reference.basics.select_contention_manager_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">select_contention_manager</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="reference/basics.html#toward_boost_stm.reference.basics.transaction_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">transaction</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="reference/basics.html#toward_boost_stm.reference.basics.transaction_bookkeeping_hpp">
+<dt><span class="section"><a href="reference/core.html#toward_boost_stm.reference.core.transaction_hpp"> Header
+ <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">transaction</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="reference/core.html#toward_boost_stm.reference.core.transaction_bookkeeping_hpp">
Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">transaction_bookkeeping</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
</dl></dd>
-<dt><span class="section"><a href="reference/contention_managers.html">Contention
- managers</a></span></dt>
-<dd><dl><dt><span class="section"><a href="reference/contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">base_contention_manager</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt></dl></dd>
-<dt><span class="section"><a href="reference/transactional_objects.html">Transactional
- objects</a></span></dt>
+<dt><span class="section"><a href="reference/mixins_transactional_objects.html">Mixins
+ Transactional Objects</a></span></dt>
<dd><dl>
-<dt><span class="section"><a href="reference/transactional_objects.html#toward_boost_stm.reference.transactional_objects.shallow_transaction_object_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">shallow_transaction_object</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="reference/transactional_objects.html#toward_boost_stm.reference.transactional_objects.transaction_object_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">transaction_object</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="reference/transactional_objects.html#toward_boost_stm.reference.transactional_objects.transaction_object_ptr_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">transaction_object_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="reference/transactional_objects.html#toward_boost_stm.reference.transactional_objects.transactional_object_hpp">
+<dt><span class="section"><a href="reference/mixins_transactional_objects.html#toward_boost_stm.reference.mixins_transactional_objects.deep_copy">Deep
+ Copy</a></span></dt>
+<dt><span class="section"><a href="reference/mixins_transactional_objects.html#toward_boost_stm.reference.mixins_transactional_objects.shallow_copy">Shallow
+ Copy</a></span></dt>
+<dt><span class="section"><a href="reference/mixins_transactional_objects.html#toward_boost_stm.reference.mixins_transactional_objects.smart_pointers">Smart
+ pointers</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="reference/warppers_transactional_objects.html">Warppers
+ Transactional Objects</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="reference/warppers_transactional_objects.html#toward_boost_stm.reference.warppers_transactional_objects.transactional_object_hpp">
Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">transactional_object</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="reference/transactional_objects.html#toward_boost_stm.reference.transactional_objects.txs_ptr_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">tx_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="reference/transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_numeric_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">tx</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="reference/transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_pointer_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">tx</span><span class="special">/</span><span class="identifier">pointer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="reference/transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">tx</span><span class="special">/</span><span class="identifier">smart_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="reference/warppers_transactional_objects.html#toward_boost_stm.reference.warppers_transactional_objects.smart_pointers">Smart
+ pointers</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="reference/non_transactional_objects.html">Non
- transactional objects</a></span></dt>
+ Transactional Objects</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="reference/non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.non_tx_numeric_hpp">
Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">non_tx</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
<dt><span class="section"><a href="reference/non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.non_tx_pointer_hpp">
Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">non_tx</span><span class="special">/</span><span class="identifier">pointer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="reference/non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.non_tx_smart_ptr_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">non_tx_smart_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="reference/non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.smart_pointers">Smart
+ pointers</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="reference/contention_managers.html">Contention
+ Managers</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="reference/contention_managers.html#toward_boost_stm.reference.contention_managers.concept__contentionmanager_">Concept
+ <code class="computeroutput"><span class="identifier">ContentionManager</span></code></a></span></dt>
+<dt><span class="section"><a href="reference/contention_managers.html#toward_boost_stm.reference.contention_managers.select_contention_manager_hpp">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">select_contention_manager</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="reference/contention_managers.html#toward_boost_stm.reference.contention_managers.static_contention_managers">Static
+ Contention Managers</a></span></dt>
+<dt><span class="section"><a href="reference/contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers">Dynamic
+ Contention Managers</a></span></dt>
</dl></dd>
</dl></div>
<p>
This section presents the interface of TBoost.STM.
</p>
+<p>
+ There are two kind of transactional objets:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ Mixins
+ </li>
+<li>
+ Wrappers
+ </li>
+</ul></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
Modified: sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/reference/contention_managers.html
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/reference/contention_managers.html (original)
+++ sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/reference/contention_managers.html 2009-11-11 11:01:26 EST (Wed, 11 Nov 2009)
@@ -2,14 +2,14 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Contention
- managers</title>
+ Managers</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
<link rel="start" href="../../index.html" title="Chapter 1. Toward.Boost.STM">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="basics.html" title="Basics">
-<link rel="next" href="transactional_objects.html" title="Transactional
- objects">
+<link rel="prev" href="non_transactional_objects.html" title="Non
+ Transactional Objects">
+<link rel="next" href="../examples.html" title="Examples">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,61 +22,119 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="basics.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="transactional_objects.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="non_transactional_objects.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../examples.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="toward_boost_stm.reference.contention_managers"></a><a href="contention_managers.html" title="Contention
- managers">Contention
- managers</a>
+ Managers">Contention
+ Managers</a>
</h3></div></div></div>
<div class="toc"><dl>
-<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">base_contention_manager</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dd><dl><dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_">Abstract
- Class <code class="computeroutput"><span class="identifier">base_contention_manager</span></code></a></span></dt></dl></dd>
+<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.concept__contentionmanager_">Concept
+ <code class="computeroutput"><span class="identifier">ContentionManager</span></code></a></span></dt>
+<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.select_contention_manager_hpp">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">select_contention_manager</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.static_contention_managers">Static
+ Contention Managers</a></span></dt>
+<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers">Dynamic
+ Contention Managers</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">base_contention_manager</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.contention_manager_default_hpp">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">contention_managers</span><span class="special">/</span><span class="keyword">default</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+</dl></dd>
</dl></div>
+<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_stm.reference.contention_managers.concept__contentionmanager_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.concept__contentionmanager_" title="Concept
+ ContentionManager">Concept
+ <code class="computeroutput"><span class="identifier">ContentionManager</span></code></a>
+</h4></div></div></div></div>
+<p>
+ __TBoost<span class="underline">STM</span>_ allows the user to choose
+ between static and dynamic polimorphic contention manager.
+ </p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_stm.reference.contention_managers.select_contention_manager_hpp"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.select_contention_manager_hpp" title="
+ Header <boost/stm/select_contention_manager.hpp>">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">select_contention_manager</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h4></div></div></div>
+<p>
+ This file defines the contention manager depending on the compile directives:
+ </p>
+<p>
+ Define BOOST_STM_CM_STATIC_CONF when you want a staticacly configured CM.
+ For example
+ </p>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_STM_CM_STATIC_CONF</span> <span class="special">\</span>
+ <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">contention_managers</span><span class="special">/</span><span class="identifier">except_and_back_off_on_abort_notice_cm</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ When not defined the type of the contention manager will be dynmic_polymorphic.
+ </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="char">'compilation_dependent_type'</span> <span class="identifier">contention_manager_type</span><span class="special">;</span>
+</pre>
+</div>
+<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_stm.reference.contention_managers.static_contention_managers"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.static_contention_managers" title="Static
+ Contention Managers">Static
+ Contention Managers</a>
+</h4></div></div></div></div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_stm.reference.contention_managers.base_contention_manager_hpp"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp" title="
- Header <boost/stm/base_contention_manager.hpp>">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">base_contention_manager</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+<a name="toward_boost_stm.reference.contention_managers.dynamic_contention_managers"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers" title="Dynamic
+ Contention Managers">Dynamic
+ Contention Managers</a>
</h4></div></div></div>
-<div class="toc"><dl><dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_">Abstract
- Class <code class="computeroutput"><span class="identifier">base_contention_manager</span></code></a></span></dt></dl></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">base_contention_manager</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.contention_manager_default_hpp">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">contention_managers</span><span class="special">/</span><span class="keyword">default</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp" title="
+ Header <boost/stm/base_contention_manager.hpp>">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">base_contention_manager</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_">Abstract
+ Class <code class="computeroutput"><span class="identifier">base_contention_manager</span></code></a></span></dt></dl></div>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">stm</span> <span class="special">{</span>
<span class="keyword">class</span> <span class="identifier">base_contention_manager</span><span class="special">;</span>
<span class="special">}}</span>
</pre>
<div class="section" lang="en">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_" title="Abstract
- Class base_contention_manager">Abstract
- Class <code class="computeroutput"><span class="identifier">base_contention_manager</span></code></a>
-</h5></div></div></div>
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_" title="Abstract
+ Class base_contention_manager">Abstract
+ Class <code class="computeroutput"><span class="identifier">base_contention_manager</span></code></a>
+</h6></div></div></div>
<div class="toc"><dl>
-<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_destructor__base_contention_manager_">Virtual
- destructor <code class="computeroutput"><span class="identifier">base_contention_manager</span></code></a></span></dt>
-<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_new_">Virtual
- function <code class="computeroutput"><span class="identifier">abort_on_new</span></code></a></span></dt>
-<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_delete_">Virtual
- function <code class="computeroutput"><span class="identifier">abort_on_delete</span></code></a></span></dt>
-<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_read_">Virtual
- function <code class="computeroutput"><span class="identifier">abort_on_read</span></code></a></span></dt>
-<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_write_">Virtual
- function <code class="computeroutput"><span class="identifier">abort_on_write</span></code></a></span></dt>
-<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_before_commit_">Virtual
- function <code class="computeroutput"><span class="identifier">abort_before_commit</span></code></a></span></dt>
-<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__permission_to_abort_">Virtual
- function <code class="computeroutput"><span class="identifier">permission_to_abort</span></code></a></span></dt>
-<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__allow_lock_to_abort_tx_">Virtual
- function <code class="computeroutput"><span class="identifier">allow_lock_to_abort_tx</span></code></a></span></dt>
-<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__lock_sleep_time_">Virtual
- function <code class="computeroutput"><span class="identifier">lock_sleep_time</span></code></a></span></dt>
-<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__perform_isolated_tx_wait_priority_promotion_">Virtual
- function <code class="computeroutput"><span class="identifier">perform_isolated_tx_wait_priority_promotion</span></code></a></span></dt>
-<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__perform_irrevocable_tx_wait_priority_promotion_">Virtual
- function <code class="computeroutput"><span class="identifier">perform_irrevocable_tx_wait_priority_promotion</span></code></a></span></dt>
+<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_destructor__base_contention_manager_">Virtual
+ destructor <code class="computeroutput"><span class="identifier">base_contention_manager</span></code></a></span></dt>
+<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_new_">Virtual
+ function <code class="computeroutput"><span class="identifier">abort_on_new</span></code></a></span></dt>
+<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_delete_">Virtual
+ function <code class="computeroutput"><span class="identifier">abort_on_delete</span></code></a></span></dt>
+<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_read_">Virtual
+ function <code class="computeroutput"><span class="identifier">abort_on_read</span></code></a></span></dt>
+<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_write_">Virtual
+ function <code class="computeroutput"><span class="identifier">abort_on_write</span></code></a></span></dt>
+<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_before_commit_">Virtual
+ function <code class="computeroutput"><span class="identifier">abort_before_commit</span></code></a></span></dt>
+<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__permission_to_abort_">Virtual
+ function <code class="computeroutput"><span class="identifier">permission_to_abort</span></code></a></span></dt>
+<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__allow_lock_to_abort_tx_">Virtual
+ function <code class="computeroutput"><span class="identifier">allow_lock_to_abort_tx</span></code></a></span></dt>
+<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__lock_sleep_time_">Virtual
+ function <code class="computeroutput"><span class="identifier">lock_sleep_time</span></code></a></span></dt>
+<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__perform_isolated_tx_wait_priority_promotion_">Virtual
+ function <code class="computeroutput"><span class="identifier">perform_isolated_tx_wait_priority_promotion</span></code></a></span></dt>
+<dt><span class="section"><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__perform_irrevocable_tx_wait_priority_promotion_">Virtual
+ function <code class="computeroutput"><span class="identifier">perform_irrevocable_tx_wait_priority_promotion</span></code></a></span></dt>
</dl></div>
<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">base_contention_manager</span> <span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
@@ -109,124 +167,125 @@
</pre>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_destructor__base_contention_manager_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_destructor__base_contention_manager_" title="Virtual
- destructor base_contention_manager">Virtual
- destructor <code class="computeroutput"><span class="identifier">base_contention_manager</span></code></a>
+<a name="toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_destructor__base_contention_manager_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_destructor__base_contention_manager_" title="Virtual
+ destructor base_contention_manager">Virtual
+ destructor <code class="computeroutput"><span class="identifier">base_contention_manager</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">base_contention_manager</span><span class="special">();</span>
</pre>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_new_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_new_" title="Virtual
- function abort_on_new">Virtual
- function <code class="computeroutput"><span class="identifier">abort_on_new</span></code></a>
+<a name="toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_new_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_new_" title="Virtual
+ function abort_on_new">Virtual
+ function <code class="computeroutput"><span class="identifier">abort_on_new</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">abort_on_new</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stm</span><span class="special">::</span><span class="identifier">transaction</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">t</span><span class="special">)</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
</pre>
<p>
- Supplies the behavior for transactional aborts when identified as doomed
- from within a <code class="computeroutput"><span class="identifier">new_memory</span><span class="special">()</span></code> or <code class="computeroutput"><span class="identifier">new_memory_copy</span><span class="special">()</span></code> operation. The input parameter is
- the doomed transaction. Throwing <code class="computeroutput"><span class="identifier">aborted_transaction_exceptions</span></code>
- are the usual mechanism for aborting.
- </p>
+ Supplies the behavior for transactional aborts when identified as
+ doomed from within a <code class="computeroutput"><span class="identifier">new_memory</span><span class="special">()</span></code> or <code class="computeroutput"><span class="identifier">new_memory_copy</span><span class="special">()</span></code> operation. The input parameter
+ is the doomed transaction. Throwing <code class="computeroutput"><span class="identifier">aborted_transaction_exceptions</span></code>
+ are the usual mechanism for aborting.
+ </p>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_delete_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_delete_" title="Virtual
- function abort_on_delete">Virtual
- function <code class="computeroutput"><span class="identifier">abort_on_delete</span></code></a>
+<a name="toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_delete_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_delete_" title="Virtual
+ function abort_on_delete">Virtual
+ function <code class="computeroutput"><span class="identifier">abort_on_delete</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">abort_on_delete</span><span class="special">(</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">stm</span><span class="special">::</span><span class="identifier">transaction</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">t</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">stm</span><span class="special">::</span><span class="identifier">base_transaction_object</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">in</span><span class="special">)</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
</pre>
<p>
- Supplies the behavior for transactional aborts when identified as doomed
- from within a <code class="computeroutput"><span class="identifier">delete_memory</span><span class="special">()</span></code> operation. The input parameters are
- the doomed transaction and the object being deleted. Throwing <code class="computeroutput"><span class="identifier">aborted_transaction_exceptions</span></code> are
- the usual mechanism for aborting.
- </p>
+ Supplies the behavior for transactional aborts when identified as
+ doomed from within a <code class="computeroutput"><span class="identifier">delete_memory</span><span class="special">()</span></code> operation. The input parameters
+ are the doomed transaction and the object being deleted. Throwing
+ <code class="computeroutput"><span class="identifier">aborted_transaction_exceptions</span></code>
+ are the usual mechanism for aborting.
+ </p>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_read_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_read_" title="Virtual
- function abort_on_read">Virtual
- function <code class="computeroutput"><span class="identifier">abort_on_read</span></code></a>
+<a name="toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_read_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_read_" title="Virtual
+ function abort_on_read">Virtual
+ function <code class="computeroutput"><span class="identifier">abort_on_read</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">abort_on_read</span><span class="special">(</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">stm</span><span class="special">::</span><span class="identifier">transaction</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">t</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">stm</span><span class="special">::</span><span class="identifier">base_transaction_object</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">in</span><span class="special">)</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
</pre>
<p>
- Supplies the behavior for transactional aborts when identified as doomed
- from within a <code class="computeroutput"><span class="identifier">read</span><span class="special">()</span></code> operation. The input parameters are
- the doomed transaction and the object being read. Throwing <code class="computeroutput"><span class="identifier">aborted_transaction_exceptions</span></code> are
- the usual mechanism for aborting.
- </p>
+ Supplies the behavior for transactional aborts when identified as
+ doomed from within a <code class="computeroutput"><span class="identifier">read</span><span class="special">()</span></code> operation. The input parameters
+ are the doomed transaction and the object being read. Throwing <code class="computeroutput"><span class="identifier">aborted_transaction_exceptions</span></code>
+ are the usual mechanism for aborting.
+ </p>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_write_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_write_" title="Virtual
- function abort_on_write">Virtual
- function <code class="computeroutput"><span class="identifier">abort_on_write</span></code></a>
+<a name="toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_write_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_on_write_" title="Virtual
+ function abort_on_write">Virtual
+ function <code class="computeroutput"><span class="identifier">abort_on_write</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">abort_on_write</span><span class="special">(</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">stm</span><span class="special">::</span><span class="identifier">transaction</span> <span class="special">&</span><span class="identifier">t</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">stm</span><span class="special">::</span><span class="identifier">base_transaction_object</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">in</span><span class="special">)</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
</pre>
<p>
- Supplies the behavior for transactional aborts when identified as doomed
- from within a <code class="computeroutput"><span class="identifier">write</span><span class="special">()</span></code> operation. The input parameters are
- the doomed transaction and the object being written. Throwing <code class="computeroutput"><span class="identifier">aborted_transaction_exceptions</span></code> are
- the usual mechanism for aborting.
- </p>
+ Supplies the behavior for transactional aborts when identified as
+ doomed from within a <code class="computeroutput"><span class="identifier">write</span><span class="special">()</span></code> operation. The input parameters
+ are the doomed transaction and the object being written. Throwing
+ <code class="computeroutput"><span class="identifier">aborted_transaction_exceptions</span></code>
+ are the usual mechanism for aborting.
+ </p>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_before_commit_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_before_commit_" title="Virtual
- function abort_before_commit">Virtual
- function <code class="computeroutput"><span class="identifier">abort_before_commit</span></code></a>
+<a name="toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_before_commit_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__abort_before_commit_" title="Virtual
+ function abort_before_commit">Virtual
+ function <code class="computeroutput"><span class="identifier">abort_before_commit</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">bool</span> <span class="identifier">abort_before_commit</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stm</span><span class="special">::</span><span class="identifier">transaction</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">t</span><span class="special">)</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
</pre>
<p>
- This method is called prior to a transaction performing its commit
- operation. The parameter passed in is the transaction preparing to
- commit. The client code should return <code class="computeroutput"><span class="keyword">true</span></code>
- if the transaction should abort before committing. Otherwise, client
- implementation should return <code class="computeroutput"><span class="keyword">false</span></code>.
- </p>
+ This method is called prior to a transaction performing its commit
+ operation. The parameter passed in is the transaction preparing to
+ commit. The client code should return <code class="computeroutput"><span class="keyword">true</span></code>
+ if the transaction should abort before committing. Otherwise, client
+ implementation should return <code class="computeroutput"><span class="keyword">false</span></code>.
+ </p>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__permission_to_abort_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__permission_to_abort_" title="Virtual
- function permission_to_abort">Virtual
- function <code class="computeroutput"><span class="identifier">permission_to_abort</span></code></a>
+<a name="toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__permission_to_abort_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__permission_to_abort_" title="Virtual
+ function permission_to_abort">Virtual
+ function <code class="computeroutput"><span class="identifier">permission_to_abort</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">bool</span> <span class="identifier">permission_to_abort</span><span class="special">(</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">stm</span><span class="special">::</span><span class="identifier">transaction</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">lhs</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">stm</span><span class="special">::</span><span class="identifier">transaction</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">rhs</span><span class="special">)</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
</pre>
<p>
- This method is invoked when a transaction is requesting permission
- to abort another transaction due to a memory inconsistency. Client
- code should return <code class="computeroutput"><span class="keyword">true</span></code>
- if the transaction should abort before committing. Otherwise, client
- implementation should return <code class="computeroutput"><span class="keyword">false</span></code>.
- The <code class="computeroutput"><span class="identifier">lhs</span></code> input parameter
- is the transaction requesting to abort <code class="computeroutput"><span class="identifier">rhs</span></code>,
- the <code class="computeroutput"><span class="identifier">rhs</span></code> input parameter
- is the transaction which will be aborted if return <code class="computeroutput"><span class="keyword">true</span></code>.
- Otherwise, if the method returns <code class="computeroutput"><span class="keyword">false</span></code>,
- <code class="computeroutput"><span class="identifier">lhs</span></code> will be aborted.
- </p>
+ This method is invoked when a transaction is requesting permission
+ to abort another transaction due to a memory inconsistency. Client
+ code should return <code class="computeroutput"><span class="keyword">true</span></code>
+ if the transaction should abort before committing. Otherwise, client
+ implementation should return <code class="computeroutput"><span class="keyword">false</span></code>.
+ The <code class="computeroutput"><span class="identifier">lhs</span></code> input parameter
+ is the transaction requesting to abort <code class="computeroutput"><span class="identifier">rhs</span></code>,
+ the <code class="computeroutput"><span class="identifier">rhs</span></code> input parameter
+ is the transaction which will be aborted if return <code class="computeroutput"><span class="keyword">true</span></code>. Otherwise, if the method returns
+ <code class="computeroutput"><span class="keyword">false</span></code>, <code class="computeroutput"><span class="identifier">lhs</span></code> will be aborted.
+ </p>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__allow_lock_to_abort_tx_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__allow_lock_to_abort_tx_" title="Virtual
- function allow_lock_to_abort_tx">Virtual
- function <code class="computeroutput"><span class="identifier">allow_lock_to_abort_tx</span></code></a>
+<a name="toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__allow_lock_to_abort_tx_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__allow_lock_to_abort_tx_" title="Virtual
+ function allow_lock_to_abort_tx">Virtual
+ function <code class="computeroutput"><span class="identifier">allow_lock_to_abort_tx</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">bool</span> <span class="identifier">allow_lock_to_abort_tx</span><span class="special">(</span>
<span class="keyword">int</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lockWaitTime</span><span class="special">,</span>
@@ -237,32 +296,32 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__lock_sleep_time_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__lock_sleep_time_" title="Virtual
- function lock_sleep_time">Virtual
- function <code class="computeroutput"><span class="identifier">lock_sleep_time</span></code></a>
+<a name="toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__lock_sleep_time_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__lock_sleep_time_" title="Virtual
+ function lock_sleep_time">Virtual
+ function <code class="computeroutput"><span class="identifier">lock_sleep_time</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">int</span> <span class="identifier">lock_sleep_time</span><span class="special">();</span>
</pre>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__perform_isolated_tx_wait_priority_promotion_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__perform_isolated_tx_wait_priority_promotion_" title="Virtual
- function perform_isolated_tx_wait_priority_promotion">Virtual
- function <code class="computeroutput"><span class="identifier">perform_isolated_tx_wait_priority_promotion</span></code></a>
+<a name="toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__perform_isolated_tx_wait_priority_promotion_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__perform_isolated_tx_wait_priority_promotion_" title="Virtual
+ function perform_isolated_tx_wait_priority_promotion">Virtual
+ function <code class="computeroutput"><span class="identifier">perform_isolated_tx_wait_priority_promotion</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">perform_isolated_tx_wait_priority_promotion</span><span class="special">(</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">stm</span><span class="special">::</span><span class="identifier">transaction</span> <span class="special">&)</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
</pre>
<p>
- virtual void perform_isolated_tx_wait_priority_promotion( boost::stm::transaction
- &) = 0;
- </p>
+ virtual void perform_isolated_tx_wait_priority_promotion( boost::stm::transaction
+ &) = 0;
+ </p>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__perform_irrevocable_tx_wait_priority_promotion_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__perform_irrevocable_tx_wait_priority_promotion_" title="Virtual
- function perform_irrevocable_tx_wait_priority_promotion">Virtual
- function <code class="computeroutput"><span class="identifier">perform_irrevocable_tx_wait_priority_promotion</span></code></a>
+<a name="toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__perform_irrevocable_tx_wait_priority_promotion_"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.base_contention_manager_hpp.abstract_class__base_contention_manager_.virtual_function__perform_irrevocable_tx_wait_priority_promotion_" title="Virtual
+ function perform_irrevocable_tx_wait_priority_promotion">Virtual
+ function <code class="computeroutput"><span class="identifier">perform_irrevocable_tx_wait_priority_promotion</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">perform_irrevocable_tx_wait_priority_promotion</span><span class="special">(</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">stm</span><span class="special">::</span><span class="identifier">transaction</span> <span class="special">&)</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
@@ -270,6 +329,12 @@
</div>
</div>
</div>
+<div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_stm.reference.contention_managers.dynamic_contention_managers.contention_manager_default_hpp"></a><a href="contention_managers.html#toward_boost_stm.reference.contention_managers.dynamic_contention_managers.contention_manager_default_hpp" title="
+ Header <boost/stm/contention_managers/default.hpp>">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">contention_managers</span><span class="special">/</span><span class="keyword">default</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div></div>
+</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
@@ -281,7 +346,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="basics.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="transactional_objects.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="non_transactional_objects.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../examples.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
</body>
</html>
Modified: sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/reference/non_transactional_objects.html
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/reference/non_transactional_objects.html (original)
+++ sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/reference/non_transactional_objects.html 2009-11-11 11:01:26 EST (Wed, 11 Nov 2009)
@@ -2,14 +2,15 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Non
- transactional objects</title>
+ Transactional Objects</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
<link rel="start" href="../../index.html" title="Chapter 1. Toward.Boost.STM">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="transactional_objects.html" title="Transactional
- objects">
-<link rel="next" href="../examples.html" title="Examples">
+<link rel="prev" href="warppers_transactional_objects.html" title="Warppers
+ Transactional Objects">
+<link rel="next" href="contention_managers.html" title="Contention
+ Managers">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,13 +23,13 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="transactional_objects.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../examples.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="warppers_transactional_objects.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="contention_managers.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="toward_boost_stm.reference.non_transactional_objects"></a><a href="non_transactional_objects.html" title="Non
- transactional objects">Non
- transactional objects</a>
+ Transactional Objects">Non
+ Transactional Objects</a>
</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.non_tx_numeric_hpp">
@@ -37,16 +38,10 @@
Class <code class="computeroutput"><span class="identifier">non_tx</span><span class="special">::</span><span class="identifier">numeric</span><span class="special"><></span></code></a></span></dt></dl></dd>
<dt><span class="section"><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.non_tx_pointer_hpp">
Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">non_tx</span><span class="special">/</span><span class="identifier">pointer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.non_tx_smart_ptr_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">non_tx_smart_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dd><dl>
-<dt><span class="section"><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.non_tx_smart_ptr_hpp.template_class__rd_ptr___">Template
- Class <code class="computeroutput"><span class="identifier">rd_ptr</span><span class="special"><></span></code></a></span></dt>
-<dt><span class="section"><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.non_tx_smart_ptr_hpp.template_class__upgrd_ptr___">Template
- Class <code class="computeroutput"><span class="identifier">upgrd_ptr</span><span class="special"><></span></code></a></span></dt>
-<dt><span class="section"><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.non_tx_smart_ptr_hpp.template_class__wr_ptr___">Template
- Class <code class="computeroutput"><span class="identifier">wr_ptr</span><span class="special"><></span></code></a></span></dt>
-</dl></dd>
+<dt><span class="section"><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.smart_pointers">Smart
+ pointers</a></span></dt>
+<dd><dl><dt><span class="section"><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.smart_pointers.non_tx_smart_ptr_hpp">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">non_tx_smart_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt></dl></dd>
</dl></div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
@@ -107,17 +102,25 @@
</h4></div></div></div></div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_stm.reference.non_transactional_objects.non_tx_smart_ptr_hpp"></a><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.non_tx_smart_ptr_hpp" title="
- Header <boost/stm/non_tx_smart_ptr.hpp>">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">non_tx_smart_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+<a name="toward_boost_stm.reference.non_transactional_objects.smart_pointers"></a><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.smart_pointers" title="Smart
+ pointers">Smart
+ pointers</a>
</h4></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.smart_pointers.non_tx_smart_ptr_hpp">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">non_tx_smart_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt></dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_stm.reference.non_transactional_objects.smart_pointers.non_tx_smart_ptr_hpp"></a><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.smart_pointers.non_tx_smart_ptr_hpp" title="
+ Header <boost/stm/non_tx_smart_ptr.hpp>">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">non_tx_smart_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
<div class="toc"><dl>
-<dt><span class="section"><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.non_tx_smart_ptr_hpp.template_class__rd_ptr___">Template
- Class <code class="computeroutput"><span class="identifier">rd_ptr</span><span class="special"><></span></code></a></span></dt>
-<dt><span class="section"><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.non_tx_smart_ptr_hpp.template_class__upgrd_ptr___">Template
- Class <code class="computeroutput"><span class="identifier">upgrd_ptr</span><span class="special"><></span></code></a></span></dt>
-<dt><span class="section"><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.non_tx_smart_ptr_hpp.template_class__wr_ptr___">Template
- Class <code class="computeroutput"><span class="identifier">wr_ptr</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.smart_pointers.non_tx_smart_ptr_hpp.template_class__rd_ptr___">Template
+ Class <code class="computeroutput"><span class="identifier">rd_ptr</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.smart_pointers.non_tx_smart_ptr_hpp.template_class__upgrd_ptr___">Template
+ Class <code class="computeroutput"><span class="identifier">upgrd_ptr</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.smart_pointers.non_tx_smart_ptr_hpp.template_class__wr_ptr___">Template
+ Class <code class="computeroutput"><span class="identifier">wr_ptr</span><span class="special"><></span></code></a></span></dt>
</dl></div>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">stm</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">non_tx</span> <span class="special">{</span>
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">rd_ptr</span><span class="special">;</span>
@@ -135,38 +138,38 @@
<span class="special">}}}</span>
</pre>
<p>
- These smart pointers points to an unspecified cache type which inherits
- from base_transactional object. This cache is obtained from an internal
- thread safe cache map.
- </p>
-<p>
- As the the non_tx smart pointers need to lookup on a cache they must be
- used only when you need to access to a non transactional variable on the
- context of a transaction. Otherwise, please use tx_ptr<> or the mixin
- transaction_object<>.
- </p>
-<div class="section" lang="en">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_stm.reference.non_transactional_objects.non_tx_smart_ptr_hpp.template_class__rd_ptr___"></a><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.non_tx_smart_ptr_hpp.template_class__rd_ptr___" title="Template
- Class rd_ptr<>">Template
- Class <code class="computeroutput"><span class="identifier">rd_ptr</span><span class="special"><></span></code></a>
-</h5></div></div></div>
-<p>
- A rd_ptr<T> ("read pointer") points to an cache that
- the current transaction has opened for read only access. You can only
- call a const method through a read pointer.
+ These smart pointers points to an unspecified cache type which inherits
+ from base_transactional object. This cache is obtained from an internal
+ thread safe cache map.
</p>
<p>
- A rd_ptr<T> is constructed from an T pointer or reference. Once
- a rd_ptr<T> has been constructed, the associated cache is opened
- for reading.
- </p>
-<p>
- It is not safe to derreference a rd_ptr<T> after having assigned
- the same T to a wr_ptr<T>. If this is the case the readen value
- do not match the writen one. If it is possible to write on the same transaction
- use upgrd_ptr instead which is safe.
+ As the the non_tx smart pointers need to lookup on a cache they must
+ be used only when you need to access to a non transactional variable
+ on the context of a transaction. Otherwise, please use tx_ptr<>
+ or the mixin transaction_object<>.
</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.non_transactional_objects.smart_pointers.non_tx_smart_ptr_hpp.template_class__rd_ptr___"></a><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.smart_pointers.non_tx_smart_ptr_hpp.template_class__rd_ptr___" title="Template
+ Class rd_ptr<>">Template
+ Class <code class="computeroutput"><span class="identifier">rd_ptr</span><span class="special"><></span></code></a>
+</h6></div></div></div>
+<p>
+ A rd_ptr<T> ("read pointer") points to an cache that
+ the current transaction has opened for read only access. You can only
+ call a const method through a read pointer.
+ </p>
+<p>
+ A rd_ptr<T> is constructed from an T pointer or reference. Once
+ a rd_ptr<T> has been constructed, the associated cache is opened
+ for reading.
+ </p>
+<p>
+ It is not safe to derreference a rd_ptr<T> after having assigned
+ the same T to a wr_ptr<T>. If this is the case the readen value
+ do not match the writen one. If it is possible to write on the same
+ transaction use upgrd_ptr instead which is safe.
+ </p>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
<span class="keyword">class</span> <span class="identifier">rd_ptr</span> <span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
@@ -190,28 +193,31 @@
</pre>
</div>
<div class="section" lang="en">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_stm.reference.non_transactional_objects.non_tx_smart_ptr_hpp.template_class__upgrd_ptr___"></a><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.non_tx_smart_ptr_hpp.template_class__upgrd_ptr___" title="Template
- Class upgrd_ptr<>">Template
- Class <code class="computeroutput"><span class="identifier">upgrd_ptr</span><span class="special"><></span></code></a>
-</h5></div></div></div>
-<p>
- A upgrd_ptr<T> ("upgradable pointer") points to an cache
- that the current transaction has opened for read only access. You can
- only call const method of the wrapped type through a upgradable pointer.
- </p>
-<p>
- A upgrd_ptr<T> is constructed from an T pointer or reference through
- a constructor having also the transaction as parameter. Once a upgrd_ptr<T>
- has been constructed, an a cache of T can is opened for reading.
- </p>
-<p>
- It is safe to derreference a upgrd_ptr<T> after having assigned
- the same T to a wr_ptr<T>.
- </p>
-<p>
- A upgrd_ptr<T> can be upgraded to a wr_ptr<T> through a constructor.
- </p>
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.non_transactional_objects.smart_pointers.non_tx_smart_ptr_hpp.template_class__upgrd_ptr___"></a><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.smart_pointers.non_tx_smart_ptr_hpp.template_class__upgrd_ptr___" title="Template
+ Class upgrd_ptr<>">Template
+ Class <code class="computeroutput"><span class="identifier">upgrd_ptr</span><span class="special"><></span></code></a>
+</h6></div></div></div>
+<p>
+ A upgrd_ptr<T> ("upgradable pointer") points to an
+ cache that the current transaction has opened for read only access.
+ You can only call const method of the wrapped type through a upgradable
+ pointer.
+ </p>
+<p>
+ A upgrd_ptr<T> is constructed from an T pointer or reference
+ through a constructor having also the transaction as parameter. Once
+ a upgrd_ptr<T> has been constructed, an a cache of T can is opened
+ for reading.
+ </p>
+<p>
+ It is safe to derreference a upgrd_ptr<T> after having assigned
+ the same T to a wr_ptr<T>.
+ </p>
+<p>
+ A upgrd_ptr<T> can be upgraded to a wr_ptr<T> through a
+ constructor.
+ </p>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
<span class="keyword">class</span> <span class="identifier">upgrd_ptr</span> <span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
@@ -234,22 +240,22 @@
</pre>
</div>
<div class="section" lang="en">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_stm.reference.non_transactional_objects.non_tx_smart_ptr_hpp.template_class__wr_ptr___"></a><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.non_tx_smart_ptr_hpp.template_class__wr_ptr___" title="Template
- Class wr_ptr<>">Template
- Class <code class="computeroutput"><span class="identifier">wr_ptr</span><span class="special"><></span></code></a>
-</h5></div></div></div>
-<p>
- A wr_ptr<T> ("write pointer") points to a cache that
- the current transaction has opened for writing.
- </p>
-<p>
- A wr_ptr<T> is initialized explicitly from an T pointer or reference.
- </p>
-<p>
- A wr_ptr<T> can also be explicitly constructed from a upgrd_ptr<T>
- as an upgrade-to-writable operation.
- </p>
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.non_transactional_objects.smart_pointers.non_tx_smart_ptr_hpp.template_class__wr_ptr___"></a><a href="non_transactional_objects.html#toward_boost_stm.reference.non_transactional_objects.smart_pointers.non_tx_smart_ptr_hpp.template_class__wr_ptr___" title="Template
+ Class wr_ptr<>">Template
+ Class <code class="computeroutput"><span class="identifier">wr_ptr</span><span class="special"><></span></code></a>
+</h6></div></div></div>
+<p>
+ A wr_ptr<T> ("write pointer") points to a cache that
+ the current transaction has opened for writing.
+ </p>
+<p>
+ A wr_ptr<T> is initialized explicitly from an T pointer or reference.
+ </p>
+<p>
+ A wr_ptr<T> can also be explicitly constructed from a upgrd_ptr<T>
+ as an upgrade-to-writable operation.
+ </p>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
<span class="keyword">class</span> <span class="identifier">wr_ptr</span> <span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
@@ -266,6 +272,7 @@
</div>
</div>
</div>
+</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2009 Justin E. Gottchlich<br>Copyright © 2009 Vicente J. Botet Escriba<p>
@@ -276,7 +283,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="transactional_objects.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../examples.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="warppers_transactional_objects.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="contention_managers.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
</body>
</html>
Modified: sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/reference/stm_hpp.html
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/reference/stm_hpp.html (original)
+++ sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/reference/stm_hpp.html 2009-11-11 11:01:26 EST (Wed, 11 Nov 2009)
@@ -7,7 +7,7 @@
<link rel="start" href="../../index.html" title="Chapter 1. Toward.Boost.STM">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="../reference.html" title="Reference">
-<link rel="next" href="basics.html" title="Basics">
+<link rel="next" href="core.html" title="Core">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -20,7 +20,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="../reference.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="basics.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../reference.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="core.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
@@ -64,7 +64,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="../reference.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="basics.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../reference.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="core.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
</body>
</html>
Modified: sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/reference/transactional_objects.html
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/reference/transactional_objects.html (original)
+++ sandbox/stm/branches/vbe/libs/stm/doc/html/toward_boost_stm/reference/transactional_objects.html 2009-11-11 11:01:26 EST (Wed, 11 Nov 2009)
@@ -2,15 +2,14 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Transactional
- objects</title>
+ Objects</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
<link rel="start" href="../../index.html" title="Chapter 1. Toward.Boost.STM">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="contention_managers.html" title="Contention
- managers">
+<link rel="prev" href="core.html" title="Core">
<link rel="next" href="non_transactional_objects.html" title="Non
- transactional objects">
+ Transactional Objects">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -23,327 +22,510 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="contention_managers.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="non_transactional_objects.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="core.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="non_transactional_objects.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="toward_boost_stm.reference.transactional_objects"></a><a href="transactional_objects.html" title="Transactional
- objects">Transactional
- objects</a>
+ Objects">Transactional
+ Objects</a>
</h3></div></div></div>
<div class="toc"><dl>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.shallow_transaction_object_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">shallow_transaction_object</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dd><dl><dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.shallow_transaction_object_hpp.template_class__shallow_transaction_object___">Template
- Class <code class="computeroutput"><span class="identifier">shallow_transaction_object</span><span class="special"><></span></code></a></span></dt></dl></dd>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transaction_object_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">transaction_object</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section">Mixins</span></dt>
<dd><dl>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transaction_object_hpp.template_class__transaction_object___">Template
- Class <code class="computeroutput"><span class="identifier">transaction_object</span><span class="special"><></span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transaction_object_hpp.template_class__native_trans___">Template
- Class <code class="computeroutput"><span class="identifier">native_trans</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy">Deep
+ Copy</a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.shallow_copy">Shallow
+ Copy</a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.smart_pointers">Smart
+ pointers</a></span></dt>
</dl></dd>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transaction_object_ptr_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">transaction_object_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transactional_object_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">transactional_object</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dd><dl><dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transactional_object_hpp.template_class__transactional_object___">Template
- Class <code class="computeroutput"><span class="identifier">transactional_object</span><span class="special"><></span></code></a></span></dt></dl></dd>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.txs_ptr_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">tx_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section">Warppers</span></dt>
<dd><dl>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.txs_ptr_hpp.template_class__read_ptr___">Template
- Class <code class="computeroutput"><span class="identifier">read_ptr</span><span class="special"><></span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.txs_ptr_hpp.template_class__write_ptr___">Template
- Class <code class="computeroutput"><span class="identifier">write_ptr</span><span class="special"><></span></code></a></span></dt>
-</dl></dd>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_numeric_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">tx</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dd><dl><dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_numeric_hpp.template_class__tx__numeric___">Template
- Class <code class="computeroutput"><span class="identifier">tx</span><span class="special">::</span><span class="identifier">numeric</span><span class="special"><></span></code></a></span></dt></dl></dd>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_pointer_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">tx</span><span class="special">/</span><span class="identifier">pointer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dd><dl>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_pointer_hpp.template_class__tx__pointer___">Template
- Class <code class="computeroutput"><span class="identifier">tx</span><span class="special">::</span><span class="identifier">pointer</span><span class="special"><></span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_pointer_hpp.template_class__tx__pointer_to_member___">Template
- Class <code class="computeroutput"><span class="identifier">tx</span><span class="special">::</span><span class="identifier">pointer_to_member</span><span class="special"><></span></code></a></span></dt>
-</dl></dd>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">tx</span><span class="special">/</span><span class="identifier">smart_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dd><dl>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp.template_class__tx_obj___">Template
- Class <code class="computeroutput"><span class="identifier">tx_obj</span><span class="special"><></span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp.template_class__tx_ptr___">Template
- Class <code class="computeroutput"><span class="identifier">tx_ptr</span><span class="special"><></span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp.template_class__rd_ptr___">Template
- Class <code class="computeroutput"><span class="identifier">rd_ptr</span><span class="special"><></span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp.template_class__upgrd_ptr___">Template
- Class <code class="computeroutput"><span class="identifier">upgrd_ptr</span><span class="special"><></span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp.template_class__wr_ptr___">Template
- Class <code class="computeroutput"><span class="identifier">wr_ptr</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.transactional_object_hpp">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">transactional_object</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.smart_pointers">Smart
+ pointers</a></span></dt>
</dl></dd>
</dl></div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.shallow_transaction_object_hpp"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.shallow_transaction_object_hpp" title="
- Header <boost/stm/shallow_transaction_object.hpp>">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">shallow_transaction_object</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+<a name="toward_boost_stm.reference.transactional_objects.mixins"></a>Mixins
</h4></div></div></div>
-<div class="toc"><dl><dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.shallow_transaction_object_hpp.template_class__shallow_transaction_object___">Template
- Class <code class="computeroutput"><span class="identifier">shallow_transaction_object</span><span class="special"><></span></code></a></span></dt></dl></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy">Deep
+ Copy</a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.shallow_copy">Shallow
+ Copy</a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.smart_pointers">Smart
+ pointers</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.mixins.deep_copy"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy" title="Deep
+ Copy">Deep
+ Copy</a>
+</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_hpp">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">transaction_object</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_ptr_hpp">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">transaction_object_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.tx_numeric_hpp">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">tx</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.tx_pointer_hpp">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">tx</span><span class="special">/</span><span class="identifier">pointer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_hpp"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_hpp" title="
+ Header <boost/stm/transaction_object.hpp>">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">transaction_object</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h6></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_hpp.template_class__transaction_object___">Template
+ Class <code class="computeroutput"><span class="identifier">transaction_object</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_hpp.template_class__native_trans___">Template
+ Class <code class="computeroutput"><span class="identifier">native_trans</span><span class="special"><></span></code></a></span></dt>
+</dl></div>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">stm</span> <span class="special">{</span>
- <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Derived</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Base</span><span class="special">=</span><span class="identifier">base_transaction_object</span><span class="special">></span>
- <span class="keyword">class</span> <span class="identifier">shallow_transaction_object</span><span class="special">;</span>
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Derived</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">transaction_object</span><span class="special">;</span>
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">native_trans</span><span class="special">;</span>
<span class="special">}}</span>
</pre>
<div class="section" lang="en">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.shallow_transaction_object_hpp.template_class__shallow_transaction_object___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.shallow_transaction_object_hpp.template_class__shallow_transaction_object___" title="Template
- Class shallow_transaction_object<>">Template
- Class <code class="computeroutput"><span class="identifier">shallow_transaction_object</span><span class="special"><></span></code></a>
-</h5></div></div></div>
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_hpp.template_class__transaction_object___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_hpp.template_class__transaction_object___" title="Template
+ Class transaction_object<>">Template
+ Class <code class="computeroutput"><span class="identifier">transaction_object</span><span class="special"><></span></code></a>
+</h6></div></div></div>
<div class="toc"><dl>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__clone___">Virtual
- function <code class="computeroutput"><span class="identifier">clone</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__copy_state___">Virtual
- function <code class="computeroutput"><span class="identifier">copy_state</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__move_state___">Virtual
- function <code class="computeroutput"><span class="identifier">move_state</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__cache_deallocate___">Virtual
- function <code class="computeroutput"><span class="identifier">cache_deallocate</span><span class="special">()</span></code></a></span></dt>
-</dl></div>
-<p>
- To further simplify the usage of TBoost.STM, an intermediate template
- class was built which is meant to sit between the base_transaction_object
- and the user-defined transaction objects. The purpose of this intermediate
- class is to reduce the code overhead needed for user-defined transaction
- objects. To do this, the curiously recurring template pattern developed
- by James Coplien was used.
- </p>
-<p>
- With the templatized <code class="computeroutput"><span class="identifier">shallow_transaction_object</span></code>,
- client-side transaction objects need only to derive from it and pass
- their class type as its template parameter. At compile-time the transaction_object
- generates the necessary code to override copy_state() and implement operator
- new and operator delete using TBoost.STM's memory manager for all user-defined
- types derived from it.
- </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Derived</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Base</span><span class="special">=</span><span class="identifier">base_transaction_object</span><span class="special">></span>
-<span class="keyword">class</span> <span class="identifier">shallow_transaction_object</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">base_transaction_object</span> <span class="special">{</span>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_hpp.template_class__transaction_object___.virtual_function__clone___">Virtual
+ function <code class="computeroutput"><span class="identifier">clone</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_hpp.template_class__transaction_object___.virtual_function__copy_state___">Virtual
+ function <code class="computeroutput"><span class="identifier">copy_state</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_hpp.template_class__transaction_object___.virtual_function__move_state___">Virtual
+ function <code class="computeroutput"><span class="identifier">move_state</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_hpp.template_class__transaction_object___.virtual_function__cache_deallocate___">Virtual
+ function <code class="computeroutput"><span class="identifier">cache_deallocate</span><span class="special">()</span></code></a></span></dt>
+</dl></div>
+<p>
+ To further simplify the usage of TBoost.STM, an intermediate template
+ class was built which is meant to sit between the base_transaction_object
+ and the user-defined transaction objects. The purpose of this intermediate
+ class is to reduce the code overhead needed for user-defined transaction
+ objects. To do this, the curiously recurring template pattern developed
+ by James Coplien was used.
+ </p>
+<p>
+ With the templatized transaction_object, client-side transaction
+ objects need only to derive from it and pass their class type as
+ its template parameter. At compile-time the transaction_object generates
+ the necessary code to override copy_state() and implement operator
+ new and operator delete using TBoost.STM's memory manager for all
+ user-defined types derived from it.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Derived</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">transaction_object</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">base_transaction_object</span> <span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
<span class="keyword">virtual</span> <span class="identifier">base_transaction_object</span><span class="special">*</span> <span class="identifier">clone</span><span class="special">(</span><span class="identifier">transaction</span><span class="special">*</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
- <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">cache_deallocate</span><span class="special">();</span>
-
<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">copy_state</span><span class="special">(</span><span class="identifier">base_transaction_object</span> <span class="keyword">const</span> <span class="special">*</span> <span class="keyword">const</span> <span class="identifier">rhs</span><span class="special">);</span>
<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">move_state</span><span class="special">(</span><span class="identifier">base_transaction_object</span> <span class="special">*</span> <span class="identifier">rhs</span><span class="special">);</span>
<span class="special">};</span>
</pre>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__clone___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__clone___" title="Virtual
- function clone()">Virtual
- function <code class="computeroutput"><span class="identifier">clone</span><span class="special">()</span></code></a>
+<a name="toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_hpp.template_class__transaction_object___.virtual_function__clone___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_hpp.template_class__transaction_object___.virtual_function__clone___" title="Virtual
+ function clone()">Virtual
+ function <code class="computeroutput"><span class="identifier">clone</span><span class="special">()</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">base_transaction_object</span><span class="special">*</span> <span class="identifier">clone</span><span class="special">(</span><span class="identifier">transaction</span><span class="special">*</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
- The clone() method calls to the free function cache_new_copy which
- allocates enough memory for the new object and then do a memcpy by
- default.
- </p>
+ The clone() creates a new Derived instace using the copy constructor.
+ </p>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__copy_state___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__copy_state___" title="Virtual
- function copy_state()">Virtual
- function <code class="computeroutput"><span class="identifier">copy_state</span><span class="special">()</span></code></a>
+<a name="toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_hpp.template_class__transaction_object___.virtual_function__copy_state___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_hpp.template_class__transaction_object___.virtual_function__copy_state___" title="Virtual
+ function copy_state()">Virtual
+ function <code class="computeroutput"><span class="identifier">copy_state</span><span class="special">()</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">copy_state</span><span class="special">(</span><span class="identifier">base_transaction_object</span> <span class="keyword">const</span> <span class="special">*</span> <span class="keyword">const</span> <span class="identifier">rhs</span><span class="special">);</span>
</pre>
<p>
- The copy_state() method call to the free function cache_copy which
- do a memcpy by default.
- </p>
+ The copy_state() assigns the rhs to this instace using the copy-assignement
+ operator.
+ </p>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__move_state___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__move_state___" title="Virtual
- function move_state()">Virtual
- function <code class="computeroutput"><span class="identifier">move_state</span><span class="special">()</span></code></a>
+<a name="toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_hpp.template_class__transaction_object___.virtual_function__move_state___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_hpp.template_class__transaction_object___.virtual_function__move_state___" title="Virtual
+ function move_state()">Virtual
+ function <code class="computeroutput"><span class="identifier">move_state</span><span class="special">()</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">move_state</span><span class="special">(</span><span class="identifier">base_transaction_object</span> <span class="special">*</span> <span class="identifier">rhs</span><span class="special">);</span>
</pre>
-<p>
- The move_state() method call to the free function cache_copy which
- do a memcpy by default.
- </p>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__cache_deallocate___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__cache_deallocate___" title="Virtual
- function cache_deallocate()">Virtual
- function <code class="computeroutput"><span class="identifier">cache_deallocate</span><span class="special">()</span></code></a>
+<a name="toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_hpp.template_class__transaction_object___.virtual_function__cache_deallocate___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_hpp.template_class__transaction_object___.virtual_function__cache_deallocate___" title="Virtual
+ function cache_deallocate()">Virtual
+ function <code class="computeroutput"><span class="identifier">cache_deallocate</span><span class="special">()</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">cache_deallocate</span><span class="special">();</span>
</pre>
<p>
- The cache_deallocate() method call to the free function cache_deallocate
- which do a memcpy by default.
- </p>
+ The cache_deallocate() delete this instace using the delete operator.
+ </p>
+</div>
</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_hpp.template_class__native_trans___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_hpp.template_class__native_trans___" title="Template
+ Class native_trans<>">Template
+ Class <code class="computeroutput"><span class="identifier">native_trans</span><span class="special"><></span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">native_trans</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">transaction_object</span><span class="special"><</span> <span class="identifier">native_trans</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+ <span class="identifier">native_trans</span><span class="special">(){}</span>
+ <span class="identifier">native_trans</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">native_trans</span><span class="special">(</span><span class="identifier">native_trans</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">native_trans</span><span class="special">(</span><span class="identifier">native_trans</span> <span class="special">&&</span><span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">native_trans</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">native_trans</span> <span class="special">&&</span><span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">native_trans</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">native_trans</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">--();</span>
+ <span class="identifier">native_trans</span> <span class="keyword">operator</span><span class="special">--(</span><span class="keyword">int</span><span class="special">);</span>
+ <span class="identifier">native_trans</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span>
+ <span class="identifier">native_trans</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span>
+ <span class="identifier">native_trans</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">+=(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">native_trans</span> <span class="keyword">operator</span><span class="special">+(</span><span class="identifier">native_trans</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="keyword">operator</span> <span class="identifier">T</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+ <span class="identifier">T</span><span class="special">&</span> <span class="identifier">value</span><span class="special">();</span>
+ <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">value</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
</div>
</div>
+<div class="section" lang="en"><div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_ptr_hpp"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.transaction_object_ptr_hpp" title="
+ Header <boost/stm/transaction_object_ptr.hpp>">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">transaction_object_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h6></div></div></div></div>
<div class="section" lang="en">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.transaction_object_hpp"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transaction_object_hpp" title="
- Header <boost/stm/transaction_object.hpp>">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">transaction_object</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
-</h4></div></div></div>
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.mixins.deep_copy.tx_numeric_hpp"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.tx_numeric_hpp" title="
+ Header <boost/stm/tx/numeric.hpp>">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">tx</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h6></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.tx_numeric_hpp.template_class__tx__numeric___">Template
+ Class <code class="computeroutput"><span class="identifier">tx</span><span class="special">::</span><span class="identifier">numeric</span><span class="special"><></span></code></a></span></dt></dl></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">stm</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tx</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">numeric</span><span class="special">;</span>
+
+ <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">bool</span><span class="special">></span> <span class="identifier">boolean</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">char</span><span class="special">></span> <span class="identifier">char_t</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">unsigned</span> <span class="keyword">char</span><span class="special">></span> <span class="identifier">uchar_t</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">short</span><span class="special">></span> <span class="identifier">short_t</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">unsigned</span> <span class="keyword">short</span><span class="special">></span> <span class="identifier">ushort_t</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">int_t</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">></span> <span class="identifier">uint_t</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">long</span><span class="special">></span> <span class="identifier">long_t</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">unsigned</span> <span class="keyword">long</span><span class="special">></span> <span class="identifier">ulong_t</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="identifier">float_t</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">double_t</span><span class="special">;</span>
+
+<span class="special">}}}</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.mixins.deep_copy.tx_numeric_hpp.template_class__tx__numeric___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.tx_numeric_hpp.template_class__tx__numeric___" title="Template
+ Class tx::numeric<>">Template
+ Class <code class="computeroutput"><span class="identifier">tx</span><span class="special">::</span><span class="identifier">numeric</span><span class="special"><></span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">numeric</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">transaction_object</span><span class="special"><</span> <span class="identifier">numeric</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span>
+<span class="special">{</span>
+<span class="keyword">protected</span><span class="special">:</span>
+ <span class="identifier">T</span> <span class="identifier">val_</span><span class="special">;</span>
+<span class="keyword">public</span><span class="special">:</span>
+ <span class="identifier">numeric</span><span class="special">();</span>
+ <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span> <span class="identifier">numeric</span><span class="special">(</span><span class="identifier">numeric</span><span class="special"><</span><span class="identifier">U</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">u</span><span class="special">);</span>
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">U</span><span class="special">></span> <span class="identifier">numeric</span><span class="special">(</span><span class="identifier">U</span> <span class="identifier">v</span><span class="special">);</span>
+
+ <span class="keyword">operator</span> <span class="identifier">T</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+ <span class="keyword">operator</span> <span class="identifier">T</span><span class="special">&();</span>
+
+ <span class="identifier">T</span><span class="special">&</span> <span class="identifier">ref</span><span class="special">();</span>
+ <span class="identifier">T</span> <span class="identifier">value</span><span class="special">();</span>
+
+<span class="special">};</span>
+</pre>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.mixins.deep_copy.tx_pointer_hpp"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.tx_pointer_hpp" title="
+ Header <boost/stm/tx/pointer.hpp>">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">tx</span><span class="special">/</span><span class="identifier">pointer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h6></div></div></div>
<div class="toc"><dl>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transaction_object_hpp.template_class__transaction_object___">Template
- Class <code class="computeroutput"><span class="identifier">transaction_object</span><span class="special"><></span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transaction_object_hpp.template_class__native_trans___">Template
- Class <code class="computeroutput"><span class="identifier">native_trans</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.tx_pointer_hpp.template_class__tx__pointer___">Template
+ Class <code class="computeroutput"><span class="identifier">tx</span><span class="special">::</span><span class="identifier">pointer</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.tx_pointer_hpp.template_class__tx__pointer_to_member___">Template
+ Class <code class="computeroutput"><span class="identifier">tx</span><span class="special">::</span><span class="identifier">pointer_to_member</span><span class="special"><></span></code></a></span></dt>
</dl></div>
-<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">stm</span> <span class="special">{</span>
- <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Derived</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">transaction_object</span><span class="special">;</span>
- <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">native_trans</span><span class="special">;</span>
-<span class="special">}}</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">stm</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tx</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">pointer</span><span class="special">;</span>
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">C</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">pointer_to_member</span><span class="special">;</span>
+
+<span class="special">}}}</span>
</pre>
<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.mixins.deep_copy.tx_pointer_hpp.template_class__tx__pointer___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.tx_pointer_hpp.template_class__tx__pointer___" title="Template
+ Class tx::pointer<>">Template
+ Class <code class="computeroutput"><span class="identifier">tx</span><span class="special">::</span><span class="identifier">pointer</span><span class="special"><></span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">pointer</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">transaction_object</span><span class="special"><</span> <span class="identifier">pointer</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span>
+<span class="special">{</span>
+<span class="keyword">protected</span><span class="special">:</span>
+ <span class="identifier">T</span><span class="special">*</span> <span class="identifier">val_</span><span class="special">;</span>
+<span class="keyword">public</span><span class="special">:</span>
+ <span class="identifier">pointer</span><span class="special">();</span>
+ <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span> <span class="identifier">pointer</span><span class="special">(</span><span class="identifier">pointer</span><span class="special"><</span><span class="identifier">U</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">r</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">U</span><span class="special">></span> <span class="identifier">pointer</span><span class="special">(</span><span class="identifier">U</span><span class="special">*</span> <span class="identifier">v</span><span class="special">);</span>
+ <span class="identifier">pointer</span><span class="special">(</span><span class="identifier">T</span><span class="special">*</span> <span class="identifier">v</span><span class="special">);</span>
+ <span class="special">~</span><span class="identifier">pointer</span><span class="special">()</span> <span class="special">{}</span>
+
+ <span class="keyword">operator</span> <span class="identifier">T</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span>
+ <span class="keyword">operator</span> <span class="identifier">T</span><span class="special">*&();</span>
+
+ <span class="identifier">T</span><span class="special">*&</span> <span class="identifier">get</span><span class="special">();</span>
+ <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">*</span> <span class="identifier">get</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+ <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">*</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span>
+ <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span>
+
+ <span class="identifier">T</span> <span class="special">*</span> <span class="keyword">operator</span><span class="special">->();</span>
+ <span class="identifier">T</span> <span class="special">&</span> <span class="keyword">operator</span><span class="special">*();</span>
+<span class="special">};</span>
+</pre>
+</div>
+<div class="section" lang="en"><div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.mixins.deep_copy.tx_pointer_hpp.template_class__tx__pointer_to_member___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.deep_copy.tx_pointer_hpp.template_class__tx__pointer_to_member___" title="Template
+ Class tx::pointer_to_member<>">Template
+ Class <code class="computeroutput"><span class="identifier">tx</span><span class="special">::</span><span class="identifier">pointer_to_member</span><span class="special"><></span></code></a>
+</h6></div></div></div></div>
+</div>
+</div>
+<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.transaction_object_hpp.template_class__transaction_object___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transaction_object_hpp.template_class__transaction_object___" title="Template
- Class transaction_object<>">Template
- Class <code class="computeroutput"><span class="identifier">transaction_object</span><span class="special"><></span></code></a>
+<a name="toward_boost_stm.reference.transactional_objects.mixins.shallow_copy"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.shallow_copy" title="Shallow
+ Copy">Shallow
+ Copy</a>
</h5></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.shallow_copy.shallow_transaction_object_hpp">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">shallow_transaction_object</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt></dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.mixins.shallow_copy.shallow_transaction_object_hpp"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.shallow_copy.shallow_transaction_object_hpp" title="
+ Header <boost/stm/shallow_transaction_object.hpp>">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">shallow_transaction_object</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h6></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.shallow_copy.shallow_transaction_object_hpp.template_class__shallow_transaction_object___">Template
+ Class <code class="computeroutput"><span class="identifier">shallow_transaction_object</span><span class="special"><></span></code></a></span></dt></dl></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">stm</span> <span class="special">{</span>
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Derived</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Base</span><span class="special">=</span><span class="identifier">base_transaction_object</span><span class="special">></span>
+ <span class="keyword">class</span> <span class="identifier">shallow_transaction_object</span><span class="special">;</span>
+<span class="special">}}</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.mixins.shallow_copy.shallow_transaction_object_hpp.template_class__shallow_transaction_object___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.shallow_copy.shallow_transaction_object_hpp.template_class__shallow_transaction_object___" title="Template
+ Class shallow_transaction_object<>">Template
+ Class <code class="computeroutput"><span class="identifier">shallow_transaction_object</span><span class="special"><></span></code></a>
+</h6></div></div></div>
<div class="toc"><dl>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transaction_object_hpp.template_class__transaction_object___.virtual_function__clone___">Virtual
- function <code class="computeroutput"><span class="identifier">clone</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transaction_object_hpp.template_class__transaction_object___.virtual_function__copy_state___">Virtual
- function <code class="computeroutput"><span class="identifier">copy_state</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transaction_object_hpp.template_class__transaction_object___.virtual_function__move_state___">Virtual
- function <code class="computeroutput"><span class="identifier">move_state</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transaction_object_hpp.template_class__transaction_object___.virtual_function__cache_deallocate___">Virtual
- function <code class="computeroutput"><span class="identifier">cache_deallocate</span><span class="special">()</span></code></a></span></dt>
-</dl></div>
-<p>
- To further simplify the usage of TBoost.STM, an intermediate template
- class was built which is meant to sit between the base_transaction_object
- and the user-defined transaction objects. The purpose of this intermediate
- class is to reduce the code overhead needed for user-defined transaction
- objects. To do this, the curiously recurring template pattern developed
- by James Coplien was used.
- </p>
-<p>
- With the templatized transaction_object, client-side transaction objects
- need only to derive from it and pass their class type as its template
- parameter. At compile-time the transaction_object generates the necessary
- code to override copy_state() and implement operator new and operator
- delete using TBoost.STM's memory manager for all user-defined types derived
- from it.
- </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Derived</span><span class="special">></span>
-<span class="keyword">class</span> <span class="identifier">transaction_object</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">base_transaction_object</span> <span class="special">{</span>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.shallow_copy.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__clone___">Virtual
+ function <code class="computeroutput"><span class="identifier">clone</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.shallow_copy.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__copy_state___">Virtual
+ function <code class="computeroutput"><span class="identifier">copy_state</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.shallow_copy.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__move_state___">Virtual
+ function <code class="computeroutput"><span class="identifier">move_state</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.shallow_copy.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__cache_deallocate___">Virtual
+ function <code class="computeroutput"><span class="identifier">cache_deallocate</span><span class="special">()</span></code></a></span></dt>
+</dl></div>
+<p>
+ To further simplify the usage of TBoost.STM, an intermediate template
+ class was built which is meant to sit between the base_transaction_object
+ and the user-defined transaction objects. The purpose of this intermediate
+ class is to reduce the code overhead needed for user-defined transaction
+ objects. To do this, the curiously recurring template pattern developed
+ by James Coplien was used.
+ </p>
+<p>
+ With the templatized <code class="computeroutput"><span class="identifier">shallow_transaction_object</span></code>,
+ client-side transaction objects need only to derive from it and pass
+ their class type as its template parameter. At compile-time the transaction_object
+ generates the necessary code to override copy_state() and implement
+ operator new and operator delete using TBoost.STM's memory manager
+ for all user-defined types derived from it.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Derived</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Base</span><span class="special">=</span><span class="identifier">base_transaction_object</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">shallow_transaction_object</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">base_transaction_object</span> <span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
<span class="keyword">virtual</span> <span class="identifier">base_transaction_object</span><span class="special">*</span> <span class="identifier">clone</span><span class="special">(</span><span class="identifier">transaction</span><span class="special">*</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+ <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">cache_deallocate</span><span class="special">();</span>
+
<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">copy_state</span><span class="special">(</span><span class="identifier">base_transaction_object</span> <span class="keyword">const</span> <span class="special">*</span> <span class="keyword">const</span> <span class="identifier">rhs</span><span class="special">);</span>
<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">move_state</span><span class="special">(</span><span class="identifier">base_transaction_object</span> <span class="special">*</span> <span class="identifier">rhs</span><span class="special">);</span>
<span class="special">};</span>
</pre>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.transaction_object_hpp.template_class__transaction_object___.virtual_function__clone___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transaction_object_hpp.template_class__transaction_object___.virtual_function__clone___" title="Virtual
- function clone()">Virtual
- function <code class="computeroutput"><span class="identifier">clone</span><span class="special">()</span></code></a>
+<a name="toward_boost_stm.reference.transactional_objects.mixins.shallow_copy.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__clone___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.shallow_copy.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__clone___" title="Virtual
+ function clone()">Virtual
+ function <code class="computeroutput"><span class="identifier">clone</span><span class="special">()</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="identifier">base_transaction_object</span><span class="special">*</span> <span class="identifier">clone</span><span class="special">(</span><span class="identifier">transaction</span><span class="special">*</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
- The clone() creates a new Derived instace using the copy constructor.
- </p>
+ The clone() method calls to the free function cache_new_copy which
+ allocates enough memory for the new object and then do a memcpy
+ by default.
+ </p>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.transaction_object_hpp.template_class__transaction_object___.virtual_function__copy_state___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transaction_object_hpp.template_class__transaction_object___.virtual_function__copy_state___" title="Virtual
- function copy_state()">Virtual
- function <code class="computeroutput"><span class="identifier">copy_state</span><span class="special">()</span></code></a>
+<a name="toward_boost_stm.reference.transactional_objects.mixins.shallow_copy.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__copy_state___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.shallow_copy.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__copy_state___" title="Virtual
+ function copy_state()">Virtual
+ function <code class="computeroutput"><span class="identifier">copy_state</span><span class="special">()</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">copy_state</span><span class="special">(</span><span class="identifier">base_transaction_object</span> <span class="keyword">const</span> <span class="special">*</span> <span class="keyword">const</span> <span class="identifier">rhs</span><span class="special">);</span>
</pre>
<p>
- The copy_state() assigns the rhs to this instace using the copy-assignement
- operator.
- </p>
+ The copy_state() method call to the free function cache_copy which
+ do a memcpy by default.
+ </p>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.transaction_object_hpp.template_class__transaction_object___.virtual_function__move_state___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transaction_object_hpp.template_class__transaction_object___.virtual_function__move_state___" title="Virtual
- function move_state()">Virtual
- function <code class="computeroutput"><span class="identifier">move_state</span><span class="special">()</span></code></a>
+<a name="toward_boost_stm.reference.transactional_objects.mixins.shallow_copy.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__move_state___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.shallow_copy.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__move_state___" title="Virtual
+ function move_state()">Virtual
+ function <code class="computeroutput"><span class="identifier">move_state</span><span class="special">()</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">move_state</span><span class="special">(</span><span class="identifier">base_transaction_object</span> <span class="special">*</span> <span class="identifier">rhs</span><span class="special">);</span>
</pre>
+<p>
+ The move_state() method call to the free function cache_copy which
+ do a memcpy by default.
+ </p>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.transaction_object_hpp.template_class__transaction_object___.virtual_function__cache_deallocate___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transaction_object_hpp.template_class__transaction_object___.virtual_function__cache_deallocate___" title="Virtual
- function cache_deallocate()">Virtual
- function <code class="computeroutput"><span class="identifier">cache_deallocate</span><span class="special">()</span></code></a>
+<a name="toward_boost_stm.reference.transactional_objects.mixins.shallow_copy.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__cache_deallocate___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.shallow_copy.shallow_transaction_object_hpp.template_class__shallow_transaction_object___.virtual_function__cache_deallocate___" title="Virtual
+ function cache_deallocate()">Virtual
+ function <code class="computeroutput"><span class="identifier">cache_deallocate</span><span class="special">()</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">cache_deallocate</span><span class="special">();</span>
</pre>
<p>
- The cache_deallocate() delete this instace using the delete operator.
- </p>
+ The cache_deallocate() method call to the free function cache_deallocate
+ which do a memcpy by default.
+ </p>
+</div>
+</div>
</div>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.transaction_object_hpp.template_class__native_trans___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transaction_object_hpp.template_class__native_trans___" title="Template
- Class native_trans<>">Template
- Class <code class="computeroutput"><span class="identifier">native_trans</span><span class="special"><></span></code></a>
+<a name="toward_boost_stm.reference.transactional_objects.mixins.smart_pointers"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.smart_pointers" title="Smart
+ pointers">Smart
+ pointers</a>
</h5></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">native_trans</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">transaction_object</span><span class="special"><</span> <span class="identifier">native_trans</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+<div class="toc"><dl><dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.smart_pointers.txs_ptr_hpp">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">tx_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt></dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.mixins.smart_pointers.txs_ptr_hpp"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.smart_pointers.txs_ptr_hpp" title="
+ Header <boost/stm/tx_ptr.hpp>">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">tx_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h6></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.smart_pointers.txs_ptr_hpp.template_class__read_ptr___">Template
+ Class <code class="computeroutput"><span class="identifier">read_ptr</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.smart_pointers.txs_ptr_hpp.template_class__write_ptr___">Template
+ Class <code class="computeroutput"><span class="identifier">write_ptr</span><span class="special"><></span></code></a></span></dt>
+</dl></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">stm</span> <span class="special">{</span>
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">read_ptr</span><span class="special">;</span>
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">write_ptr</span><span class="special">;</span>
+<span class="special">}}</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.mixins.smart_pointers.txs_ptr_hpp.template_class__read_ptr___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.smart_pointers.txs_ptr_hpp.template_class__read_ptr___" title="Template
+ Class read_ptr<>">Template
+ Class <code class="computeroutput"><span class="identifier">read_ptr</span><span class="special"><></span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">read_ptr</span> <span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
- <span class="identifier">native_trans</span><span class="special">(){}</span>
- <span class="identifier">native_trans</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">rhs</span><span class="special">);</span>
- <span class="identifier">native_trans</span><span class="special">(</span><span class="identifier">native_trans</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">rhs</span><span class="special">);</span>
- <span class="identifier">native_trans</span><span class="special">(</span><span class="identifier">native_trans</span> <span class="special">&&</span><span class="identifier">rhs</span><span class="special">);</span>
- <span class="identifier">native_trans</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">native_trans</span> <span class="special">&&</span><span class="identifier">rhs</span><span class="special">);</span>
-
- <span class="identifier">native_trans</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">rhs</span><span class="special">);</span>
-
- <span class="identifier">native_trans</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">--();</span>
- <span class="identifier">native_trans</span> <span class="keyword">operator</span><span class="special">--(</span><span class="keyword">int</span><span class="special">);</span>
- <span class="identifier">native_trans</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span>
- <span class="identifier">native_trans</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span>
- <span class="identifier">native_trans</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">+=(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">rhs</span><span class="special">);</span>
- <span class="identifier">native_trans</span> <span class="keyword">operator</span><span class="special">+(</span><span class="identifier">native_trans</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">inline</span> <span class="identifier">read_ptr</span><span class="special">(</span><span class="identifier">transaction</span> <span class="special">&</span><span class="identifier">t</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">tx_obj</span><span class="special">);</span>
+ <span class="keyword">const</span> <span class="identifier">T</span><span class="special">*</span> <span class="identifier">get</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+ <span class="keyword">inline</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span>
+ <span class="keyword">inline</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">*</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span>
- <span class="keyword">operator</span> <span class="identifier">T</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
- <span class="identifier">T</span><span class="special">&</span> <span class="identifier">value</span><span class="special">();</span>
- <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">value</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+ <span class="keyword">inline</span> <span class="identifier">transaction</span> <span class="special">&</span><span class="identifier">trans</span><span class="special">();</span>
+ <span class="identifier">T</span><span class="special">*</span> <span class="identifier">write_ptr</span><span class="special">();</span>
<span class="special">};</span>
</pre>
</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.mixins.smart_pointers.txs_ptr_hpp.template_class__write_ptr___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.mixins.smart_pointers.txs_ptr_hpp.template_class__write_ptr___" title="Template
+ Class write_ptr<>">Template
+ Class <code class="computeroutput"><span class="identifier">write_ptr</span><span class="special"><></span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">write_ptr</span> <span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+ <span class="keyword">inline</span> <span class="identifier">write_ptr</span><span class="special">(</span><span class="identifier">transaction</span> <span class="special">&</span><span class="identifier">t</span><span class="special">,</span> <span class="identifier">T</span> <span class="special">&</span> <span class="identifier">tx_obj</span><span class="special">);</span>
+
+ <span class="identifier">T</span><span class="special">*</span> <span class="identifier">get</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+ <span class="keyword">inline</span> <span class="identifier">T</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">*();</span>
+ <span class="keyword">inline</span> <span class="identifier">T</span><span class="special">*</span> <span class="keyword">operator</span><span class="special">->();</span>
+</pre>
+</div>
+</div>
+</div>
</div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.transaction_object_ptr_hpp"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transaction_object_ptr_hpp" title="
- Header <boost/stm/transaction_object_ptr.hpp>">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">transaction_object_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
-</h4></div></div></div></div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.transactional_object_hpp"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transactional_object_hpp" title="
- Header <boost/stm/transactional_object.hpp>">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">transactional_object</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+<a name="toward_boost_stm.reference.transactional_objects.warppers"></a>Warppers
</h4></div></div></div>
-<div class="toc"><dl><dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transactional_object_hpp.template_class__transactional_object___">Template
- Class <code class="computeroutput"><span class="identifier">transactional_object</span><span class="special"><></span></code></a></span></dt></dl></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.transactional_object_hpp">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">transactional_object</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.smart_pointers">Smart
+ pointers</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.warppers.transactional_object_hpp"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.transactional_object_hpp" title="
+ Header <boost/stm/transactional_object.hpp>">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">transactional_object</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.transactional_object_hpp.template_class__transactional_object___">Template
+ Class <code class="computeroutput"><span class="identifier">transactional_object</span><span class="special"><></span></code></a></span></dt></dl></div>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">stm</span> <span class="special">{</span>
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">transactional_object</span><span class="special">;</span>
@@ -358,51 +540,51 @@
<span class="special">}}</span>
</pre>
<div class="section" lang="en">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.transactional_object_hpp.template_class__transactional_object___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transactional_object_hpp.template_class__transactional_object___" title="Template
- Class transactional_object<>">Template
- Class <code class="computeroutput"><span class="identifier">transactional_object</span><span class="special"><></span></code></a>
-</h5></div></div></div>
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.warppers.transactional_object_hpp.template_class__transactional_object___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.transactional_object_hpp.template_class__transactional_object___" title="Template
+ Class transactional_object<>">Template
+ Class <code class="computeroutput"><span class="identifier">transactional_object</span><span class="special"><></span></code></a>
+</h6></div></div></div>
<div class="toc"><dl>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transactional_object_hpp.template_class__transactional_object___.virtual_function__copy_state___">Virtual
- function <code class="computeroutput"><span class="identifier">copy_state</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transactional_object_hpp.template_class__transactional_object___.virtual_function__move_state___">Virtual
- function <code class="computeroutput"><span class="identifier">move_state</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transactional_object_hpp.template_class__transactional_object___.virtual_function__cache_deallocate___">Virtual
- function <code class="computeroutput"><span class="identifier">cache_deallocate</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.transactional_object_hpp.template_class__transactional_object___.virtual_function__copy_state___">Virtual
+ function <code class="computeroutput"><span class="identifier">copy_state</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.transactional_object_hpp.template_class__transactional_object___.virtual_function__move_state___">Virtual
+ function <code class="computeroutput"><span class="identifier">move_state</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.transactional_object_hpp.template_class__transactional_object___.virtual_function__cache_deallocate___">Virtual
+ function <code class="computeroutput"><span class="identifier">cache_deallocate</span><span class="special">()</span></code></a></span></dt>
</dl></div>
<p>
- Transactional object wrapper. A <code class="computeroutput"><span class="identifier">transactional_object</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code> is a base_transaction_object wrapping
- an instance of type T. Provides the definition of the virtual functions
- </p>
+ Transactional object wrapper. A <code class="computeroutput"><span class="identifier">transactional_object</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code> is a base_transaction_object wrapping
+ an instance of type T. Provides the definition of the virtual functions
+ </p>
<div class="itemizedlist"><ul type="disc">
<li>
- forward constructors to the wrapped type
- </li>
+ forward constructors to the wrapped type
+ </li>
<li>
<code class="computeroutput"><span class="identifier">copy_state</span></code>: relaying
- on the cache_copy<T> generic function
- </li>
+ on the cache_copy<T> generic function
+ </li>
<li>
<code class="computeroutput"><span class="identifier">move_state</span></code> and
- </li>
+ </li>
<li>
-<code class="computeroutput"><span class="identifier">cache_deallocate</span></code>: relaying
- on the cache_copy<T> generic function
- </li>
+<code class="computeroutput"><span class="identifier">cache_deallocate</span></code>:
+ relaying on the cache_copy<T> generic function
+ </li>
</ul></div>
<p>
- Defines in addition the functions <code class="computeroutput"><span class="keyword">new</span></code>
- and <code class="computeroutput"><span class="keyword">delete</span></code> when <code class="computeroutput"><span class="identifier">BOOST_STM_USE_MEMORY_MANAGER</span></code> is defined
- </p>
-<p>
- If a class D inherits from B we have that <code class="computeroutput"><span class="identifier">transactional_object</span><span class="special"><</span><span class="identifier">D</span><span class="special">></span></code> dont inherits from <code class="computeroutput"><span class="identifier">transactional_object</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span></code>,
- but we can static/dynamic cast them robustly.
- </p>
-<p>
- Evidently the <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="keyword">static_cast</span></code>/<code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="keyword">dynamic_cast</span></code>
- do not works. We need to define the specific cast
- </p>
+ Defines in addition the functions <code class="computeroutput"><span class="keyword">new</span></code>
+ and <code class="computeroutput"><span class="keyword">delete</span></code> when <code class="computeroutput"><span class="identifier">BOOST_STM_USE_MEMORY_MANAGER</span></code> is defined
+ </p>
+<p>
+ If a class D inherits from B we have that <code class="computeroutput"><span class="identifier">transactional_object</span><span class="special"><</span><span class="identifier">D</span><span class="special">></span></code> dont inherits from <code class="computeroutput"><span class="identifier">transactional_object</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span></code>,
+ but we can static/dynamic cast them robustly.
+ </p>
+<p>
+ Evidently the <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="keyword">static_cast</span></code>/<code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="keyword">dynamic_cast</span></code>
+ do not works. We need to define the specific cast
+ </p>
<pre class="programlisting"><span class="identifier">transactional_object</span><span class="special"><</span><span class="identifier">D</span><span class="special">>*</span> <span class="identifier">d</span><span class="special">=...;</span>
<span class="identifier">transactional_object</span><span class="special"><</span><span class="identifier">B</span><span class="special">>*</span> <span class="identifier">b</span><span class="special">=</span><span class="identifier">tx_static_cast</span><span class="special"><</span><span class="identifier">B</span><span class="special">>(</span><span class="identifier">d</span><span class="special">);</span>
@@ -410,8 +592,8 @@
<span class="identifier">transactional_object</span><span class="special"><</span><span class="identifier">D</span><span class="special">>*</span> <span class="identifier">d</span><span class="special">=</span><span class="identifier">tx_dynamic_cast</span><span class="special"><</span><span class="identifier">B</span><span class="special">>(</span><span class="identifier">b</span><span class="special">);</span>
</pre>
<p>
- Synopsis
- </p>
+ Synopsis
+ </p>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
<span class="keyword">class</span> <span class="identifier">transactional_object</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">base_transaction_object</span> <span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
@@ -443,27 +625,27 @@
</pre>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.transactional_object_hpp.template_class__transactional_object___.virtual_function__copy_state___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transactional_object_hpp.template_class__transactional_object___.virtual_function__copy_state___" title="Virtual
- function copy_state()">Virtual
- function <code class="computeroutput"><span class="identifier">copy_state</span><span class="special">()</span></code></a>
+<a name="toward_boost_stm.reference.transactional_objects.warppers.transactional_object_hpp.template_class__transactional_object___.virtual_function__copy_state___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.transactional_object_hpp.template_class__transactional_object___.virtual_function__copy_state___" title="Virtual
+ function copy_state()">Virtual
+ function <code class="computeroutput"><span class="identifier">copy_state</span><span class="special">()</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">copy_state</span><span class="special">(</span><span class="identifier">base_transaction_object</span> <span class="keyword">const</span> <span class="special">*</span> <span class="keyword">const</span> <span class="identifier">rhs</span><span class="special">);</span>
</pre>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.transactional_object_hpp.template_class__transactional_object___.virtual_function__move_state___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transactional_object_hpp.template_class__transactional_object___.virtual_function__move_state___" title="Virtual
- function move_state()">Virtual
- function <code class="computeroutput"><span class="identifier">move_state</span><span class="special">()</span></code></a>
+<a name="toward_boost_stm.reference.transactional_objects.warppers.transactional_object_hpp.template_class__transactional_object___.virtual_function__move_state___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.transactional_object_hpp.template_class__transactional_object___.virtual_function__move_state___" title="Virtual
+ function move_state()">Virtual
+ function <code class="computeroutput"><span class="identifier">move_state</span><span class="special">()</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">move_state</span><span class="special">(</span><span class="identifier">base_transaction_object</span> <span class="special">*</span> <span class="identifier">rhs</span><span class="special">);</span>
</pre>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.transactional_object_hpp.template_class__transactional_object___.virtual_function__cache_deallocate___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.transactional_object_hpp.template_class__transactional_object___.virtual_function__cache_deallocate___" title="Virtual
- function cache_deallocate()">Virtual
- function <code class="computeroutput"><span class="identifier">cache_deallocate</span><span class="special">()</span></code></a>
+<a name="toward_boost_stm.reference.transactional_objects.warppers.transactional_object_hpp.template_class__transactional_object___.virtual_function__cache_deallocate___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.transactional_object_hpp.template_class__transactional_object___.virtual_function__cache_deallocate___" title="Virtual
+ function cache_deallocate()">Virtual
+ function <code class="computeroutput"><span class="identifier">cache_deallocate</span><span class="special">()</span></code></a>
</h6></div></div></div>
<pre class="programlisting"><span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">cache_deallocate</span><span class="special">()=</span><span class="number">0</span><span class="special">;</span>
</pre>
@@ -471,183 +653,30 @@
</div>
</div>
<div class="section" lang="en">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.txs_ptr_hpp"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.txs_ptr_hpp" title="
- Header <boost/stm/tx_ptr.hpp>">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">tx_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
-</h4></div></div></div>
-<div class="toc"><dl>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.txs_ptr_hpp.template_class__read_ptr___">Template
- Class <code class="computeroutput"><span class="identifier">read_ptr</span><span class="special"><></span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.txs_ptr_hpp.template_class__write_ptr___">Template
- Class <code class="computeroutput"><span class="identifier">write_ptr</span><span class="special"><></span></code></a></span></dt>
-</dl></div>
-<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">stm</span> <span class="special">{</span>
- <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">read_ptr</span><span class="special">;</span>
- <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">write_ptr</span><span class="special">;</span>
-<span class="special">}}</span>
-</pre>
-<div class="section" lang="en">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.txs_ptr_hpp.template_class__read_ptr___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.txs_ptr_hpp.template_class__read_ptr___" title="Template
- Class read_ptr<>">Template
- Class <code class="computeroutput"><span class="identifier">read_ptr</span><span class="special"><></span></code></a>
-</h5></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">read_ptr</span> <span class="special">{</span>
-<span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">inline</span> <span class="identifier">read_ptr</span><span class="special">(</span><span class="identifier">transaction</span> <span class="special">&</span><span class="identifier">t</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">tx_obj</span><span class="special">);</span>
- <span class="keyword">const</span> <span class="identifier">T</span><span class="special">*</span> <span class="identifier">get</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
- <span class="keyword">inline</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span>
- <span class="keyword">inline</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">*</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span>
-
- <span class="keyword">inline</span> <span class="identifier">transaction</span> <span class="special">&</span><span class="identifier">trans</span><span class="special">();</span>
- <span class="identifier">T</span><span class="special">*</span> <span class="identifier">write_ptr</span><span class="special">();</span>
-<span class="special">};</span>
-</pre>
-</div>
-<div class="section" lang="en">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.txs_ptr_hpp.template_class__write_ptr___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.txs_ptr_hpp.template_class__write_ptr___" title="Template
- Class write_ptr<>">Template
- Class <code class="computeroutput"><span class="identifier">write_ptr</span><span class="special"><></span></code></a>
-</h5></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">write_ptr</span> <span class="special">{</span>
-<span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">inline</span> <span class="identifier">write_ptr</span><span class="special">(</span><span class="identifier">transaction</span> <span class="special">&</span><span class="identifier">t</span><span class="special">,</span> <span class="identifier">T</span> <span class="special">&</span> <span class="identifier">tx_obj</span><span class="special">);</span>
-
- <span class="identifier">T</span><span class="special">*</span> <span class="identifier">get</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
- <span class="keyword">inline</span> <span class="identifier">T</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">*();</span>
- <span class="keyword">inline</span> <span class="identifier">T</span><span class="special">*</span> <span class="keyword">operator</span><span class="special">->();</span>
-</pre>
-</div>
-</div>
-<div class="section" lang="en">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.tx_numeric_hpp"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_numeric_hpp" title="
- Header <boost/stm/tx/numeric.hpp>">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">tx</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
-</h4></div></div></div>
-<div class="toc"><dl><dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_numeric_hpp.template_class__tx__numeric___">Template
- Class <code class="computeroutput"><span class="identifier">tx</span><span class="special">::</span><span class="identifier">numeric</span><span class="special"><></span></code></a></span></dt></dl></div>
-<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">stm</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tx</span> <span class="special">{</span>
-
- <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">numeric</span><span class="special">;</span>
-
- <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">bool</span><span class="special">></span> <span class="identifier">boolean</span><span class="special">;</span>
- <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">char</span><span class="special">></span> <span class="identifier">char_t</span><span class="special">;</span>
- <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">unsigned</span> <span class="keyword">char</span><span class="special">></span> <span class="identifier">uchar_t</span><span class="special">;</span>
- <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">short</span><span class="special">></span> <span class="identifier">short_t</span><span class="special">;</span>
- <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">unsigned</span> <span class="keyword">short</span><span class="special">></span> <span class="identifier">ushort_t</span><span class="special">;</span>
- <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">int_t</span><span class="special">;</span>
- <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">></span> <span class="identifier">uint_t</span><span class="special">;</span>
- <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">long</span><span class="special">></span> <span class="identifier">long_t</span><span class="special">;</span>
- <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">unsigned</span> <span class="keyword">long</span><span class="special">></span> <span class="identifier">ulong_t</span><span class="special">;</span>
- <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="identifier">float_t</span><span class="special">;</span>
- <span class="keyword">typedef</span> <span class="identifier">numeric</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">double_t</span><span class="special">;</span>
-
-<span class="special">}}}</span>
-</pre>
-<div class="section" lang="en">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.tx_numeric_hpp.template_class__tx__numeric___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_numeric_hpp.template_class__tx__numeric___" title="Template
- Class tx::numeric<>">Template
- Class <code class="computeroutput"><span class="identifier">tx</span><span class="special">::</span><span class="identifier">numeric</span><span class="special"><></span></code></a>
-</h5></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
-<span class="keyword">class</span> <span class="identifier">numeric</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">transaction_object</span><span class="special"><</span> <span class="identifier">numeric</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span>
-<span class="special">{</span>
-<span class="keyword">protected</span><span class="special">:</span>
- <span class="identifier">T</span> <span class="identifier">val_</span><span class="special">;</span>
-<span class="keyword">public</span><span class="special">:</span>
- <span class="identifier">numeric</span><span class="special">();</span>
- <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span> <span class="identifier">numeric</span><span class="special">(</span><span class="identifier">numeric</span><span class="special"><</span><span class="identifier">U</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">u</span><span class="special">);</span>
- <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">U</span><span class="special">></span> <span class="identifier">numeric</span><span class="special">(</span><span class="identifier">U</span> <span class="identifier">v</span><span class="special">);</span>
-
- <span class="keyword">operator</span> <span class="identifier">T</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
- <span class="keyword">operator</span> <span class="identifier">T</span><span class="special">&();</span>
-
- <span class="identifier">T</span><span class="special">&</span> <span class="identifier">ref</span><span class="special">();</span>
- <span class="identifier">T</span> <span class="identifier">value</span><span class="special">();</span>
-
-<span class="special">};</span>
-</pre>
-</div>
-</div>
-<div class="section" lang="en">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.tx_pointer_hpp"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_pointer_hpp" title="
- Header <boost/stm/tx/pointer.hpp>">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">tx</span><span class="special">/</span><span class="identifier">pointer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
-</h4></div></div></div>
-<div class="toc"><dl>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_pointer_hpp.template_class__tx__pointer___">Template
- Class <code class="computeroutput"><span class="identifier">tx</span><span class="special">::</span><span class="identifier">pointer</span><span class="special"><></span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_pointer_hpp.template_class__tx__pointer_to_member___">Template
- Class <code class="computeroutput"><span class="identifier">tx</span><span class="special">::</span><span class="identifier">pointer_to_member</span><span class="special"><></span></code></a></span></dt>
-</dl></div>
-<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">stm</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tx</span> <span class="special">{</span>
-
- <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">pointer</span><span class="special">;</span>
- <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">C</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">pointer_to_member</span><span class="special">;</span>
-
-<span class="special">}}}</span>
-</pre>
-<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.tx_pointer_hpp.template_class__tx__pointer___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_pointer_hpp.template_class__tx__pointer___" title="Template
- Class tx::pointer<>">Template
- Class <code class="computeroutput"><span class="identifier">tx</span><span class="special">::</span><span class="identifier">pointer</span><span class="special"><></span></code></a>
+<a name="toward_boost_stm.reference.transactional_objects.warppers.smart_pointers"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.smart_pointers" title="Smart
+ pointers">Smart
+ pointers</a>
</h5></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
-<span class="keyword">class</span> <span class="identifier">pointer</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">transaction_object</span><span class="special"><</span> <span class="identifier">pointer</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span>
-<span class="special">{</span>
-<span class="keyword">protected</span><span class="special">:</span>
- <span class="identifier">T</span><span class="special">*</span> <span class="identifier">val_</span><span class="special">;</span>
-<span class="keyword">public</span><span class="special">:</span>
- <span class="identifier">pointer</span><span class="special">();</span>
- <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span> <span class="identifier">pointer</span><span class="special">(</span><span class="identifier">pointer</span><span class="special"><</span><span class="identifier">U</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">r</span><span class="special">);</span>
-
- <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">U</span><span class="special">></span> <span class="identifier">pointer</span><span class="special">(</span><span class="identifier">U</span><span class="special">*</span> <span class="identifier">v</span><span class="special">);</span>
- <span class="identifier">pointer</span><span class="special">(</span><span class="identifier">T</span><span class="special">*</span> <span class="identifier">v</span><span class="special">);</span>
- <span class="special">~</span><span class="identifier">pointer</span><span class="special">()</span> <span class="special">{}</span>
-
- <span class="keyword">operator</span> <span class="identifier">T</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span>
- <span class="keyword">operator</span> <span class="identifier">T</span><span class="special">*&();</span>
-
- <span class="identifier">T</span><span class="special">*&</span> <span class="identifier">get</span><span class="special">();</span>
- <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">*</span> <span class="identifier">get</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
-
- <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">*</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span>
- <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span>
-
- <span class="identifier">T</span> <span class="special">*</span> <span class="keyword">operator</span><span class="special">->();</span>
- <span class="identifier">T</span> <span class="special">&</span> <span class="keyword">operator</span><span class="special">*();</span>
-<span class="special">};</span>
-</pre>
-</div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.tx_pointer_hpp.template_class__tx__pointer_to_member___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_pointer_hpp.template_class__tx__pointer_to_member___" title="Template
- Class tx::pointer_to_member<>">Template
- Class <code class="computeroutput"><span class="identifier">tx</span><span class="special">::</span><span class="identifier">pointer_to_member</span><span class="special"><></span></code></a>
-</h5></div></div></div></div>
-</div>
+<div class="toc"><dl><dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.smart_pointers.tx_smart_ptr_hpp">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">tx</span><span class="special">/</span><span class="identifier">smart_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt></dl></div>
<div class="section" lang="en">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp" title="
- Header <boost/stm/tx/smart_ptr.hpp>">
- Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">tx</span><span class="special">/</span><span class="identifier">smart_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
-</h4></div></div></div>
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.warppers.smart_pointers.tx_smart_ptr_hpp"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.smart_pointers.tx_smart_ptr_hpp" title="
+ Header <boost/stm/tx/smart_ptr.hpp>">
+ Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stm</span><span class="special">/</span><span class="identifier">tx</span><span class="special">/</span><span class="identifier">smart_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h6></div></div></div>
<div class="toc"><dl>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp.template_class__tx_obj___">Template
- Class <code class="computeroutput"><span class="identifier">tx_obj</span><span class="special"><></span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp.template_class__tx_ptr___">Template
- Class <code class="computeroutput"><span class="identifier">tx_ptr</span><span class="special"><></span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp.template_class__rd_ptr___">Template
- Class <code class="computeroutput"><span class="identifier">rd_ptr</span><span class="special"><></span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp.template_class__upgrd_ptr___">Template
- Class <code class="computeroutput"><span class="identifier">upgrd_ptr</span><span class="special"><></span></code></a></span></dt>
-<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp.template_class__wr_ptr___">Template
- Class <code class="computeroutput"><span class="identifier">wr_ptr</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.smart_pointers.tx_smart_ptr_hpp.template_class__tx_obj___">Template
+ Class <code class="computeroutput"><span class="identifier">tx_obj</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.smart_pointers.tx_smart_ptr_hpp.template_class__tx_ptr___">Template
+ Class <code class="computeroutput"><span class="identifier">tx_ptr</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.smart_pointers.tx_smart_ptr_hpp.template_class__rd_ptr___">Template
+ Class <code class="computeroutput"><span class="identifier">rd_ptr</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.smart_pointers.tx_smart_ptr_hpp.template_class__upgrd_ptr___">Template
+ Class <code class="computeroutput"><span class="identifier">upgrd_ptr</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.smart_pointers.tx_smart_ptr_hpp.template_class__wr_ptr___">Template
+ Class <code class="computeroutput"><span class="identifier">wr_ptr</span><span class="special"><></span></code></a></span></dt>
</dl></div>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">stm</span> <span class="special">{</span>
@@ -714,15 +743,15 @@
<span class="special">}}</span>
</pre>
<div class="section" lang="en">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp.template_class__tx_obj___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp.template_class__tx_obj___" title="Template
- Class tx_obj<>">Template
- Class <code class="computeroutput"><span class="identifier">tx_obj</span><span class="special"><></span></code></a>
-</h5></div></div></div>
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.warppers.smart_pointers.tx_smart_ptr_hpp.template_class__tx_obj___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.smart_pointers.tx_smart_ptr_hpp.template_class__tx_obj___" title="Template
+ Class tx_obj<>">Template
+ Class <code class="computeroutput"><span class="identifier">tx_obj</span><span class="special"><></span></code></a>
+</h6></div></div></div>
<p>
- tx_obj is a kind of smart pointer to a wrapped transactional_object T
- providing builting operators
- </p>
+ tx_obj is a kind of smart pointer to a wrapped transactional_object
+ T providing builting operators
+ </p>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">tx_obj</span> <span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
<span class="identifier">tx_obj</span><span class="special">();</span>
@@ -751,22 +780,23 @@
</pre>
</div>
<div class="section" lang="en">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp.template_class__tx_ptr___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp.template_class__tx_ptr___" title="Template
- Class tx_ptr<>">Template
- Class <code class="computeroutput"><span class="identifier">tx_ptr</span><span class="special"><></span></code></a>
-</h5></div></div></div>
-<p>
- a tx_ptr<T> is an smart pointer to a transactional_object<T>
- (which contains an instance of T). Reference fields in linked structures
- should always be tx_ptrs. The result of derreferencing it will be the
- pointer to the T instance When this pointer is derreference on a transaction
- the transactional_object<T> is set a written and the transaction
- specific storage will be used. Otherwise the shared storage is used.
- </p>
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.warppers.smart_pointers.tx_smart_ptr_hpp.template_class__tx_ptr___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.smart_pointers.tx_smart_ptr_hpp.template_class__tx_ptr___" title="Template
+ Class tx_ptr<>">Template
+ Class <code class="computeroutput"><span class="identifier">tx_ptr</span><span class="special"><></span></code></a>
+</h6></div></div></div>
+<p>
+ a tx_ptr<T> is an smart pointer to a transactional_object<T>
+ (which contains an instance of T). Reference fields in linked structures
+ should always be tx_ptrs. The result of derreferencing it will be
+ the pointer to the T instance When this pointer is derreference on
+ a transaction the transactional_object<T> is set a written
+ and the transaction specific storage will be used. Otherwise the
+ shared storage is used.
+ </p>
<p>
- Used to initialize a rd_ptr<T>, wr_ptr<T>, or upgrd_ptr<T>.
- </p>
+ Used to initialize a rd_ptr<T>, wr_ptr<T>, or upgrd_ptr<T>.
+ </p>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
<span class="keyword">class</span> <span class="identifier">tx_ptr</span> <span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
@@ -797,28 +827,28 @@
</pre>
</div>
<div class="section" lang="en">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp.template_class__rd_ptr___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp.template_class__rd_ptr___" title="Template
- Class rd_ptr<>">Template
- Class <code class="computeroutput"><span class="identifier">rd_ptr</span><span class="special"><></span></code></a>
-</h5></div></div></div>
-<p>
- A rd_ptr<T> ("read pointer") points to an object that
- the current transaction has opened for read only access. You can only
- call a const method through a read pointer.
- </p>
-<p>
- A rd_ptr<T> is constructed from an tx_ptr<T> through an explicit
- constructor. Once a rd_ptr<T> has been constructed, an tx_ptr<T>
- can be opened for reading simply by assignment (operator=()) into the
- constructed rd_ptr<T>.
- </p>
-<p>
- It is not safe to derreference a rd_ptr<T> after having assigned
- the same tx_ptr<T> to a wr_ptr<T>. If this is the case the
- readen value do not match the writen one. If it is possible to write
- on the same transaction use upgrd_ptr instead which is safe.
- </p>
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.warppers.smart_pointers.tx_smart_ptr_hpp.template_class__rd_ptr___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.smart_pointers.tx_smart_ptr_hpp.template_class__rd_ptr___" title="Template
+ Class rd_ptr<>">Template
+ Class <code class="computeroutput"><span class="identifier">rd_ptr</span><span class="special"><></span></code></a>
+</h6></div></div></div>
+<p>
+ A rd_ptr<T> ("read pointer") points to an object
+ that the current transaction has opened for read only access. You
+ can only call a const method through a read pointer.
+ </p>
+<p>
+ A rd_ptr<T> is constructed from an tx_ptr<T> through
+ an explicit constructor. Once a rd_ptr<T> has been constructed,
+ an tx_ptr<T> can be opened for reading simply by assignment
+ (operator=()) into the constructed rd_ptr<T>.
+ </p>
+<p>
+ It is not safe to derreference a rd_ptr<T> after having assigned
+ the same tx_ptr<T> to a wr_ptr<T>. If this is the case
+ the readen value do not match the writen one. If it is possible to
+ write on the same transaction use upgrd_ptr instead which is safe.
+ </p>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
<span class="keyword">class</span> <span class="identifier">rd_ptr</span> <span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
@@ -840,32 +870,33 @@
</pre>
</div>
<div class="section" lang="en">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp.template_class__upgrd_ptr___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp.template_class__upgrd_ptr___" title="Template
- Class upgrd_ptr<>">Template
- Class <code class="computeroutput"><span class="identifier">upgrd_ptr</span><span class="special"><></span></code></a>
-</h5></div></div></div>
-<p>
- A upgrd_ptr<T> ("upgradable pointer") points to an object
- that the current transaction has opened for read only access.
- </p>
-<p>
- You can only call const method of the wrapped type through a upgradable
- pointer.
- </p>
-<p>
- A upgrd_ptr<T> is constructed from an tx_ptr<T> through a
- constructor having also the transaction as parameter. Once a rd_ptr<T>
- has been constructed, an tx_ptr<T> can be opened for reading simply
- by assignment (operator=()) into the constructed rd_ptr<T>.
- </p>
-<p>
- It is safe to derreference a rd_ptr<T> after having assigned the
- same tx_ptr<T> to a wr_ptr<T>.
- </p>
-<p>
- A upgrd_ptr<T> can be upgraded to a wr_ptr<T> through a constructor.
- </p>
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.warppers.smart_pointers.tx_smart_ptr_hpp.template_class__upgrd_ptr___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.smart_pointers.tx_smart_ptr_hpp.template_class__upgrd_ptr___" title="Template
+ Class upgrd_ptr<>">Template
+ Class <code class="computeroutput"><span class="identifier">upgrd_ptr</span><span class="special"><></span></code></a>
+</h6></div></div></div>
+<p>
+ A upgrd_ptr<T> ("upgradable pointer") points to an
+ object that the current transaction has opened for read only access.
+ </p>
+<p>
+ You can only call const method of the wrapped type through a upgradable
+ pointer.
+ </p>
+<p>
+ A upgrd_ptr<T> is constructed from an tx_ptr<T> through
+ a constructor having also the transaction as parameter. Once a rd_ptr<T>
+ has been constructed, an tx_ptr<T> can be opened for reading
+ simply by assignment (operator=()) into the constructed rd_ptr<T>.
+ </p>
+<p>
+ It is safe to derreference a rd_ptr<T> after having assigned
+ the same tx_ptr<T> to a wr_ptr<T>.
+ </p>
+<p>
+ A upgrd_ptr<T> can be upgraded to a wr_ptr<T> through
+ a constructor.
+ </p>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
<span class="keyword">class</span> <span class="identifier">upgrd_ptr</span> <span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
@@ -888,22 +919,22 @@
</pre>
</div>
<div class="section" lang="en">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp.template_class__wr_ptr___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.tx_smart_ptr_hpp.template_class__wr_ptr___" title="Template
- Class wr_ptr<>">Template
- Class <code class="computeroutput"><span class="identifier">wr_ptr</span><span class="special"><></span></code></a>
-</h5></div></div></div>
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_stm.reference.transactional_objects.warppers.smart_pointers.tx_smart_ptr_hpp.template_class__wr_ptr___"></a><a href="transactional_objects.html#toward_boost_stm.reference.transactional_objects.warppers.smart_pointers.tx_smart_ptr_hpp.template_class__wr_ptr___" title="Template
+ Class wr_ptr<>">Template
+ Class <code class="computeroutput"><span class="identifier">wr_ptr</span><span class="special"><></span></code></a>
+</h6></div></div></div>
+<p>
+ A wr_ptr<T> ("write pointer") points to a shared
+ object that the current transaction has opened for writing.
+ </p>
<p>
- A wr_ptr<T> ("write pointer") points to a shared object
- that the current transaction has opened for writing.
- </p>
-<p>
- A wr_ptr<T> is initialized explicitly from an tx_ptr<T>.
- </p>
-<p>
- A wr_ptr<T> can also be explicitly constructed from a upgrd_ptr<T>
- as an upgrade-to-writable operation.
- </p>
+ A wr_ptr<T> is initialized explicitly from an tx_ptr<T>.
+ </p>
+<p>
+ A wr_ptr<T> can also be explicitly constructed from a upgrd_ptr<T>
+ as an upgrade-to-writable operation.
+ </p>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
<span class="keyword">class</span> <span class="identifier">wr_ptr</span> <span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
@@ -922,6 +953,8 @@
</div>
</div>
</div>
+</div>
+</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2009 Justin E. Gottchlich<br>Copyright © 2009 Vicente J. Botet Escriba<p>
@@ -932,7 +965,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="contention_managers.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="non_transactional_objects.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="core.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="non_transactional_objects.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
</body>
</html>
Modified: sandbox/stm/branches/vbe/libs/stm/doc/reference.qbk
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/doc/reference.qbk (original)
+++ sandbox/stm/branches/vbe/libs/stm/doc/reference.qbk 2009-11-11 11:01:26 EST (Wed, 11 Nov 2009)
@@ -12,7 +12,7 @@
[include reference/stm.qbk]
-[section Basics]
+[section Core]
[/include reference/rt_configuration.qbk]
[include reference/base_transaction_object.qbk]
@@ -20,35 +20,70 @@
[include reference/data_types.qbk]
[include reference/exceptions.qbk]
[include reference/language_like.qbk]
-[include reference/contention_manager.qbk]
[include reference/transaction.qbk]
[include reference/transaction_bookkeeping.qbk]
[endsect]
-[section Contention managers]
-[include reference/base_contention_manager.qbk]
-[/include reference/contention_managers/default.qbk]
-[/include reference/contention_managers/NoExceptionOnAbortNoticeOnReadWrites.qbk]
-[/include reference/contention_managers/ExceptAndBackOffOnAbortNotice.qbk]
-[endsect]
+There are two kind of transactional objets:
-[section Transactional objects]
-[include reference/shallow_transaction_object.qbk]
+* Mixins
+* Wrappers
+
+[section Mixins Transactional Objects]
+
+Mixing transactional objects can be deep or shallow copied.
+
+Both schemas can be used by the same smart pointers.
+
+[section Deep Copy]
[include reference/transaction_object.qbk]
[include reference/transaction_object_ptr.qbk]
-[include reference/transactional_object.qbk]
-[include reference/smart_pointers.qbk]
[include reference/tx/numeric.qbk]
[include reference/tx/pointer.qbk]
+[endsect]
+
+[section Shallow Copy]
+[include reference/shallow_transaction_object.qbk]
+[endsect]
+
+[section Smart pointers]
+[include reference/smart_pointers.qbk]
+[endsect]
+
+[endsect]
+
+[section Warppers Transactional Objects]
+
+[include reference/transactional_object.qbk]
+[section Smart pointers]
[include reference/tx/smart_ptr.qbk]
[endsect]
+[endsect]
-[section Non transactional objects]
+[section Non Transactional Objects]
[include reference/non_tx/numeric.qbk]
[include reference/non_tx/pointer.qbk]
+[section Smart pointers]
[include reference/non_tx/smart_ptr.qbk]
[endsect]
+[endsect]
+
+[section Contention Managers]
+[include reference/contention_managers/concept.qbk]
+__TBoost_STM__ allows the user to choose between static and dynamic polimorphic contention manager.
+
+[include reference/contention_manager.qbk]
+
+[section Static Contention Managers]
+[endsect]
+[section Dynamic Contention Managers]
+[include reference/base_contention_manager.qbk]
+[include reference/contention_managers/default.qbk]
+[/include reference/contention_managers/NoExceptionOnAbortNoticeOnReadWrites.qbk]
+[/include reference/contention_managers/ExceptAndBackOffOnAbortNotice.qbk]
+[endsect]
+[endsect]
[endsect]
Modified: sandbox/stm/branches/vbe/libs/stm/doc/reference/contention_manager.qbk
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/doc/reference/contention_manager.qbk (original)
+++ sandbox/stm/branches/vbe/libs/stm/doc/reference/contention_manager.qbk 2009-11-11 11:01:26 EST (Wed, 11 Nov 2009)
@@ -13,11 +13,13 @@
This file defines the contention manager depending on the compile directives:
-* BOOST_STM_CM_STATIC_CONF when you want a staticacly configured CM
- * BOOST_STM_CM_STATIC_CONF_except_and_back_off_on_abort_notice_cm when configuration manager is except_and_back_off_on_abort_notice_cm
-
-* BOOST_STM_CM_DYNAMIC_CONF when you want a polymorphic CM configured at run time
+Define BOOST_STM_CM_STATIC_CONF when you want a staticacly configured CM.
+For example
+ #define BOOST_STM_CM_STATIC_CONF \
+ <boost/stm/contention_managers/except_and_back_off_on_abort_notice_cm.hpp>
+
+When not defined the type of the contention manager will be dynmic_polymorphic.
typedef 'compilation_dependent_type' contention_manager_type;
Added: sandbox/stm/branches/vbe/libs/stm/doc/reference/contention_managers/concept.qbk
==============================================================================
--- (empty file)
+++ sandbox/stm/branches/vbe/libs/stm/doc/reference/contention_managers/concept.qbk 2009-11-11 11:01:26 EST (Wed, 11 Nov 2009)
@@ -0,0 +1,16 @@
+[/
+ (C) Copyright 2009 Justin E. Gottchlich.
+ (C) Copyright 2009 Vicente J. Botet Escriba
+ /
+ / Distributed under the Boost Software License, Version 1.0. (See accompanying
+ / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ /]
+
+
+[/==========================================================================================]
+[section Concept `ContentionManager`]
+[/==========================================================================================]
+
+
+[endsect]
+
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk