<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Exiv2: Action::TaskFactory Class 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="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="examples.html"><span>Examples</span></a></li> <li> <form action="search.php" method="get"> <table cellspacing="0" cellpadding="0" border="0"> <tr> <td><label> <u>S</u>earch for </label></td> <td><input type="text" name="query" value="" size="20" accesskey="s"/></td> </tr> </table> </form> </li> </ul> </div> <div class="tabs"> <ul> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</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"><a class="el" href="namespaceAction.html">Action</a>::<a class="el" href="classAction_1_1TaskFactory.html">TaskFactory</a> </div> </div> <div class="contents"> <h1>Action::TaskFactory Class Reference</h1><!-- doxytag: class="Action::TaskFactory" --><a class="el" href="classAction_1_1Task.html" title="Abstract base class for all concrete actions.">Task</a> factory. <a href="#_details">More...</a> <p> <code>#include <actions.hpp></code> <p> <div class="dynheader"> Collaboration diagram for Action::TaskFactory:</div> <div class="dynsection"> <p><center><img src="classAction_1_1TaskFactory__coll__graph.png" border="0" usemap="#Action_1_1TaskFactory__coll__map" alt="Collaboration graph"></center> <map name="Action_1_1TaskFactory__coll__map"> <area shape="rect" id="node4" href="classAction_1_1Task.html" title="Abstract base class for all concrete actions." alt="" coords="12,96,153,123"><area shape="rect" id="node6" title="STL class." alt="" coords="177,96,359,123"></map> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div> <p> <a href="classAction_1_1TaskFactory-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"><a class="anchor" name="ecfc2194d99c852300437ac2e96dc4b8"></a><!-- doxytag: member="Action::TaskFactory::cleanup" ref="ecfc2194d99c852300437ac2e96dc4b8" args="()" --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="classAction_1_1TaskFactory.html#ecfc2194d99c852300437ac2e96dc4b8">cleanup</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classAction_1_1Task.html#76329f48810f8e555b233d9f699faadd">Task::AutoPtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classAction_1_1TaskFactory.html#55ca06f5a6cf3dff1bb30fd5cad4286b">create</a> (<a class="el" href="namespaceAction.html#71af957ce05611bb128a23679e43b3d2">TaskType</a> type)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a task. <a href="#55ca06f5a6cf3dff1bb30fd5cad4286b"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classAction_1_1TaskFactory.html#5ea557e379916fb47f0785022a8eab78">registerTask</a> (<a class="el" href="namespaceAction.html#71af957ce05611bb128a23679e43b3d2">TaskType</a> type, <a class="el" href="classAction_1_1Task.html#76329f48810f8e555b233d9f699faadd">Task::AutoPtr</a> task)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Register a task prototype together with its type. <a href="#5ea557e379916fb47f0785022a8eab78"></a><br></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="classAction_1_1TaskFactory.html">TaskFactory</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classAction_1_1TaskFactory.html#27c920b95806b9b18ebb58553d8b4fa4">instance</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get access to the task factory. <a href="#27c920b95806b9b18ebb58553d8b4fa4"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> <a class="el" href="classAction_1_1Task.html" title="Abstract base class for all concrete actions.">Task</a> factory. <p> Creates an instance of the task of the requested type. The factory is implemented as a singleton, which can be accessed only through the static member function <a class="el" href="classAction_1_1TaskFactory.html#27c920b95806b9b18ebb58553d8b4fa4" title="Get access to the task factory.">instance()</a>. <hr><h2>Member Function Documentation</h2> <a class="anchor" name="55ca06f5a6cf3dff1bb30fd5cad4286b"></a><!-- doxytag: member="Action::TaskFactory::create" ref="55ca06f5a6cf3dff1bb30fd5cad4286b" args="(TaskType type)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classAction_1_1Task.html#76329f48810f8e555b233d9f699faadd">Task::AutoPtr</a> Action::TaskFactory::create </td> <td>(</td> <td class="paramtype"><a class="el" href="namespaceAction.html#71af957ce05611bb128a23679e43b3d2">TaskType</a> </td> <td class="paramname"> <em>type</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Create a task. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>type</em> </td><td>Identifies the type of task to create. </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>An auto pointer that owns a task of the requested type. If the task type is not supported, the pointer is 0. </dd></dl> <dl class="remark" compact><dt><b>Remarks:</b></dt><dd>The caller of the function should check the content of the returned auto pointer and take appropriate action (e.g., throw an exception) if it is 0. </dd></dl> <p>References <a class="el" href="actions_8cpp_source.html#l00170">Action::Task::clone()</a>.</p> </div> </div><p> <a class="anchor" name="27c920b95806b9b18ebb58553d8b4fa4"></a><!-- doxytag: member="Action::TaskFactory::instance" ref="27c920b95806b9b18ebb58553d8b4fa4" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classAction_1_1TaskFactory.html">TaskFactory</a> & Action::TaskFactory::instance </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get access to the task factory. <p> Clients access the task factory exclusively through this method. </div> </div><p> <a class="anchor" name="5ea557e379916fb47f0785022a8eab78"></a><!-- doxytag: member="Action::TaskFactory::registerTask" ref="5ea557e379916fb47f0785022a8eab78" args="(TaskType type, Task::AutoPtr task)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Action::TaskFactory::registerTask </td> <td>(</td> <td class="paramtype"><a class="el" href="namespaceAction.html#71af957ce05611bb128a23679e43b3d2">TaskType</a> </td> <td class="paramname"> <em>type</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classAction_1_1Task.html#76329f48810f8e555b233d9f699faadd">Task::AutoPtr</a> </td> <td class="paramname"> <em>task</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Register a task prototype together with its type. <p> The task factory creates new tasks of a given type by cloning its associated prototype. Additional tasks can be registered. If called for a type which already exists in the list, the corresponding prototype is replaced.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>type</em> </td><td><a class="el" href="classAction_1_1Task.html" title="Abstract base class for all concrete actions.">Task</a> type. </td></tr> <tr><td valign="top"></td><td valign="top"><em>task</em> </td><td>Pointer to the prototype. Ownership is transfered to the task factory. That's what the auto pointer indicates. </td></tr> </table> </dl> </div> </div><p> <hr>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="actions_8hpp.html">actions.hpp</a><li>actions.cpp</ul> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Thu Jun 25 15:17:48 2009 for Exiv2 by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address> </body> </html>