<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>ShareLibrary: Share::ShareManager Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.2 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class List</span></a></li>
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class Members</span></a></li>
</ul>
</div>
<div class="nav">
<a class="el" href="namespaceShare.html">Share</a>::<a class="el" href="classShare_1_1ShareManager.html">ShareManager</a></div>
<h1>Share::ShareManager Class Reference<br>
<small>
[<a class="el" href="group__core.html">Core library classes</a>]</small>
</h1><!-- doxytag: class="Share::ShareManager" --><b>Gateway</b> to shared segment
<a href="#_details">More...</a>
<p>
<code>#include <<a class="el" href="sharelib_8h-source.html">sharelib.h</a>></code>
<p>
Collaboration diagram for Share::ShareManager:<p><center><img src="classShare_1_1ShareManager__coll__graph.png" border="0" usemap="#Share_1_1ShareManager__coll__map" alt="Collaboration graph"></center>
<map name="Share_1_1ShareManager__coll__map">
<area shape="rect" href="classShare_1_1SegmentHeader.html" title="Object placed at begin of each shared segment." alt="" coords="223,264,404,291"><area shape="rect" href="classShare_1_1DefaultRefCounter.html" title="Reference counter for shared segment." alt="" coords="5,174,203,200"><area shape="rect" href="classShare_1_1DefaultAllocator.html" title="Allocator for blocks inside shared segment." alt="" coords="367,174,548,200"><area shape="rect" href="classShare_1_1RelocPtr.html" title="Relocable pointer type." alt="" coords="229,83,397,110"><area shape="rect" href="classShare_1_1SharedObject.html" title="Shareable object base class." alt="" coords="231,6,396,32"><area shape="rect" href="classShare_1_1Mutex.html" title="Platform-independent mutex representation." alt="" coords="572,174,687,200"><area shape="rect" href="classShare_1_1SharedSegment.html" title="Platform independent shared segment representation." alt="" coords="428,264,609,291"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classShare_1_1ShareManager-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="classShare_1_1Relocator.html#9ba6ccb87680e0d568d2999191523799">Relocator::relative_pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classShare_1_1ShareManager.html#8b0266089b4aade79d609281b12e11a9">relative_pointer</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Relative pointer type. <a href="#8b0266089b4aade79d609281b12e11a9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="classShare_1_1Relocator.html#2545bed5557043fa37bb13458bb566fd">Relocator::relative_const_pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classShare_1_1ShareManager.html#4f7d6c90b91abb9b8671897556189151">relative_const_pointer</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Relative const pointer type. <a href="#4f7d6c90b91abb9b8671897556189151"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classShare_1_1ShareManager.html#50cbcb66cef0716537637a358c76b58f">createSegment</a> (const char *name, size_t size) throw (ShareException)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight"><b>Create</b> <b>and</b> <b>attach</b> segment <a href="#50cbcb66cef0716537637a358c76b58f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classShare_1_1ShareManager.html#41a8a750e27579c97c5da0ec2a27d4ce">attachSegment</a> (const char *name) throw (ShareException)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Attach an already existing shared segment. <a href="#41a8a750e27579c97c5da0ec2a27d4ce"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classShare_1_1ShareManager.html#26096a2a299b116672287b18b4a45492">detachSegment</a> () throw ()</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Detach from shared segment. <a href="#26096a2a299b116672287b18b4a45492"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classShare_1_1ShareManager.html#2b223d2d0eddc4a5f8b2f2cf05512aca">unlinkSegment</a> () throw ()</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Mark shared segment to be destroyed. <a href="#2b223d2d0eddc4a5f8b2f2cf05512aca"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classShare_1_1ShareManager.html#17eb0fa3e78452865e416b3f0906f438">name</a> ()</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Name of attached shared segment. <a href="#17eb0fa3e78452865e416b3f0906f438"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classShare_1_1ShareManager.html#8b0266089b4aade79d609281b12e11a9">relative_pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classShare_1_1ShareManager.html#0d6637ca6064bc7f9c6fb8aaa84db33f">absToRel</a> (void *abs)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classShare_1_1ShareManager.html#4f7d6c90b91abb9b8671897556189151">relative_const_pointer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classShare_1_1ShareManager.html#26548899ff80401f2350f6925150c560">absToRel</a> (const void *abs)</td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template<class T> </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top"><a class="el" href="classShare_1_1ShareManager.html#8b0266089b4aade79d609281b12e11a9">relative_pointer</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classShare_1_1ShareManager.html#4f8238efa8b89e3bc8fef8f2c6eb85b3">absToRel</a> (T *abs)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classShare_1_1ShareManager.html#8b7e541345245e103e226eea0a92a8a3">relToAbs</a> (<a class="el" href="classShare_1_1ShareManager.html#8b0266089b4aade79d609281b12e11a9">relative_pointer</a> rel)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classShare_1_1ShareManager.html#da0976ebcacf446e71973f1b3d491f94">alloc</a> (size_t size) throw (ShareException)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classShare_1_1ShareManager.html#e4f9cc62ca2b9ae7dda303923e4fb93a">alloc</a> (size_t size, size_t count) throw (ShareException)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classShare_1_1ShareManager.html#c6701e530bd30472217d6d1b7581f5fa">free</a> (void *addr) throw ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classShare_1_1ShareManager.html#0150f4da112f1d673dc417744f7ed06b">free</a> (void *addr, size_t) throw ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classShare_1_1ShareManager.html#6a48b6c5cacc8ac461ad7ad1d2f77a6e">available</a> ()</td></tr>
<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classShare_1_1ShareManager.html">ShareManager</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classShare_1_1ShareManager.html#9a3f4b7db3b1e9150b3288e7ff5d996a">instance</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classShare_1_1ShareManager.html#ee712ba09581e66196c457e7511d5627">destroySelf</a> ()</td></tr>
<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__sharectl.html#gd3ef2512b0836d9e479bc6a2b78fccaa">initDebugMode</a> (<a class="el" href="classShare_1_1SharedSegment.html">SharedSegment</a> *segment)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize <a class="el" href="classShare_1_1ShareManager.html" title="Gateway to shared segment">ShareManager</a> for debuging. <a href="group__sharectl.html#gd3ef2512b0836d9e479bc6a2b78fccaa"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__sharectl.html#g89b04983af322afc2c8fb1dafdcd3015">destroySegment</a> ()</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Destroy current shared segment immediately. <a href="group__sharectl.html#g89b04983af322afc2c8fb1dafdcd3015"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classShare_1_1ShareManager.html#c5b65777a7325ee7b6dd639a05ad0014">SharedSegmentWrapper</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bridge from sharectl to sharelib. <a href="#c5b65777a7325ee7b6dd639a05ad0014"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<b>Gateway</b> to shared segment
<p>
High-level interface to shared segment manipulation. Design pattern <b>signleton</b>
<p>
<p>
Definition at line <a class="el" href="sharelib_8h-source.html#l00184">184</a> of file <a class="el" href="sharelib_8h-source.html">sharelib.h</a>.<hr><h2>Member Typedef Documentation</h2>
<a class="anchor" name="8b0266089b4aade79d609281b12e11a9"></a><!-- doxytag: member="Share::ShareManager::relative_pointer" ref="8b0266089b4aade79d609281b12e11a9" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="classShare_1_1Relocator.html#9ba6ccb87680e0d568d2999191523799">Relocator::relative_pointer</a> <a class="el" href="classShare_1_1ShareManager.html#8b0266089b4aade79d609281b12e11a9">Share::ShareManager::relative_pointer</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Relative pointer type.
<p>
<p>
Definition at line <a class="el" href="sharelib_8h-source.html#l00186">186</a> of file <a class="el" href="sharelib_8h-source.html">sharelib.h</a>.
</div>
</div><p>
<a class="anchor" name="4f7d6c90b91abb9b8671897556189151"></a><!-- doxytag: member="Share::ShareManager::relative_const_pointer" ref="4f7d6c90b91abb9b8671897556189151" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="classShare_1_1Relocator.html#2545bed5557043fa37bb13458bb566fd">Relocator::relative_const_pointer</a> <a class="el" href="classShare_1_1ShareManager.html#4f7d6c90b91abb9b8671897556189151">Share::ShareManager::relative_const_pointer</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Relative const pointer type.
<p>
<p>
Definition at line <a class="el" href="sharelib_8h-source.html#l00187">187</a> of file <a class="el" href="sharelib_8h-source.html">sharelib.h</a>.
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="9a3f4b7db3b1e9150b3288e7ff5d996a"></a><!-- doxytag: member="Share::ShareManager::instance" ref="9a3f4b7db3b1e9150b3288e7ff5d996a" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classShare_1_1ShareManager.html">ShareManager</a>* Share::ShareManager::instance </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Method to access to singleton object. <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return pointer to singleton object. </dd></dl>
<p>
Referenced by <a class="el" href="sharelib_8h-source.html#l00388">Share::SharedObject::alloc()</a>, <a class="el" href="sharelib_8h-source.html#l00678">Share::Allocator< T >::allocate()</a>, <a class="el" href="sharelib_8h-source.html#l00688">Share::Allocator< T >::deallocate()</a>, <a class="el" href="sharelib_8h-source.html#l00407">Share::SharedObject::free()</a>, <a class="el" href="sharelib_8h-source.html#l00700">Share::Allocator< T >::max_size()</a>, <a class="el" href="sharelib_8h-source.html#l00497">Share::RelocPtr< T >::operator->()</a>, and <a class="el" href="sharelib_8h-source.html#l00488">Share::RelocPtr< T >::operator=()</a>.
<p>
Here is the caller graph for this function:<p><center><img src="classShare_1_1ShareManager_9a3f4b7db3b1e9150b3288e7ff5d996a_icgraph.png" border="0" usemap="#classShare_1_1ShareManager_9a3f4b7db3b1e9150b3288e7ff5d996a_icgraph_map" alt=""></center>
<map name="classShare_1_1ShareManager_9a3f4b7db3b1e9150b3288e7ff5d996a_icgraph_map">
<area shape="rect" href="classShare_1_1SharedObject.html#9cbd4718acbcf4acfb0200da53dd901b" title="Share::SharedObject::alloc" alt="" coords="297,56,505,83"><area shape="rect" href="classShare_1_1Allocator.html#c84a1c3f189f587e4f5a9eedb83161a5" title="Share::Allocator::allocate" alt="" coords="303,107,500,133"><area shape="rect" href="classShare_1_1Allocator.html#0bcd2325b9af3f78e5d89b2564cd47fb" title="Share::Allocator::deallocate" alt="" coords="295,157,508,184"><area shape="rect" href="classShare_1_1SharedObject.html#e3d21ebb81a40f59799c320bbf61cae2" title="Share::SharedObject::free" alt="" coords="300,208,503,235"><area shape="rect" href="classShare_1_1Allocator.html#314a7ef788d6a58e18c4944fc8e72290" title="Share::Allocator::max_size" alt="" coords="297,259,505,285"><area shape="rect" href="classShare_1_1RelocPtr.html#42e482608930555f9a1d1b0a886c5ea3" title="Share::RelocPtr::operator-\>" alt="" coords="293,309,509,336"><area shape="rect" href="classShare_1_1RelocPtr.html#dcc79de8edd9caa0b9ddf0581455b67c" title="Share::RelocPtr::operator=" alt="" coords="297,360,505,387"><area shape="rect" href="classShare_1_1SharedObject.html#c701f606810daf91df59ca8c2d296aa9" title="Share::SharedObject::alloc" alt="" coords="600,5,808,32"><area shape="rect" href="classShare_1_1SharedObject.html#9904976649f43ebff33161352f1a2bb6" title="Share::SharedObject::operator new" alt="" coords="571,56,837,83"><area shape="rect" href="classShare_1_1SharedObject.html#a17cf35fdefcbf1f0e3839d7ee420cd4" title="Share::SharedObject::operator new[]" alt="" coords="564,107,844,133"><area shape="rect" href="classShare_1_1SharedObject.html#2d2cb37fccdfd8e577aa30de9cd93716" title="Share::SharedObject::operator delete" alt="" coords="564,183,844,209"><area shape="rect" href="classShare_1_1SharedObject.html#187eca9cef72c40f92d3191f203a342f" title="Share::SharedObject::operator delete[]" alt="" coords="557,233,851,260"><area shape="rect" href="classShare_1_1RelocPtr.html#6feb652c014b72f91f4f1d2f96ca0834" title="Implicit conversion to native pointer." alt="" coords="579,309,829,336"></map>
</div>
</div><p>
<a class="anchor" name="ee712ba09581e66196c457e7511d5627"></a><!-- doxytag: member="Share::ShareManager::destroySelf" ref="ee712ba09581e66196c457e7511d5627" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static void Share::ShareManager::destroySelf </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Destroy singleton object. This method should be called automatically on application exit using std::atexit() function.
</div>
</div><p>
<a class="anchor" name="50cbcb66cef0716537637a358c76b58f"></a><!-- doxytag: member="Share::ShareManager::createSegment" ref="50cbcb66cef0716537637a358c76b58f" args="(const char *name, size_t size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Share::ShareManager::createSegment </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t </td>
<td class="paramname"> <em>size</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"> throw (<a class="el" href="classShare_1_1ShareException.html">ShareException</a>)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Create</b> <b>and</b> <b>attach</b> segment
<p>
Create and attach new segment. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>Name of new segment. Method throws <a class="el" href="classShare_1_1ShareException.html" title="General exception carrying text message inside.">ShareException</a> if name is already used. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>size</em> </td><td>How much memory will be allocated for data. Note that real size can be larger. </td></tr>
</table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classShare_1_1ShareException.html" title="General exception carrying text message inside.">ShareException</a></em> </td><td>Generic exception thrown if creation process fails. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="41a8a750e27579c97c5da0ec2a27d4ce"></a><!-- doxytag: member="Share::ShareManager::attachSegment" ref="41a8a750e27579c97c5da0ec2a27d4ce" args="(const char *name)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Share::ShareManager::attachSegment </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>name</em> </td>
<td> ) </td>
<td width="100%"> throw (<a class="el" href="classShare_1_1ShareException.html">ShareException</a>)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Attach an already existing shared segment.
<p>
Method throws <a class="el" href="classShare_1_1ShareException.html" title="General exception carrying text message inside.">ShareException</a> if segment does not exist. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>Name of shared segment to attach to. </td></tr>
</table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classShare_1_1ShareException.html" title="General exception carrying text message inside.">ShareException</a></em> </td><td>Generic exception thrown if attaching fails. </td></tr>
</table>
</dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Do not call this method after createSegment method call. </dd></dl>
</div>
</div><p>
<a class="anchor" name="26096a2a299b116672287b18b4a45492"></a><!-- doxytag: member="Share::ShareManager::detachSegment" ref="26096a2a299b116672287b18b4a45492" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Share::ShareManager::detachSegment </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"> throw ()</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Detach from shared segment.
<p>
All relative and absolute pointers to segment will be invalid after detach.
</div>
</div><p>
<a class="anchor" name="2b223d2d0eddc4a5f8b2f2cf05512aca"></a><!-- doxytag: member="Share::ShareManager::unlinkSegment" ref="2b223d2d0eddc4a5f8b2f2cf05512aca" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Share::ShareManager::unlinkSegment </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"> throw ()</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Mark shared segment to be destroyed.
<p>
Segment will be realy destroyed after references count fades to zero. This means that calling prcess has to detach shared segment after this call to destroy it. <dl class="attention" compact><dt><b>Attention:</b></dt><dd>On Win32 platform is segment destoroyed automatically by OS, when there are no more references to segment. </dd></dl>
</div>
</div><p>
<a class="anchor" name="17eb0fa3e78452865e416b3f0906f438"></a><!-- doxytag: member="Share::ShareManager::name" ref="17eb0fa3e78452865e416b3f0906f438" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* Share::ShareManager::name </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Name of attached shared segment.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return name of shared segment. </dd></dl>
</div>
</div><p>
<a class="anchor" name="0d6637ca6064bc7f9c6fb8aaa84db33f"></a><!-- doxytag: member="Share::ShareManager::absToRel" ref="0d6637ca6064bc7f9c6fb8aaa84db33f" args="(void *abs)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classShare_1_1ShareManager.html#8b0266089b4aade79d609281b12e11a9">relative_pointer</a> Share::ShareManager::absToRel </td>
<td>(</td>
<td class="paramtype">void * </td>
<td class="paramname"> <em>abs</em> </td>
<td> ) </td>
<td width="100%"><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Convert absolute address to relative. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>abs</em> </td><td>Absolute address to convert. </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return relative address. </dd></dl>
<p>
Definition at line <a class="el" href="sharelib_8h-source.html#l00245">245</a> of file <a class="el" href="sharelib_8h-source.html">sharelib.h</a>.
<p>
References <a class="el" href="sharelib_8h-source.html#l00092">Share::Relocator::absToRel()</a>.
<p>
Referenced by <a class="el" href="sharelib_8h-source.html#l00259">absToRel()</a>.
</div>
</div><p>
<a class="anchor" name="26548899ff80401f2350f6925150c560"></a><!-- doxytag: member="Share::ShareManager::absToRel" ref="26548899ff80401f2350f6925150c560" args="(const void *abs)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classShare_1_1ShareManager.html#4f7d6c90b91abb9b8671897556189151">relative_const_pointer</a> Share::ShareManager::absToRel </td>
<td>(</td>
<td class="paramtype">const void * </td>
<td class="paramname"> <em>abs</em> </td>
<td> ) </td>
<td width="100%"><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Convert absolute address to relative. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>abs</em> </td><td>Absolute address to convert. </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return relative address. </dd></dl>
<p>
Definition at line <a class="el" href="sharelib_8h-source.html#l00252">252</a> of file <a class="el" href="sharelib_8h-source.html">sharelib.h</a>.
<p>
References <a class="el" href="sharelib_8h-source.html#l00092">Share::Relocator::absToRel()</a>.
</div>
</div><p>
<a class="anchor" name="4f8238efa8b89e3bc8fef8f2c6eb85b3"></a><!-- doxytag: member="Share::ShareManager::absToRel" ref="4f8238efa8b89e3bc8fef8f2c6eb85b3" args="(T *abs)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<class T> </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classShare_1_1ShareManager.html#8b0266089b4aade79d609281b12e11a9">relative_pointer</a> Share::ShareManager::absToRel </td>
<td>(</td>
<td class="paramtype">T * </td>
<td class="paramname"> <em>abs</em> </td>
<td> ) </td>
<td width="100%"><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Convert absolute address to relative. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>abs</em> </td><td>Absolute address to convert. </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return relative address. </dd></dl>
<p>
Definition at line <a class="el" href="sharelib_8h-source.html#l00259">259</a> of file <a class="el" href="sharelib_8h-source.html">sharelib.h</a>.
<p>
References <a class="el" href="sharelib_8h-source.html#l00245">absToRel()</a>.
</div>
</div><p>
<a class="anchor" name="8b7e541345245e103e226eea0a92a8a3"></a><!-- doxytag: member="Share::ShareManager::relToAbs" ref="8b7e541345245e103e226eea0a92a8a3" args="(relative_pointer rel)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* Share::ShareManager::relToAbs </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classShare_1_1ShareManager.html#8b0266089b4aade79d609281b12e11a9">relative_pointer</a> </td>
<td class="paramname"> <em>rel</em> </td>
<td> ) </td>
<td width="100%"><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Convert relative address to absolute. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>rel</em> </td><td>Relative address to convert. </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return absolute address. </dd></dl>
<p>
Definition at line <a class="el" href="sharelib_8h-source.html#l00269">269</a> of file <a class="el" href="sharelib_8h-source.html">sharelib.h</a>.
<p>
References <a class="el" href="sharelib_8h-source.html#l00114">Share::Relocator::relToAbs()</a>.
</div>
</div><p>
<a class="anchor" name="da0976ebcacf446e71973f1b3d491f94"></a><!-- doxytag: member="Share::ShareManager::alloc" ref="da0976ebcacf446e71973f1b3d491f94" args="(size_t size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* Share::ShareManager::alloc </td>
<td>(</td>
<td class="paramtype">size_t </td>
<td class="paramname"> <em>size</em> </td>
<td> ) </td>
<td width="100%"> throw (<a class="el" href="classShare_1_1ShareException.html">ShareException</a>)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Allocate piece of memory from shared segment or local heap. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>size</em> </td><td>Requested size to allocate. </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return local pointer to allocated memory. </dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classShare_1_1ShareException.html" title="General exception carrying text message inside.">ShareException</a></em> </td><td>Library-specific exception derived from std::bad_alloc </td></tr>
</table>
</dl>
<p>
Referenced by <a class="el" href="sharelib_8h-source.html#l00286">alloc()</a>.
</div>
</div><p>
<a class="anchor" name="e4f9cc62ca2b9ae7dda303923e4fb93a"></a><!-- doxytag: member="Share::ShareManager::alloc" ref="e4f9cc62ca2b9ae7dda303923e4fb93a" args="(size_t size, size_t count)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* Share::ShareManager::alloc </td>
<td>(</td>
<td class="paramtype">size_t </td>
<td class="paramname"> <em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t </td>
<td class="paramname"> <em>count</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"> throw (<a class="el" href="classShare_1_1ShareException.html">ShareException</a>)<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Allocate piece of memory from shared segment or local heap. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>size</em> </td><td>Requested size to allocate. </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return local pointer to allocated memory. </dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classShare_1_1ShareException.html" title="General exception carrying text message inside.">ShareException</a></em> </td><td>Library-specific exception derived from std::bad_alloc </td></tr>
</table>
</dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>Objects count to allocate. </td></tr>
</table>
</dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Used for STL allocator. </dd></dl>
<p>
Definition at line <a class="el" href="sharelib_8h-source.html#l00286">286</a> of file <a class="el" href="sharelib_8h-source.html">sharelib.h</a>.
<p>
References <a class="el" href="classShare_1_1ShareManager.html#da0976ebcacf446e71973f1b3d491f94">alloc()</a>.
</div>
</div><p>
<a class="anchor" name="c6701e530bd30472217d6d1b7581f5fa"></a><!-- doxytag: member="Share::ShareManager::free" ref="c6701e530bd30472217d6d1b7581f5fa" args="(void *addr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Share::ShareManager::free </td>
<td>(</td>
<td class="paramtype">void * </td>
<td class="paramname"> <em>addr</em> </td>
<td> ) </td>
<td width="100%"> throw ()</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Free memory allocated by method <a class="el" href="classShare_1_1ShareManager.html#da0976ebcacf446e71973f1b3d491f94">alloc()</a>. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>addr</em> </td><td>Address returned by <a class="el" href="classShare_1_1ShareManager.html#da0976ebcacf446e71973f1b3d491f94">alloc()</a>. If this is different addres, all attached application will crash terribly. </td></tr>
</table>
</dl>
<p>
Referenced by <a class="el" href="sharelib_8h-source.html#l00301">free()</a>.
</div>
</div><p>
<a class="anchor" name="0150f4da112f1d673dc417744f7ed06b"></a><!-- doxytag: member="Share::ShareManager::free" ref="0150f4da112f1d673dc417744f7ed06b" args="(void *addr, size_t)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Share::ShareManager::free </td>
<td>(</td>
<td class="paramtype">void * </td>
<td class="paramname"> <em>addr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t </td>
<td class="paramname"></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"> throw ()<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Free memory allocated by method <a class="el" href="classShare_1_1ShareManager.html#da0976ebcacf446e71973f1b3d491f94">alloc()</a>. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>addr</em> </td><td>Address returned by <a class="el" href="classShare_1_1ShareManager.html#da0976ebcacf446e71973f1b3d491f94">alloc()</a>. If this is different addres, all attached application will crash terribly. </td></tr>
</table>
</dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Used for STL allocator. </dd></dl>
<p>
Definition at line <a class="el" href="sharelib_8h-source.html#l00301">301</a> of file <a class="el" href="sharelib_8h-source.html">sharelib.h</a>.
<p>
References <a class="el" href="classShare_1_1ShareManager.html#c6701e530bd30472217d6d1b7581f5fa">free()</a>.
</div>
</div><p>
<a class="anchor" name="6a48b6c5cacc8ac461ad7ad1d2f77a6e"></a><!-- doxytag: member="Share::ShareManager::available" ref="6a48b6c5cacc8ac461ad7ad1d2f77a6e" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t Share::ShareManager::available </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return size of avalilable memory in shared segment </dd></dl>
</div>
</div><p>
<hr><h2>Friends And Related Function Documentation</h2>
<a class="anchor" name="c5b65777a7325ee7b6dd639a05ad0014"></a><!-- doxytag: member="Share::ShareManager::SharedSegmentWrapper" ref="c5b65777a7325ee7b6dd639a05ad0014" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">friend class <a class="el" href="classShare_1_1SharedSegmentWrapper.html">SharedSegmentWrapper</a><code> [friend]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Bridge from sharectl to sharelib.
<p>
<p>
Definition at line <a class="el" href="sharelib_8h-source.html#l00327">327</a> of file <a class="el" href="sharelib_8h-source.html">sharelib.h</a>.
</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>sharelib/<a class="el" href="sharelib_8h-source.html">sharelib.h</a></ul>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun Aug 26 17:43:03 2007 for ShareLibrary by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
</body>
</html>