<!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>numbers.h Source File</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body bgcolor="#ffffff"> <!-- Generated by Doxygen 1.2.5 on Thu Oct 4 15:32:58 2001 --> <center> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</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="globals.html">File Members</a> </center> <hr><h1>numbers.h</h1><a href="numbers_h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="comment">// Copyright (C) 1999-2001 Open Source Telecom Corporation.</font> 00002 <font class="comment">// </font> 00003 <font class="comment">// This program is free software; you can redistribute it and/or modify</font> 00004 <font class="comment">// it under the terms of the GNU General Public License as published by</font> 00005 <font class="comment">// the Free Software Foundation; either version 2 of the License, or</font> 00006 <font class="comment">// (at your option) any later version.</font> 00007 <font class="comment">// </font> 00008 <font class="comment">// This program is distributed in the hope that it will be useful,</font> 00009 <font class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</font> 00010 <font class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</font> 00011 <font class="comment">// GNU General Public License for more details.</font> 00012 <font class="comment">// </font> 00013 <font class="comment">// You should have received a copy of the GNU General Public License</font> 00014 <font class="comment">// along with this program; if not, write to the Free Software </font> 00015 <font class="comment">// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.</font> 00016 <font class="comment">// </font> 00017 <font class="comment">// As a special exception to the GNU General Public License, permission is </font> 00018 <font class="comment">// granted for additional uses of the text contained in its release </font> 00019 <font class="comment">// of Common C++.</font> 00020 <font class="comment">// </font> 00021 <font class="comment">// The exception is that, if you link the Common C++ library with other</font> 00022 <font class="comment">// files to produce an executable, this does not by itself cause the</font> 00023 <font class="comment">// resulting executable to be covered by the GNU General Public License.</font> 00024 <font class="comment">// Your use of that executable is in no way restricted on account of</font> 00025 <font class="comment">// linking the Common C++ library code into it.</font> 00026 <font class="comment">// </font> 00027 <font class="comment">// This exception does not however invalidate any other reasons why</font> 00028 <font class="comment">// the executable file might be covered by the GNU General Public License.</font> 00029 <font class="comment">// </font> 00030 <font class="comment">// This exception applies only to the code released under the </font> 00031 <font class="comment">// name Common C++. If you copy code from other releases into a copy of</font> 00032 <font class="comment">// Common C++, as the General Public License permits, the exception does</font> 00033 <font class="comment">// not apply to the code that you add in this way. To avoid misleading</font> 00034 <font class="comment">// anyone as to the status of such modified files, you must delete</font> 00035 <font class="comment">// this exception notice from them.</font> 00036 <font class="comment">// </font> 00037 <font class="comment">// If you write modifications of your own for Common C++, it is your choice</font> 00038 <font class="comment">// whether to permit this exception to apply to your modifications.</font> 00039 <font class="comment">// If you do not wish that, delete this exception notice. </font> 00040 00041 <font class="preprocessor">#ifndef __CCXX_NUMBERS_H__</font> 00042 <font class="preprocessor"></font><font class="preprocessor">#define __CCXX_NUMBERS_H__</font> 00043 <font class="preprocessor"></font> 00044 <font class="preprocessor">#ifndef __CCXX_CONFIG_H__</font> 00045 <font class="preprocessor"></font><font class="preprocessor">#include <cc++/<a class="code" href="config_h.html">config.h</a>></font> 00046 <font class="preprocessor">#endif</font> 00047 <font class="preprocessor"></font> 00048 <font class="preprocessor">#ifndef __CCXX_THREAD_H__</font> 00049 <font class="preprocessor"></font><font class="preprocessor">#include <cc++/<a class="code" href="thread_h.html">thread.h</a>></font> 00050 <font class="preprocessor">#else</font> 00051 <font class="preprocessor"></font><font class="preprocessor">#ifdef __CCXX_NAMESPACE_H__</font> 00052 <font class="preprocessor"></font><font class="preprocessor">#include <cc++/<a class="code" href="macros_h.html">macros.h</a>></font> 00053 <font class="preprocessor">#endif</font> 00054 <font class="preprocessor"></font><font class="preprocessor">#endif</font> 00055 <font class="preprocessor"></font> 00056 <font class="preprocessor">#ifndef __CCXX_STRCHAR_H__</font> 00057 <font class="preprocessor"></font><font class="preprocessor">#include <cc++/<a class="code" href="strchar_h.html">strchar.h</a>></font> 00058 <font class="preprocessor">#endif</font> 00059 <font class="preprocessor"></font> 00060 <font class="preprocessor">#ifdef __BORLANDC__</font> 00061 <font class="preprocessor"></font> <font class="keyword">using</font> std::tm; 00062 <font class="keyword">using</font> std::time_t; 00063 <font class="preprocessor">#endif</font> 00064 <font class="preprocessor"></font> <a name="l00073"></a><a class="code" href="class_number.html">00073</a> <font class="keyword">class </font><a class="code" href="class_number.html">Number</a> 00074 { 00075 <font class="keyword">protected</font>: <a name="l00076"></a><a class="code" href="class_number.html#n0">00076</a> <font class="keywordtype">char</font> *buffer; <a name="l00077"></a><a class="code" href="class_number.html#n1">00077</a> <font class="keywordtype">unsigned</font> size; 00078 00079 <font class="keyword">public</font>: 00085 <a class="code" href="class_number.html#a0">Number</a>(<font class="keywordtype">char</font> *buffer, <font class="keywordtype">unsigned</font> size); 00086 00087 <font class="keywordtype">void</font> <a class="code" href="class_number.html#a1">setValue</a>(<font class="keywordtype">long</font> value); <a name="l00088"></a><a class="code" href="class_number.html#a2">00088</a> <font class="keyword">const</font> <font class="keywordtype">char</font> *<a class="code" href="class_number.html#a2">getBuffer</a>()<font class="keyword"></font> 00089 <font class="keyword"> </font>{<font class="keywordflow">return</font> buffer;}; 00090 00091 <font class="keywordtype">long</font> <a class="code" href="class_number.html#a3">getValue</a>(); 00092 <a name="l00093"></a><a class="code" href="class_number.html#a4">00093</a> <font class="keywordtype">long</font> <a class="code" href="class_number.html#a4">operator()</a>()<font class="keyword"></font> 00094 <font class="keyword"> </font>{<font class="keywordflow">return</font> <a class="code" href="class_number.html#a3">getValue</a>();}; 00095 <a name="l00096"></a><a class="code" href="class_number.html#a5">00096</a> <a class="code" href="class_number.html#a5">operator long</a>()<font class="keyword"></font> 00097 <font class="keyword"> </font>{<font class="keywordflow">return</font> <a class="code" href="class_number.html#a3">getValue</a>();}; 00098 <a name="l00099"></a><a class="code" href="class_number.html#a6">00099</a> <a class="code" href="class_number.html#a6">operator char*</a>()<font class="keyword"></font> 00100 <font class="keyword"> </font>{<font class="keywordflow">return</font> buffer;}; 00101 00102 <font class="keywordtype">long</font> <a class="code" href="class_number.html#a7">operator=</a>(<font class="keywordtype">long</font> value); 00103 <font class="keywordtype">long</font> <a class="code" href="class_number.html#a8">operator+=</a>(<font class="keywordtype">long</font> value); 00104 <font class="keywordtype">long</font> <a class="code" href="class_number.html#a9">operator-=</a>(<font class="keywordtype">long</font> value); 00105 <font class="keywordtype">long</font> <a class="code" href="class_number.html#a10">operator--</a>(); 00106 <font class="keywordtype">long</font> <a class="code" href="class_number.html#a11">operator++</a>(); 00107 <font class="keywordtype">int</font> <a class="code" href="class_number.html#a12">operator==</a>(<a class="code" href="class_number.html">Number</a> &num); 00108 <font class="keywordtype">int</font> <a class="code" href="class_number.html#a13">operator!=</a>(<a class="code" href="class_number.html">Number</a> &num); 00109 <font class="keywordtype">int</font> <a class="code" href="class_number.html#a14">operator<</a>(<a class="code" href="class_number.html">Number</a> &num); 00110 <font class="keywordtype">int</font> <a class="code" href="class_number.html#a15">operator<=</a>(<a class="code" href="class_number.html">Number</a> &num); 00111 <font class="keywordtype">int</font> <a class="code" href="class_number.html#a16">operator></a>(<a class="code" href="class_number.html">Number</a> &num); 00112 <font class="keywordtype">int</font> <a class="code" href="class_number.html#a17">operator>=</a>(<a class="code" href="class_number.html">Number</a> &num); 00113 00114 <font class="keyword">friend</font> <font class="keywordtype">long</font> <a class="code" href="class_number.html#l0">operator+</a>(<a class="code" href="class_number.html">Number</a> &num, <font class="keywordtype">long</font> val); 00115 <font class="keyword">friend</font> <font class="keywordtype">long</font> <a class="code" href="class_number.html#l0">operator+</a>(<font class="keywordtype">long</font> val, <a class="code" href="class_number.html">Number</a> &num); 00116 <font class="keyword">friend</font> <font class="keywordtype">long</font> <a class="code" href="class_number.html#l2">operator-</a>(<a class="code" href="class_number.html">Number</a> &num, <font class="keywordtype">long</font> val); 00117 <font class="keyword">friend</font> <font class="keywordtype">long</font> <a class="code" href="class_number.html#l2">operator-</a>(<font class="keywordtype">long</font> val, <a class="code" href="class_number.html">Number</a> &num); 00118 }; 00119 <a name="l00120"></a><a class="code" href="class_znumber.html">00120</a> <font class="keyword">class </font><a class="code" href="class_znumber.html">ZNumber</a> : <font class="keyword">public</font> <a class="code" href="class_number.html">Number</a> 00121 { 00122 <font class="keyword">public</font>: 00123 <a class="code" href="class_znumber.html#a0">ZNumber</a>(<font class="keywordtype">char</font> *buf, <font class="keywordtype">unsigned</font> size); 00124 <font class="keywordtype">void</font> <a class="code" href="class_number.html#a1">setValue</a>(<font class="keywordtype">long</font> value); 00125 <font class="keywordtype">long</font> <a class="code" href="class_number.html#a7">operator=</a>(<font class="keywordtype">long</font> value); 00126 }; 00127 <a name="l00136"></a><a class="code" href="class_date.html">00136</a> <font class="keyword">class </font><a class="code" href="class_date.html">Date</a> 00137 { 00138 <font class="keyword">private</font>: 00139 <font class="keywordtype">long</font> julian; 00140 00141 <font class="keyword">protected</font>: 00142 <font class="keywordtype">void</font> <a class="code" href="class_date.html#b0">toJulian</a>(<font class="keywordtype">long</font> year, <font class="keywordtype">long</font> month, <font class="keywordtype">long</font> day); 00143 <font class="keywordtype">void</font> <a class="code" href="class_date.html#b1">fromJulian</a>(<font class="keywordtype">char</font> *buf); 00144 <a name="l00149"></a><a class="code" href="class_date.html#b2">00149</a> <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_date.html#b2">Update</a>(<font class="keywordtype">void</font>)<font class="keyword"></font> 00150 <font class="keyword"> </font>{<font class="keywordflow">return</font>;}; 00151 00152 <font class="keyword">public</font>: 00153 00154 <a class="code" href="class_date.html#a4">Date</a>(time_t tm); 00155 <a class="code" href="class_date.html#a4">Date</a>(tm *dt); 00156 <a class="code" href="class_date.html#a4">Date</a>(<font class="keywordtype">char</font> *str, size_t size = 0); 00157 <a class="code" href="class_date.html#a4">Date</a>(<font class="keywordtype">int</font> year, <font class="keywordtype">unsigned</font> month, <font class="keywordtype">unsigned</font> day); 00158 <a class="code" href="class_date.html#a4">Date</a>(); 00159 00160 <font class="keywordtype">int</font> <a class="code" href="class_date.html#a5">getYear</a>(<font class="keywordtype">void</font>); 00161 <font class="keywordtype">unsigned</font> <a class="code" href="class_date.html#a6">getMonth</a>(<font class="keywordtype">void</font>); 00162 <font class="keywordtype">unsigned</font> <a class="code" href="class_date.html#a7">getDay</a>(<font class="keywordtype">void</font>); 00163 <font class="keywordtype">unsigned</font> <a class="code" href="class_date.html#a8">getDayOfWeek</a>(<font class="keywordtype">void</font>); 00164 <font class="keywordtype">char</font> *<a class="code" href="class_date.html#a10">getDate</a>(<font class="keywordtype">char</font> *buffer); 00165 time_t <a class="code" href="class_date.html#a10">getDate</a>(<font class="keywordtype">void</font>); 00166 <font class="keywordtype">long</font> <a class="code" href="class_number.html#a3">getValue</a>(<font class="keywordtype">void</font>); 00167 tm *<a class="code" href="class_date.html#a10">getDate</a>(tm *buf); 00168 <font class="keywordtype">bool</font> <a class="code" href="class_date.html#a13">is_ok</a>(<font class="keywordtype">void</font>); 00169 00170 <font class="keyword">friend</font> <a class="code" href="class_date.html">Date</a> <a class="code" href="class_number.html#l0">operator+</a>(<a class="code" href="class_date.html">Date</a> &date, <font class="keywordtype">long</font> val); 00171 <font class="keyword">friend</font> <a class="code" href="class_date.html">Date</a> <a class="code" href="class_number.html#l2">operator-</a>(<a class="code" href="class_date.html">Date</a> &date, <font class="keywordtype">long</font> val); 00172 <font class="keyword">friend</font> <a class="code" href="class_date.html">Date</a> <a class="code" href="class_number.html#l0">operator+</a>(<font class="keywordtype">long</font> val, <a class="code" href="class_date.html">Date</a> &date); 00173 <font class="keyword">friend</font> <a class="code" href="class_date.html">Date</a> <a class="code" href="class_number.html#l2">operator-</a>(<font class="keywordtype">long</font> val, <a class="code" href="class_date.html">Date</a> &date); 00174 <a name="l00175"></a><a class="code" href="class_date.html#a14">00175</a> <a class="code" href="class_number.html#a5">operator long</a>()<font class="keyword"></font> 00176 <font class="keyword"> </font>{<font class="keywordflow">return</font> <a class="code" href="class_number.html#a3">getValue</a>();}; 00177 00178 std::string <a class="code" href="class_number.html#a4">operator()</a>(); 00179 <a class="code" href="class_date.html">Date</a>& <a class="code" href="class_number.html#a11">operator++</a>(); 00180 <a class="code" href="class_date.html">Date</a>& <a class="code" href="class_number.html#a10">operator--</a>(); 00181 <a class="code" href="class_date.html">Date</a>& <a class="code" href="class_number.html#a8">operator+=</a>(<font class="keywordtype">long</font> val); 00182 <a class="code" href="class_date.html">Date</a>& <a class="code" href="class_number.html#a9">operator-=</a>(<font class="keywordtype">long</font> val); 00183 <font class="keywordtype">int</font> <a class="code" href="class_number.html#a12">operator==</a>(<a class="code" href="class_date.html">Date</a> &date); 00184 <font class="keywordtype">int</font> <a class="code" href="class_number.html#a13">operator!=</a>(<a class="code" href="class_date.html">Date</a> &date); 00185 <font class="keywordtype">int</font> <a class="code" href="class_number.html#a14">operator<</a>(<a class="code" href="class_date.html">Date</a> &date); 00186 <font class="keywordtype">int</font> <a class="code" href="class_number.html#a15">operator<=</a>(<a class="code" href="class_date.html">Date</a> &date); 00187 <font class="keywordtype">int</font> <a class="code" href="class_number.html#a16">operator></a>(<a class="code" href="class_date.html">Date</a> &date); 00188 <font class="keywordtype">int</font> <a class="code" href="class_number.html#a17">operator>=</a>(<a class="code" href="class_date.html">Date</a> &date); <a name="l00189"></a><a class="code" href="class_date.html#a26">00189</a> <font class="keywordtype">bool</font> <a class="code" href="class_date.html#a26">operator!</a>()<font class="keyword"></font> 00190 <font class="keyword"> </font>{<font class="keywordflow">return</font> !<a class="code" href="class_date.html#a13">is_ok</a>();}; 00191 }; 00192 <a name="l00199"></a><a class="code" href="class_datenumber.html">00199</a> <font class="keyword">class </font><a class="code" href="class_datenumber.html">DateNumber</a> : <font class="keyword">public</font> <a class="code" href="class_number.html">Number</a>, <font class="keyword">public</font> <a class="code" href="class_date.html">Date</a> 00200 { 00201 <font class="keyword">protected</font>: <a name="l00202"></a><a class="code" href="class_datenumber.html#b0">00202</a> <font class="keywordtype">void</font> <a class="code" href="class_date.html#b2">Update</a>(<font class="keywordtype">void</font>)<font class="keyword"></font> 00203 <font class="keyword"> </font>{<a class="code" href="class_date.html#b1">fromJulian</a>(buffer);}; 00204 00205 <font class="keyword">public</font>: 00206 <a class="code" href="class_datenumber.html#a0">DateNumber</a>(<font class="keywordtype">char</font> *buffer); 00207 }; 00208 00209 <font class="preprocessor">#ifdef __CCXX_NAMESPACE_H__</font> 00210 <font class="preprocessor"></font><font class="preprocessor">#undef __CCXX_NAMESPACE_H__</font> 00211 <font class="preprocessor"></font><font class="preprocessor">#include <cc++/<a class="code" href="namespace_h.html">namespace.h</a>></font> 00212 <font class="preprocessor">#endif</font> 00213 <font class="preprocessor"></font> 00214 <font class="preprocessor">#endif</font> 00215 <font class="preprocessor"></font> </div></pre><hr><address><small>Generated at Thu Oct 4 15:32:58 2001 for CommonC++ by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.gif" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.5 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>, © 1997-2001</small></address> </body> </html>