<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>MPQC: sc::MemoryGrpBuf< data_t > Class Template Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.9 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</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> </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="navpath"><b>sc</b>::<a class="el" href="classsc_1_1MemoryGrpBuf.html">MemoryGrpBuf</a> </div> </div> <div class="contents"> <h1>sc::MemoryGrpBuf< data_t > Class Template Reference</h1><!-- doxytag: class="sc::MemoryGrpBuf" -->The <a class="el" href="classsc_1_1MemoryGrpBuf.html" title="The MemoryGrpBuf class provides access to pieces of the global shared memory that...">MemoryGrpBuf</a> class provides access to pieces of the global shared memory that have been obtained with <a class="el" href="classsc_1_1MemoryGrp.html" title="The MemoryGrp abstract class provides a way of accessing distributed memory in a...">MemoryGrp</a>. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="memory_8h_source.html">memory.h</a>></code> <p> <p> <a href="classsc_1_1MemoryGrpBuf-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 Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MemoryGrpBuf.html#abdd09a39ba4f22a0ca295fb3d4c4b5d">MemoryGrpBuf</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>< <a class="el" href="classsc_1_1MemoryGrp.html">MemoryGrp</a> > &)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a new <a class="el" href="classsc_1_1MemoryGrpBuf.html" title="The MemoryGrpBuf class provides access to pieces of the global shared memory that...">MemoryGrpBuf</a> given a <a class="el" href="classsc_1_1MemoryGrp.html" title="The MemoryGrp abstract class provides a way of accessing distributed memory in a...">MemoryGrp</a> reference. <a href="#abdd09a39ba4f22a0ca295fb3d4c4b5d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">data_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MemoryGrpBuf.html#ce536f26e642f09eac0e31a8b81b10a5">writeonly</a> (distsize_t offset, int length)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Request write only access to global memory at the global address offset and with size length. <a href="#ce536f26e642f09eac0e31a8b81b10a5"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">data_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MemoryGrpBuf.html#7f070fd74eeacf3f9f77ed929994cf7f">readwrite</a> (distsize_t offset, int length)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Request read write access to global memory at the global address offset and with size length. <a href="#7f070fd74eeacf3f9f77ed929994cf7f"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const data_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MemoryGrpBuf.html#aba979ed25ec96c2771beea923f345d7">readonly</a> (distsize_t offset, int length)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Request read only access to global memory at the global address offset and with size length. <a href="#aba979ed25ec96c2771beea923f345d7"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">data_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MemoryGrpBuf.html#c7045040edf4d6ec71aefeb8f01994a8">writeonly_on_node</a> (size_t offset, int length, int node=-1)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">These behave like writeonly, readwrite, and readonly, except the offset is local to the node specified by node. <a href="#c7045040edf4d6ec71aefeb8f01994a8"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1982fd4a006467106ac2ca806ae5d3c6"></a><!-- doxytag: member="sc::MemoryGrpBuf::readwrite_on_node" ref="1982fd4a006467106ac2ca806ae5d3c6" args="(size_t offset, int length, int node=-1)" --> data_t * </td><td class="memItemRight" valign="bottom"><b>readwrite_on_node</b> (size_t offset, int length, int node=-1)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7b59bdcda1bb550b3c1b5dedbe4888a8"></a><!-- doxytag: member="sc::MemoryGrpBuf::readonly_on_node" ref="7b59bdcda1bb550b3c1b5dedbe4888a8" args="(size_t offset, int length, int node=-1)" --> const data_t * </td><td class="memItemRight" valign="bottom"><b>readonly_on_node</b> (size_t offset, int length, int node=-1)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MemoryGrpBuf.html#a7389d8fc9ec334db770be2b254a2300">release</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Release the access to the chunk of global memory that was obtained with writeonly, readwrite, readonly, writeonly_on_node, readwrite_on_node, and readonly_on_node. <a href="#a7389d8fc9ec334db770be2b254a2300"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="03d557a160399d3d73009a6c92f3d8c5"></a><!-- doxytag: member="sc::MemoryGrpBuf::length" ref="03d557a160399d3d73009a6c92f3d8c5" args="() const " --> int </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MemoryGrpBuf.html#03d557a160399d3d73009a6c92f3d8c5">length</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The length of the current bit of memory. <br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> <h3>template<class data_t><br> class sc::MemoryGrpBuf< data_t ></h3> The <a class="el" href="classsc_1_1MemoryGrpBuf.html" title="The MemoryGrpBuf class provides access to pieces of the global shared memory that...">MemoryGrpBuf</a> class provides access to pieces of the global shared memory that have been obtained with <a class="el" href="classsc_1_1MemoryGrp.html" title="The MemoryGrp abstract class provides a way of accessing distributed memory in a...">MemoryGrp</a>. <p> <a class="el" href="classsc_1_1MemoryGrpBuf.html" title="The MemoryGrpBuf class provides access to pieces of the global shared memory that...">MemoryGrpBuf</a> is a template class that is parameterized on data_t. All lengths and offsets of given in terms of sizeof(data_t). <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="abdd09a39ba4f22a0ca295fb3d4c4b5d"></a><!-- doxytag: member="sc::MemoryGrpBuf::MemoryGrpBuf" ref="abdd09a39ba4f22a0ca295fb3d4c4b5d" args="(const Ref< MemoryGrp > &)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class data_t > </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classsc_1_1MemoryGrpBuf.html">sc::MemoryGrpBuf</a>< data_t >::<a class="el" href="classsc_1_1MemoryGrpBuf.html">MemoryGrpBuf</a> </td> <td>(</td> <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>< <a class="el" href="classsc_1_1MemoryGrp.html">MemoryGrp</a> > & </td> <td class="paramname"> <em>grp</em> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Creates a new <a class="el" href="classsc_1_1MemoryGrpBuf.html" title="The MemoryGrpBuf class provides access to pieces of the global shared memory that...">MemoryGrpBuf</a> given a <a class="el" href="classsc_1_1MemoryGrp.html" title="The MemoryGrp abstract class provides a way of accessing distributed memory in a...">MemoryGrp</a> reference. <p> This is a template class parameterized on data_t. </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="aba979ed25ec96c2771beea923f345d7"></a><!-- doxytag: member="sc::MemoryGrpBuf::readonly" ref="aba979ed25ec96c2771beea923f345d7" args="(distsize_t offset, int length)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class data_t > </div> <table class="memname"> <tr> <td class="memname">const data_t * <a class="el" href="classsc_1_1MemoryGrpBuf.html">sc::MemoryGrpBuf</a>< data_t >::readonly </td> <td>(</td> <td class="paramtype">distsize_t </td> <td class="paramname"> <em>offset</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>length</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Request read only access to global memory at the global address offset and with size length. <p> Writing to the specified region without an intervening sync of the <a class="el" href="classsc_1_1MemoryGrp.html" title="The MemoryGrp abstract class provides a way of accessing distributed memory in a...">MemoryGrp</a> will have undefined results. <p>References <a class="el" href="memory_8h_source.html#l00369">sc::MemoryGrpBuf< data_t >::release()</a>.</p> </div> </div><p> <a class="anchor" name="7f070fd74eeacf3f9f77ed929994cf7f"></a><!-- doxytag: member="sc::MemoryGrpBuf::readwrite" ref="7f070fd74eeacf3f9f77ed929994cf7f" args="(distsize_t offset, int length)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class data_t > </div> <table class="memname"> <tr> <td class="memname">data_t * <a class="el" href="classsc_1_1MemoryGrpBuf.html">sc::MemoryGrpBuf</a>< data_t >::readwrite </td> <td>(</td> <td class="paramtype">distsize_t </td> <td class="paramname"> <em>offset</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>length</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Request read write access to global memory at the global address offset and with size length. <p> This will lock the memory it uses until release is called unless locking has been turned off in the <a class="el" href="classsc_1_1MemoryGrp.html" title="The MemoryGrp abstract class provides a way of accessing distributed memory in a...">MemoryGrp</a> object. <p>References <a class="el" href="memory_8h_source.html#l00369">sc::MemoryGrpBuf< data_t >::release()</a>.</p> </div> </div><p> <a class="anchor" name="a7389d8fc9ec334db770be2b254a2300"></a><!-- doxytag: member="sc::MemoryGrpBuf::release" ref="a7389d8fc9ec334db770be2b254a2300" args="()" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class data_t > </div> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classsc_1_1MemoryGrpBuf.html">sc::MemoryGrpBuf</a>< data_t >::release </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Release the access to the chunk of global memory that was obtained with writeonly, readwrite, readonly, writeonly_on_node, readwrite_on_node, and readonly_on_node. <p> <p>Referenced by <a class="el" href="memory_8h_source.html#l00332">sc::MemoryGrpBuf< data_t >::readonly()</a>, <a class="el" href="memory_8h_source.html#l00319">sc::MemoryGrpBuf< data_t >::readwrite()</a>, and <a class="el" href="memory_8h_source.html#l00306">sc::MemoryGrpBuf< data_t >::writeonly()</a>.</p> </div> </div><p> <a class="anchor" name="ce536f26e642f09eac0e31a8b81b10a5"></a><!-- doxytag: member="sc::MemoryGrpBuf::writeonly" ref="ce536f26e642f09eac0e31a8b81b10a5" args="(distsize_t offset, int length)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class data_t > </div> <table class="memname"> <tr> <td class="memname">data_t * <a class="el" href="classsc_1_1MemoryGrpBuf.html">sc::MemoryGrpBuf</a>< data_t >::writeonly </td> <td>(</td> <td class="paramtype">distsize_t </td> <td class="paramname"> <em>offset</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>length</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Request write only access to global memory at the global address offset and with size length. <p> Writing the same bit of memory twice without an intervening sync of the <a class="el" href="classsc_1_1MemoryGrp.html" title="The MemoryGrp abstract class provides a way of accessing distributed memory in a...">MemoryGrp</a> will have undefined results. <p>References <a class="el" href="memory_8h_source.html#l00369">sc::MemoryGrpBuf< data_t >::release()</a>.</p> <p>Referenced by <a class="el" href="memory_8h_source.html#l00345">sc::MemoryGrpBuf< data_t >::writeonly_on_node()</a>.</p> </div> </div><p> <a class="anchor" name="c7045040edf4d6ec71aefeb8f01994a8"></a><!-- doxytag: member="sc::MemoryGrpBuf::writeonly_on_node" ref="c7045040edf4d6ec71aefeb8f01994a8" args="(size_t offset, int length, int node=-1)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class data_t > </div> <table class="memname"> <tr> <td class="memname">data_t * <a class="el" href="classsc_1_1MemoryGrpBuf.html">sc::MemoryGrpBuf</a>< data_t >::writeonly_on_node </td> <td>(</td> <td class="paramtype">size_t </td> <td class="paramname"> <em>offset</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>length</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>node</em> = <code>-1</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> These behave like writeonly, readwrite, and readonly, except the offset is local to the node specified by node. <p> If node = -1, then the local node is used. <p>References <a class="el" href="memory_8h_source.html#l00306">sc::MemoryGrpBuf< data_t >::writeonly()</a>.</p> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="memory_8h_source.html">memory.h</a></ul> </div> <hr> <address> <small> Generated at Wed Oct 14 14:12:16 2009 for <a href="http://www.mpqc.org">MPQC</a> 2.3.1 using the documentation package <a href="http://www.doxygen.org">Doxygen</a> 1.5.9. </small> </address> </body> </html>