Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > 4bc66056a634db26a1f4d0845dc41ca6 > files > 534

mrpt-doc-0.9.5-0.1.20110925svn2670.fc16.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>CFileOutputStream.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> &gt; <b>C++ reference</b> </div>
<div align="right">
<a href="index.html"><img border="0" src="mrpt_logo.png" alt="MRPT logo"></a>
</div>
<!-- Generated by Doxygen 1.7.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
          <div class="left">
            <form id="FSearchBox" action="search.php" method="get">
              <img id="MSearchSelect" src="search/mag.png" alt=""/>
              <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" 
                     onfocus="searchBox.OnSearchFieldFocus(true)" 
                     onblur="searchBox.OnSearchFieldFocus(false)"/>
            </form>
          </div><div class="right"></div>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<div class="header">
  <div class="headertitle">
<div class="title">CFileOutputStream.h</div>  </div>
</div>
<div class="contents">
<a href="_c_file_output_stream_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* +---------------------------------------------------------------------------+</span>
<a name="l00002"></a>00002 <span class="comment">   |          The Mobile Robot Programming Toolkit (MRPT) C++ library          |</span>
<a name="l00003"></a>00003 <span class="comment">   |                                                                           |</span>
<a name="l00004"></a>00004 <span class="comment">   |                       http://www.mrpt.org/                                |</span>
<a name="l00005"></a>00005 <span class="comment">   |                                                                           |</span>
<a name="l00006"></a>00006 <span class="comment">   |   Copyright (C) 2005-2011  University of Malaga                           |</span>
<a name="l00007"></a>00007 <span class="comment">   |                                                                           |</span>
<a name="l00008"></a>00008 <span class="comment">   |    This software was written by the Machine Perception and Intelligent    |</span>
<a name="l00009"></a>00009 <span class="comment">   |      Robotics Lab, University of Malaga (Spain).                          |</span>
<a name="l00010"></a>00010 <span class="comment">   |    Contact: Jose-Luis Blanco  &lt;jlblanco@ctima.uma.es&gt;                     |</span>
<a name="l00011"></a>00011 <span class="comment">   |                                                                           |</span>
<a name="l00012"></a>00012 <span class="comment">   |  This file is part of the MRPT project.                                   |</span>
<a name="l00013"></a>00013 <span class="comment">   |                                                                           |</span>
<a name="l00014"></a>00014 <span class="comment">   |     MRPT is free software: you can redistribute it and/or modify          |</span>
<a name="l00015"></a>00015 <span class="comment">   |     it under the terms of the GNU General Public License as published by  |</span>
<a name="l00016"></a>00016 <span class="comment">   |     the Free Software Foundation, either version 3 of the License, or     |</span>
<a name="l00017"></a>00017 <span class="comment">   |     (at your option) any later version.                                   |</span>
<a name="l00018"></a>00018 <span class="comment">   |                                                                           |</span>
<a name="l00019"></a>00019 <span class="comment">   |   MRPT is distributed in the hope that it will be useful,                 |</span>
<a name="l00020"></a>00020 <span class="comment">   |     but WITHOUT ANY WARRANTY; without even the implied warranty of        |</span>
<a name="l00021"></a>00021 <span class="comment">   |     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         |</span>
<a name="l00022"></a>00022 <span class="comment">   |     GNU General Public License for more details.                          |</span>
<a name="l00023"></a>00023 <span class="comment">   |                                                                           |</span>
<a name="l00024"></a>00024 <span class="comment">   |     You should have received a copy of the GNU General Public License     |</span>
<a name="l00025"></a>00025 <span class="comment">   |     along with MRPT.  If not, see &lt;http://www.gnu.org/licenses/&gt;.         |</span>
<a name="l00026"></a>00026 <span class="comment">   |                                                                           |</span>
<a name="l00027"></a>00027 <span class="comment">   +---------------------------------------------------------------------------+ */</span>
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef  CFileOutputStream_H</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#define  CFileOutputStream_H</span>
<a name="l00030"></a>00030 <span class="preprocessor"></span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;<a class="code" href="_c_stream_8h.html">mrpt/utils/CStream.h</a>&gt;</span>
<a name="l00032"></a>00032 
<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;iostream&gt;</span>
<a name="l00034"></a>00034 
<a name="l00035"></a>00035 <span class="comment">/*---------------------------------------------------------------</span>
<a name="l00036"></a>00036 <span class="comment">        Class</span>
<a name="l00037"></a>00037 <span class="comment">  ---------------------------------------------------------------*/</span>
<a name="l00038"></a>00038 <span class="keyword">namespace </span>mrpt
<a name="l00039"></a>00039 {
<a name="l00040"></a>00040 <span class="keyword">namespace </span>utils
<a name="l00041"></a>00041 {<span class="comment"></span>
<a name="l00042"></a>00042 <span class="comment">        /** This CStream derived class allow using a file as a write-only, binary stream.</span>
<a name="l00043"></a>00043 <span class="comment">         *</span>
<a name="l00044"></a>00044 <span class="comment">         * \sa CStream, CFileStream, CFileGZOutputStream</span>
<a name="l00045"></a>00045 <span class="comment">         * \ingroup mrpt_base_grp</span>
<a name="l00046"></a>00046 <span class="comment">         */</span>
<a name="l00047"></a>00047         <span class="keyword">class </span><a class="code" href="base_2include_2mrpt_2base_2link__pragmas_8h.html#a6045fa0129b1a3d6c8bf895470e66574">BASE_IMPEXP</a> CFileOutputStream : <span class="keyword">public</span> <a class="code" href="namespacemrpt_1_1utils.html#a4aa6d0388c837d159ca801e48d601449">CStream</a>, <span class="keyword">public</span> CUncopiable
<a name="l00048"></a>00048         {
<a name="l00049"></a>00049         <span class="keyword">protected</span>:<span class="comment"></span>
<a name="l00050"></a>00050 <span class="comment">                 /** Method responsible for reading from the stream.</span>
<a name="l00051"></a>00051 <span class="comment">                 */</span>
<a name="l00052"></a>00052                 <span class="keywordtype">size_t</span>  Read(<span class="keywordtype">void</span> *Buffer, <span class="keywordtype">size_t</span> Count);
<a name="l00053"></a>00053 <span class="comment"></span>
<a name="l00054"></a>00054 <span class="comment">                /** Method responsible for writing to the stream.</span>
<a name="l00055"></a>00055 <span class="comment">                 *  Write attempts to write up to Count bytes to Buffer, and returns the number of bytes actually written.</span>
<a name="l00056"></a>00056 <span class="comment">                 */</span>
<a name="l00057"></a>00057                 <span class="keywordtype">size_t</span>  Write(<span class="keyword">const</span> <span class="keywordtype">void</span> *Buffer, <span class="keywordtype">size_t</span> Count);
<a name="l00058"></a>00058 
<a name="l00059"></a>00059                 <span class="comment">// DECLARE_UNCOPIABLE( CFileOutputStream )</span>
<a name="l00060"></a>00060 
<a name="l00061"></a>00061         <span class="keyword">private</span>:
<a name="l00062"></a><a class="code" href="classmrpt_1_1utils_1_1_c_file_output_stream.html#a85a7d3be83dcae8488abc35e9fab2ac2">00062</a>                 std<a class="code" href="classstd_1_1ofstream.html" title="STL class.">::ofstream</a>   <a class="code" href="classmrpt_1_1utils_1_1_c_file_output_stream.html#a85a7d3be83dcae8488abc35e9fab2ac2" title="The actual output file stream.">m_of</a>;           <span class="comment">//!&lt; The actual output file stream.</span>
<a name="l00063"></a>00063 <span class="comment"></span>
<a name="l00064"></a>00064         <span class="keyword">public</span>:<span class="comment"></span>
<a name="l00065"></a>00065 <span class="comment">                 /** Constructor</span>
<a name="l00066"></a>00066 <span class="comment">                  * \param fileName The file to be open in this stream</span>
<a name="l00067"></a>00067 <span class="comment">                  * \param append If set to true, the file will be opened for writing and the current cursor position set at the end of the file. Otherwise, previous contents will be lost.</span>
<a name="l00068"></a>00068 <span class="comment">                  * \exception std::exception if the file cannot be opened.</span>
<a name="l00069"></a>00069 <span class="comment">                  */</span>
<a name="l00070"></a>00070                 <a class="code" href="classmrpt_1_1utils_1_1_c_file_output_stream.html" title="This CStream derived class allow using a file as a write-only, binary stream.">CFileOutputStream</a>(
<a name="l00071"></a>00071                         <span class="keyword">const</span> <a class="code" href="classstd_1_1string.html" title="STL class.">std::string</a> &amp;fileName,
<a name="l00072"></a>00072                         <span class="keywordtype">bool</span>  append = <span class="keyword">false</span>
<a name="l00073"></a>00073                          );
<a name="l00074"></a>00074 <span class="comment"></span>
<a name="l00075"></a>00075 <span class="comment">                 /** Default constructor</span>
<a name="l00076"></a>00076 <span class="comment">                  */</span>
<a name="l00077"></a>00077                 <a class="code" href="classmrpt_1_1utils_1_1_c_file_output_stream.html" title="This CStream derived class allow using a file as a write-only, binary stream.">CFileOutputStream</a>();
<a name="l00078"></a>00078 <span class="comment"></span>
<a name="l00079"></a>00079 <span class="comment">                 /** Open the given file for write</span>
<a name="l00080"></a>00080 <span class="comment">                  * \param fileName The file to be open in this stream</span>
<a name="l00081"></a>00081 <span class="comment">                  * \param append If set to true, the file will be opened for writing and the current cursor position set at the end of the file. Otherwise, previous contents will be lost.</span>
<a name="l00082"></a>00082 <span class="comment">                  * \sa fileOpenCorrectly</span>
<a name="l00083"></a>00083 <span class="comment">                  * \return true on success.</span>
<a name="l00084"></a>00084 <span class="comment">                  */</span>
<a name="l00085"></a>00085                 <span class="keywordtype">bool</span> open(<span class="keyword">const</span> <a class="code" href="classstd_1_1string.html" title="STL class.">std::string</a> &amp;fileName, <span class="keywordtype">bool</span>  append = <span class="keyword">false</span> );
<a name="l00086"></a>00086 <span class="comment"></span>
<a name="l00087"></a>00087 <span class="comment">                /** Close the stream. */</span>
<a name="l00088"></a>00088                 <span class="keywordtype">void</span> close();
<a name="l00089"></a>00089 <span class="comment"></span>
<a name="l00090"></a>00090 <span class="comment">                 /** Destructor</span>
<a name="l00091"></a>00091 <span class="comment">                 */</span>
<a name="l00092"></a>00092                  <span class="keyword">virtual</span> ~<a class="code" href="classmrpt_1_1utils_1_1_c_file_output_stream.html" title="This CStream derived class allow using a file as a write-only, binary stream.">CFileOutputStream</a>();
<a name="l00093"></a>00093 <span class="comment"></span>
<a name="l00094"></a>00094 <span class="comment">                 /** Says if file was open successfully or not.</span>
<a name="l00095"></a>00095 <span class="comment">                  */</span>
<a name="l00096"></a>00096                  <span class="keywordtype">bool</span>  fileOpenCorrectly();
<a name="l00097"></a>00097 <span class="comment"></span>
<a name="l00098"></a>00098 <span class="comment">                /** Method for moving to a specified position in the streamed resource.</span>
<a name="l00099"></a>00099 <span class="comment">                 *   See documentation of CStream::Seek</span>
<a name="l00100"></a>00100 <span class="comment">                 */</span>
<a name="l00101"></a>00101                 uint64_t Seek(<span class="keywordtype">long</span> Offset, <a class="code" href="classmrpt_1_1utils_1_1_c_stream.html#aab22931626d22c919a50183386d24059" title="Used in CStream::Seek.">CStream::TSeekOrigin</a> Origin = sFromBeginning);
<a name="l00102"></a>00102 <span class="comment"></span>
<a name="l00103"></a>00103 <span class="comment">                /** Method for getting the total number of bytes writen to buffer.</span>
<a name="l00104"></a>00104 <span class="comment">                 */</span>
<a name="l00105"></a>00105                 uint64_t getTotalBytesCount();
<a name="l00106"></a>00106 <span class="comment"></span>
<a name="l00107"></a>00107 <span class="comment">                /** Method for getting the current cursor position, where 0 is the first byte and TotalBytesCount-1 the last one.</span>
<a name="l00108"></a>00108 <span class="comment">                 */</span>
<a name="l00109"></a>00109                 uint64_t getPosition();
<a name="l00110"></a>00110 
<a name="l00111"></a>00111 
<a name="l00112"></a>00112         }; <span class="comment">// End of class def.</span>
<a name="l00113"></a>00113 
<a name="l00114"></a>00114         } <span class="comment">// End of namespace</span>
<a name="l00115"></a>00115 } <span class="comment">// end of namespace</span>
<a name="l00116"></a>00116 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
<br><hr><br> <table border="0" width="100%"> <tr> <td> Page generated by <a href="http://www.doxygen.org" target="_blank">Doxygen 1.7.5</a> for MRPT 0.9.5 SVN: at Sun Sep 25 17:20:18 UTC 2011</td><td></td> <td width="100"> </td> <td width="150">  </td></tr> </table>  </body></html>