<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta name="robots" content="noindex"> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title> Templatesc::MemoryGrpBuf class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body bgcolor="#ffffff"> <!-- Generated by Doxygen 1.2.5 on Mon Oct 14 14:17:08 2002 --> <center> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="pages.html">Related Pages</a> </center> <hr><h1>sc::MemoryGrpBuf Class Template Reference</h1>The MemoryGrpBug class provides access to pieces of the global shared memory that have been obtained with <a class="el" href="class_sc__MemoryGrp.html">MemoryGrp</a>. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="memory_h-source.html">memory.h</a>></code> <p> Collaboration diagram for sc::MemoryGrpBuf:<p><center><img src="class_sc__MemoryGrpBuf_coll_graph.gif" border="0" usemap="#sc::MemoryGrpBuf_coll_map" alt="Collaboration graph"></center> <map name="sc::MemoryGrpBuf_coll_map"> <area href="class_sc__Ref.html" shape="rect" coords="121,83,259,102"> <area href="class_sc__RefBase.html" shape="rect" coords="151,14,229,32"> </map> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="class_sc__MemoryGrpBuf-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0> <tr><td colspan=2><br><h2>Public Methods</h2></td></tr> <tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="class_sc__MemoryGrpBuf.html#a0">MemoryGrpBuf</a> (const <a class="el" href="class_sc__Ref.html">Ref</a>< <a class="el" href="class_sc__MemoryGrp.html">MemoryGrp</a> > &)</td></tr> <tr><td> </td><td><font size=-1><em>Creates a new <a class="el" href="class_sc__MemoryGrpBuf.html">MemoryGrpBuf</a> given a <a class="el" href="class_sc__MemoryGrp.html">MemoryGrp</a> reference.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>data_t* </td><td valign=bottom><a class="el" href="class_sc__MemoryGrpBuf.html#a1">writeonly</a> (distsize_t offset, int length)</td></tr> <tr><td> </td><td><font size=-1><em>Request write only access to global memory at the global address offset and with size length.</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>data_t* </td><td valign=bottom><a class="el" href="class_sc__MemoryGrpBuf.html#a2">readwrite</a> (distsize_t offset, int length)</td></tr> <tr><td> </td><td><font size=-1><em>Request read write access to global memory at the global address offset and with size length.</em> <a href="#a2">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>const data_t* </td><td valign=bottom><a class="el" href="class_sc__MemoryGrpBuf.html#a3">readonly</a> (distsize_t offset, int length)</td></tr> <tr><td> </td><td><font size=-1><em>Request read only access to global memory at the global address offset and with size length.</em> <a href="#a3">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>data_t* </td><td valign=bottom><a class="el" href="class_sc__MemoryGrpBuf.html#a4">writeonly_on_node</a> (size_t offset, int length, int node=-1)</td></tr> <tr><td> </td><td><font size=-1><em>These behave like writeonly, readwrite, and readonly, except the offset is local to the node specified by node.</em> <a href="#a4">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a5" doxytag="sc::MemoryGrpBuf::readwrite_on_node"></a> data_t* </td><td valign=bottom><b>readwrite_on_node</b> (size_t offset, int length, int node=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a6" doxytag="sc::MemoryGrpBuf::readonly_on_node"></a> const data_t* </td><td valign=bottom><b>readonly_on_node</b> (size_t offset, int length, int node=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a7" doxytag="sc::MemoryGrpBuf::release"></a> void </td><td valign=bottom><a class="el" href="class_sc__MemoryGrpBuf.html#a7">release</a> ()</td></tr> <tr><td> </td><td><font size=-1><em>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.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a8" doxytag="sc::MemoryGrpBuf::length"></a> int </td><td valign=bottom><a class="el" href="class_sc__MemoryGrpBuf.html#a8">length</a> () const</td></tr> <tr><td> </td><td><font size=-1><em>The length of the current bit of memory.</em></font><br><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> <h3>template<class data_t> class sc::MemoryGrpBuf</h3> The MemoryGrpBug class provides access to pieces of the global shared memory that have been obtained with <a class="el" href="class_sc__MemoryGrp.html">MemoryGrp</a>. <p> MemoryGrpBug is a template class that is parameterized on data_t. All lengths and offsets of given in terms of sizeof(data_t). <p> <hr><h2>Constructor & Destructor Documentation</h2> <a name="a0" doxytag="sc::MemoryGrpBuf::MemoryGrpBuf"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td colspan="2"><b> template<class data_t> </b></td> </tr> <tr> <td nowrap valign="top"><b> sc::MemoryGrpBuf< data_t >::MemoryGrpBuf<data_t> ( </b></td> <td valign="bottom"><b> const <a class="el" href="class_sc__Ref.html">Ref</a>< <a class="el" href="class_sc__MemoryGrp.html">MemoryGrp</a> > & <em>grp</em> ) </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Creates a new <a class="el" href="class_sc__MemoryGrpBuf.html">MemoryGrpBuf</a> given a <a class="el" href="class_sc__MemoryGrp.html">MemoryGrp</a> reference. <p> This is a template class parameterized on data_t. </td> </tr> </table> <hr><h2>Member Function Documentation</h2> <a name="a3" doxytag="sc::MemoryGrpBuf::readonly"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td colspan="2"><b> template<class data_t> </b></td> </tr> <tr> <td nowrap valign="top"><b> const data_t * sc::MemoryGrpBuf< data_t >::readonly ( </b></td> <td valign="bottom"><b> distsize_t <em>offset</em>, </b></td> </tr> <tr> <td></td> <td><b> int <em>length</em> ) </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <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="class_sc__MemoryGrp.html">MemoryGrp</a> will have undefined results. </td> </tr> </table> <a name="a2" doxytag="sc::MemoryGrpBuf::readwrite"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td colspan="2"><b> template<class data_t> </b></td> </tr> <tr> <td nowrap valign="top"><b> data_t * sc::MemoryGrpBuf< data_t >::readwrite ( </b></td> <td valign="bottom"><b> distsize_t <em>offset</em>, </b></td> </tr> <tr> <td></td> <td><b> int <em>length</em> ) </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <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="class_sc__MemoryGrp.html">MemoryGrp</a> object. </td> </tr> </table> <a name="a1" doxytag="sc::MemoryGrpBuf::writeonly"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td colspan="2"><b> template<class data_t> </b></td> </tr> <tr> <td nowrap valign="top"><b> data_t * sc::MemoryGrpBuf< data_t >::writeonly ( </b></td> <td valign="bottom"><b> distsize_t <em>offset</em>, </b></td> </tr> <tr> <td></td> <td><b> int <em>length</em> ) </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <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="class_sc__MemoryGrp.html">MemoryGrp</a> will have undefined results. </td> </tr> </table> <a name="a4" doxytag="sc::MemoryGrpBuf::writeonly_on_node"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td colspan="2"><b> template<class data_t> </b></td> </tr> <tr> <td nowrap valign="top"><b> data_t * sc::MemoryGrpBuf< data_t >::writeonly_on_node ( </b></td> <td valign="bottom"><b> size_t <em>offset</em>, </b></td> </tr> <tr> <td></td> <td><b> int <em>length</em>, </b></td> </tr> <tr> <td></td> <td><b> int <em>node</em> = -1 ) </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <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. </td> </tr> </table> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="memory_h-source.html">memory.h</a></ul> <hr> <address> <small> Generated at Mon Oct 14 14:17:08 2002 for <a href="http://aros.ca.sandia.gov/~cljanss/mpqc">MPQC</a> 2.1.2 using the documentation package <a href="http://www.stack.nl/~dimitri/doxygen/index.html">Doxygen</a> 1.2.5. </small> </address> </body> </html>