Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://www.atnf.csiro.au/computing/software/casacore/casacore-1.2.0/doc/html/OS_8h_source.html
Дата изменения: Unknown Дата индексирования: Mon Feb 14 19:10:12 2011 Кодировка: Поисковые слова: voyager |
00001 //# OS.h: Classes for operating system services, and assorted other things 00002 //# Copyright (C) 1995,1996,1998,1999,2001,2002 00003 //# Associated Universities, Inc. Washington DC, USA. 00004 //# 00005 //# This library is free software; you can redistribute it and/or modify it 00006 //# under the terms of the GNU Library General Public License as published by 00007 //# the Free Software Foundation; either version 2 of the License, or (at your 00008 //# option) any later version. 00009 //# 00010 //# This library is distributed in the hope that it will be useful, but WITHOUT 00011 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00012 //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public 00013 //# License for more details. 00014 //# 00015 //# You should have received a copy of the GNU Library General Public License 00016 //# along with this library; if not, write to the Free Software Foundation, 00017 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA. 00018 //# 00019 //# Correspondence concerning AIPS++ should be addressed as follows: 00020 //# Internet email: aips2-request@nrao.edu. 00021 //# Postal address: AIPS++ Project Office 00022 //# National Radio Astronomy Observatory 00023 //# 520 Edgemont Road 00024 //# Charlottesville, VA 22903-2475 USA 00025 //# 00026 //# $Id: OS.h 20551 2009-03-25 00:11:33Z Malte.Marquarding $ 00027 00028 #ifndef CASA_OS_H 00029 #define CASA_OS_H 00030 00031 //# Includes 00032 #include <casa/OS/EnvVar.h> 00033 #include <casa/OS/Path.h> 00034 #include <casa/OS/RegularFile.h> 00035 #include <casa/OS/SymLink.h> 00036 #include <casa/OS/Directory.h> 00037 #include <casa/OS/DirectoryIterator.h> 00038 00039 #include <casa/OS/Time.h> 00040 #include <casa/OS/Timer.h> 00041 00042 #include <casa/OS/Conversion.h> 00043 #include <casa/OS/CanonicalConversion.h> 00044 #include <casa/OS/DataConversion.h> 00045 #include <casa/OS/CanonicalDataConversion.h> 00046 00047 #include <casa/OS/Memory.h> 00048 00049 00050 namespace casa { //# NAMESPACE CASA - BEGIN 00051 00052 // <module> 00053 // 00054 // <summary> 00055 // Classes for operating system services, and assorted other things 00056 // </summary> 00057 00058 // <prerequisite> 00059 // <li> Nothing special 00060 // </prerequisite> 00061 // 00062 00063 // <reviewed reviewer="Paul Shannon" date="1995/06/02/ demos=""> 00064 // </reviewed> 00065 00066 // <etymology> 00067 // 'OS' is the standard abbreviation for 'Operating System'. 00068 // </etymology> 00069 // 00070 // <synopsis> 00071 // This module's main purpose is to provide convenient and uniform 00072 // access to operating system features: environment variables, file 00073 // and directory access, time and date services, and uniform data 00074 // representation (which solves the variety of ways the fundamental 00075 // data types are represented in hardware). 00076 // <p> 00077 // The following functionality is available: 00078 // <ul> 00079 // <li> Class <linkto class=EnvironmentVariable:description> 00080 // EnvironmentVariable</linkto> 00081 // for access to environment variables. 00082 // <li> Class <linkto class=Path:description>Path</linkto>, 00083 // <linkto class=RegularFile:description>RegularFile</linkto>, 00084 // <linkto class=SymLink:description>SymLink</linkto>, and 00085 // <linkto class=Directory:description>Directory</linkto> 00086 // for dealing with the file system. 00087 // Note that module <linkto module=IO>IO</linkto> deals with 00088 // reading and writing data to files and other IO streams. 00089 // <li> Class <linkto class=Time:description>Time</linkto> 00090 // to get the system time. 00091 // <li> Class <linkto class=Timer:description>Timer</linkto> 00092 // to measure elapsed, user, and system time of a piece of code. 00093 // <li> Framework <linkto class=Conversion:description>Conversion</linkto> 00094 // to convert data from one format to another. There are 00095 // classes to convert to/from 00096 // <linkto class=CanonicalConversion:description>canonical</linkto> 00097 // format, 00098 // <linkto class=VAXConversion:description>VAX</linkto> format, and 00099 // <linkto class=IBMConversion:description>IBM/360</linkto> format. 00100 // The structure of the framework is shown in the 00101 // <a href="OS/OS_1.html">OMT diagram</a>. 00102 // <li> A class to encapsulate <linkto class=Memory>Memory</linkto> usage. 00103 // </ul> 00104 00105 // </synopsis> 00106 00107 // <example> 00108 // See the various class header files. 00109 // </example> 00110 // 00111 // <motivation> 00112 // We want to provide a simple and uniform interface to OS services and 00113 // features for the application and library programmer. To pick a few 00114 // examples: 00115 // <ol> 00116 // <li> Recursive deletion of a directory. 00117 // <li> Access to time and date information. 00118 // <li> Get and set environment variables. 00119 // </ol> 00120 // </motivation> 00121 00122 // <todo asof="1995/06/02"> 00123 // <li> The OS module is a bit fuzzy: for example, canonical data 00124 // format conversion is more a matter of hardware than of operating 00125 // system differences. Perhaps these particular classes should be 00126 // moved to a new module. 00127 // <li> Time and Date classes should be revised after studying 00128 // similar classes designed by others. Roel Martinez is tenatively 00129 // scheduled to do this in the late summer of 1995. 00130 // <li> There was once some discussion of a 'VOS' (virtual operating system) 00131 // module. This seems like a good idea. Nested subdirectories for 00132 // specific operating systems would contain the implementations, but 00133 // a common interface would be used for all. And perhaps local 00134 // site makedefs could be used to select the proper implementation 00135 // to link against, with no special action required of the programmer. 00136 // </todo> 00137 00138 // </module> 00139 00140 00141 } //# NAMESPACE CASA - END 00142 00143 #endif