Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members  

system.hh

00001 /*
00002 *  Name:      system.hh
00003 *  Author:    Rafael Jesus Alcantara Perez
00004 *  Summary:   Wrapper class for POSIX.1 compliant operating systems
00005 *  Date:      $Date: 2003/04/14 00:18:32 $
00006 *  Revision:  $Revision: 1.1 $
00007 *
00008 *  Copyright (C) 1994-2002  Rafael Jesus Alcantara Perez <rafa@dedalo-ing.com>
00009 *
00010 *  This program is free software; you can redistribute it and/or modify
00011 *  it under the terms of the GNU General Public License as published by
00012 *  the Free Software Foundation; either version 2 of the License, or
00013 *  (at your option) any later version.
00014 *
00015 *  This program is distributed in the hope that it will be useful,
00016 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00017 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018 *  GNU General Public License for more details.
00019 *
00020 *  You should have received a copy of the GNU General Public License
00021 *  along with this program; if not, write to the Free Software
00022 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
00023 *  MA 02111-1307, USA.
00024 */
00025 
00026 #ifndef _MPCL_SYSTEM_POSIX_1_SYSTEM__
00027 #define _MPCL_SYSTEM_POSIX_1_SYSTEM__
00028 
00029 #include <syslog.h>
00030 #include "../system.hh"
00031 
00032 
00034 namespace mpcl
00035 {
00036 
00038   namespace system
00039   {
00040 
00042     class TSystem : public ISystem
00043     {
00044 
00045       public:
00046         
00048         typedef TBigEndianBuffer   TBigEndianBuffer;
00049 
00051         typedef TLittleEndianBuffer   TLittleEndianBuffer;
00052 
00054         typedef TMachineDependent   TMachineDependent;
00055 
00056 
00057       public:
00058 
00059         //
00060         //  C O N S T R U C T O R S
00061         //
00062 
00064         TSystem (void)
00065         {
00066           openlog (NULL, LOG_PID, LOG_USER);
00067         }
00068         
00069         ~TSystem (void)
00070         {
00071           closelog();
00072         }
00073 
00079         TString getCurrentDirectory (void) const;
00080 
00081         char getDirectorySeparator (void) const;
00082 
00083         std::size_t getFileSize (const char* pkcFILE_NAME) const
00084           throw (TErrorException);
00085 
00086         char getPathSeparator (void) const;
00087 
00088         int getProcessId (void) const;
00089 
00096         void sleep (std::size_t zSECONDS, std::size_t zNANOSECONDS = 0) const;
00097 
00098         void writeLogEntry ( const std::string& rkyMESSAGE          ,
00099                              ELogLevel          eLEVEL    = eNotice ,
00100                              ELogFacility       eFACILITY = eUser   ) const;
00101 
00102         void yield (void) const;
00103 
00104     };  // class TSystem
00105 
00106 
00107     //
00108     //  E X P O R T E D   V A R I A B L E S
00109     //
00110 
00111     extern TSystem   tSystem;
00112 
00113   }  // namespace system
00114 
00115 }  // namespace mpcl
00116 
00117 
00118 #endif  // not _MPCL_SYSTEM_POSIX_1_SYSTEM__

Generated on Mon Oct 13 02:35:24 2003 for MPCL by doxygen1.2.18