- Main Page
- Related Pages
- Modules
- Classes
- Files

# FdoTypes.h

Go to the documentation of this file.

    00001 #ifndef _FDOTYPES_H_
    00002 #define _FDOTYPES_H_
    00003 //
    00004
    00005 //
    00006 // Copyright (C) 2004-2006  Autodesk, Inc.
    00007 //
    00008 // This library is free software; you can redistribute it and/or
    00009 // modify it under the terms of version 2.1 of the GNU Lesser
    00010 // General Public License as published by the Free Software Foundation.
    00011 //
    00012 // This library is distributed in the hope that it will be useful,
    00013 // but WITHOUT ANY WARRANTY; without even the implied warranty of
    00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00015 // Lesser General Public License for more details.
    00016 //
    00017 // You should have received a copy of the GNU Lesser General Public
    00018 // License along with this library; if not, write to the Free Software
    00019 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
    00020 //
    00021
    00022 #ifdef _WIN32
    00023 #pragma once
    00024 #endif
    00025
    00026 #ifndef _WIN32
    00027 #include <stdint.h>
    00028 #endif
    00029
    00030 /// \ingroup (typedefs)
    00031 /// \brief
    00032 /// FdoByte is used to store a single byte of data
    00033 typedef unsigned char   FdoByte;
    00034 #ifdef _WIN32
    00035 /// \ingroup (typedefs)
    00036 /// \brief
    00037 /// FdoInt8 is used to store a 8 bit signed integer
    00038 typedef _int8           FdoInt8;
    00039 /// \ingroup (typedefs)
    00040 /// \brief
    00041 /// FdoInt16 is used to store a 16 bit signed integer
    00042 typedef _int16          FdoInt16;
    00043 /// \ingroup (typedefs)
    00044 /// \brief
    00045 /// FdoInt32 is used to store a 32 bit signed integer
    00046 typedef _int32          FdoInt32;
    00047 /// \ingroup (typedefs)
    00048 /// \brief
    00049 /// FdoInt64 is used to store a 64 bit signed integer
    00050 typedef _int64          FdoInt64;
    00051 #else
    00052 /// \cond DOXYGEN-IGNORE
    00053 typedef int8_t      FdoInt8;
    00054 typedef int16_t     FdoInt16;
    00055 typedef int32_t     FdoInt32;
    00056 typedef int64_t     FdoInt64;
    00057 /// \endcond
    00058 #endif
    00059 /// \ingroup (typedefs)
    00060 /// \brief
    00061 /// FdoCharacter is used to store a wide character
    00062 typedef wchar_t         FdoCharacter;
    00063 /// \ingroup (typedefs)
    00064 /// \brief
    00065 /// FdoString is used to store a constant wide character.
    00066 /// Variables declared as FdoString* point to constant wide character strings.
    00067 typedef const wchar_t   FdoString;
    00068 /// \ingroup (typedefs)
    00069 /// \brief
    00070 /// FdoBoolean is used to store a boolean (true/false) value
    00071 typedef bool            FdoBoolean;
    00072 /// \ingroup (typedefs)
    00073 /// \brief
    00074 /// FdoVoid is used to reference a void (type undetermined)
    00075 typedef void            FdoVoid;
    00076 /// \ingroup (typedefs)
    00077 /// \brief
    00078 /// FdoDouble is used to store a double precision floating point number
    00079 typedef double          FdoDouble;
    00080 /// \ingroup (typedefs)
    00081 /// \brief
    00082 /// FdoFloat is used to store a single precision floating point number
    00083 typedef float           FdoFloat;
    00084
    00085 /// \ingroup (typedefs)
    00086 /// \brief
    00087 /// FdoSize is used to store a size value (e.g. number of elements in an array)
    00088 typedef size_t          FdoSize;
    00089
    00090 /// \brief
    00091 /// FdoDateTime is used to store dates, times, or both.  After constructing
    00092 /// the class you determine which portion has been specified.  The data members
    00093 /// are public so they can be accessed directly. No range checking is performed.
    00094 /// <ul>
    00095 /// <li>Year is in the range of 1 to 9999</li>
    00096 /// <li>Month is in the range of 1 to 12 inclusive (January = 1)</li>
    00097 /// <li>Day of the month is in the range of 1 to 31 inclusive</li>
    00098 /// <li>Hour is since midnight in the range of 0 to 23</li>
    00099 /// <li>Minutes are after hour in the range of 0 to 59</li>
    00100 /// <li>Seconds are after minute in the range of 0 to 59.9999999</li>
    00101 /// </ul>
    00102 class FdoDateTime
    00103 {
    00104 public:
    00105     /// \brief
    00106     /// Construct a NULL date time value
    00107     ///
    00108     /// \return
    00109     /// Returns nothing.
    00110     ///
    00111     FdoDateTime()
    00112     {
    00113         year = -1; month = -1; day = -1;
    00114         hour = -1; minute = -1; seconds = 0.0f;
    00115     }
    00116
    00117     /// \brief
    00118     /// Construct a date value
    00119     ///
    00120     /// \param _year
    00121     /// Input year
    00122     /// \param _month
    00123     /// Input month
    00124     /// \param _day
    00125     /// Input day of month
    00126     ///
    00127     /// \return
    00128     /// Returns nothing.
    00129     ///
    00130     FdoDateTime(FdoInt16 _year, FdoInt8 _month, FdoInt8 _day)
    00131     {
    00132         year = _year; month = _month; day = _day;
    00133         hour = -1; minute = -1; seconds = 0.0f;
    00134     }
    00135
    00136     /// \brief
    00137     /// Construct a time value
    00138     ///
    00139     /// \param _hour
    00140     /// Input hour
    00141     /// \param _minutes
    00142     /// Input minutes
    00143     /// \param _seconds
    00144     /// Input seconds
    00145     ///
    00146     /// \return
    00147     /// Returns nothing.
    00148     ///
    00149     FdoDateTime(FdoInt8 _hour, FdoInt8 _minutes, float _seconds)
    00150     {
    00151         year = -1; month = -1; day = -1;
    00152         hour = _hour; minute = _minutes; seconds = _seconds;
    00153     }
    00154
    00155     /// \brief
    00156     /// Construct a date time value
    00157     ///
    00158     /// \param _year
    00159     /// Input year
    00160     /// \param _month
    00161     /// Input month
    00162     /// \param _day
    00163     /// Input day of month
    00164     /// \param _hour
    00165     /// Input hour
    00166     /// \param _minutes
    00167     /// Input minutes
    00168     /// \param _seconds
    00169     /// Input seconds
    00170     ///
    00171     /// \return
    00172     /// Returns nothing.
    00173     ///
    00174     FdoDateTime(FdoInt16 _year, FdoInt8 _month, FdoInt8 _day, FdoInt8 _hour, FdoInt8 _minutes, float _seconds)
    00175     {
    00176         year = _year; month = _month; day = _day;
    00177         hour = _hour; minute = _minutes; seconds = _seconds;
    00178     }
    00179
    00180     /// \brief
    00181     /// Returns true if the date is valid
    00182     ///
    00183     /// \return
    00184     /// Returns true if date has been defined.
    00185     ///
    00186     bool IsDate() {return year != -1 && hour == -1;}
    00187
    00188     /// \brief
    00189     /// Returns true if the time is valid
    00190     ///
    00191     /// \return
    00192     /// Returns true if time has been defined.
    00193     ///
    00194     bool IsTime() {return year == -1 && hour != -1;}
    00195
    00196     /// \brief
    00197     /// Returns true if both the date and time is valid
    00198     ///
    00199     /// \return
    00200     /// Returns true if both the date and time has been defined.
    00201     ///
    00202     bool IsDateTime() {return year != -1 && hour != -1;}
    00203
    00204     FdoInt16    year;
    00205     FdoInt8     month;
    00206     FdoInt8     day;
    00207     FdoInt8     hour;
    00208     FdoInt8     minute;
    00209     float       seconds;
    00210 };
    00211 #endif // _FDOTYPES_H_
    00212
    00213

Please send us your comment about this page