casacore
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
casa
OS.h
Go to the documentation of this file.
1
//# OS.h: Classes for operating system services, and assorted other things
2
//# Copyright (C) 1995,1996,1998,1999,2001,2002
3
//# Associated Universities, Inc. Washington DC, USA.
4
//#
5
//# This library is free software; you can redistribute it and/or modify it
6
//# under the terms of the GNU Library General Public License as published by
7
//# the Free Software Foundation; either version 2 of the License, or (at your
8
//# option) any later version.
9
//#
10
//# This library is distributed in the hope that it will be useful, but WITHOUT
11
//# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12
//# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13
//# License for more details.
14
//#
15
//# You should have received a copy of the GNU Library General Public License
16
//# along with this library; if not, write to the Free Software Foundation,
17
//# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
18
//#
19
//# Correspondence concerning AIPS++ should be addressed as follows:
20
//# Internet email: aips2-request@nrao.edu.
21
//# Postal address: AIPS++ Project Office
22
//# National Radio Astronomy Observatory
23
//# 520 Edgemont Road
24
//# Charlottesville, VA 22903-2475 USA
25
//#
26
//# $Id$
27
28
#ifndef CASA_OS_H
29
#define CASA_OS_H
30
31
//# Includes
32
#include <
casacore/casa/aips.h
>
33
34
#include <
casacore/casa/OS/EnvVar.h
>
35
#include <
casacore/casa/OS/Path.h
>
36
#include <
casacore/casa/OS/RegularFile.h
>
37
#include <
casacore/casa/OS/SymLink.h
>
38
#include <
casacore/casa/OS/Directory.h
>
39
#include <
casacore/casa/OS/DirectoryIterator.h
>
40
41
#include <
casacore/casa/OS/Time.h
>
42
#include <
casacore/casa/OS/Timer.h
>
43
44
#include <
casacore/casa/OS/Conversion.h
>
45
#include <
casacore/casa/OS/CanonicalConversion.h
>
46
#include <
casacore/casa/OS/DataConversion.h
>
47
#include <
casacore/casa/OS/CanonicalDataConversion.h
>
48
49
#include <
casacore/casa/OS/Memory.h
>
50
#include <
casacore/casa/OS/MemoryTrace.h
>
51
52
53
namespace
casacore {
//# NAMESPACE CASACORE - BEGIN
54
55
// <module>
56
//
57
// <summary>
58
// Classes for operating system services, and assorted other things
59
// </summary>
60
61
// <prerequisite>
62
// <li> Nothing special
63
// </prerequisite>
64
//
65
66
// <reviewed reviewer="Paul Shannon" date="1995/06/02/ demos="">
67
// </reviewed>
68
69
// <etymology>
70
// 'OS' is the standard abbreviation for 'Operating System'.
71
// </etymology>
72
//
73
// <synopsis>
74
// This module's main purpose is to provide convenient and uniform
75
// access to operating system features: environment variables, file
76
// and directory access, time and date services, and uniform data
77
// representation (which solves the variety of ways the fundamental
78
// data types are represented in hardware).
79
// <p>
80
// The following functionality is available:
81
// <ul>
82
// <li> Class <linkto class=EnvironmentVariable:description>
83
// EnvironmentVariable</linkto>
84
// for access to environment variables.
85
// <li> Class <linkto class=Path:description>Path</linkto>,
86
// <linkto class=RegularFile:description>RegularFile</linkto>,
87
// <linkto class=SymLink:description>SymLink</linkto>, and
88
// <linkto class=Directory:description>Directory</linkto>
89
// for dealing with the file system.
90
// Note that module <linkto module=IO>IO</linkto> deals with
91
// reading and writing data to files and other IO streams.
92
// <li> Class <linkto class=Time:description>Time</linkto>
93
// to get the system time.
94
// <li> Class <linkto class=Timer:description>Timer</linkto>
95
// to measure elapsed, user, and system time of a piece of code.
96
// <li> Framework <linkto class=Conversion:description>Conversion</linkto>
97
// to convert data from one format to another. There are
98
// classes to convert to/from
99
// <linkto class=CanonicalConversion:description>canonical</linkto>
100
// format,
101
// <linkto class=VAXConversion:description>VAX</linkto> format, and
102
// <linkto class=IBMConversion:description>IBM/360</linkto> format.
103
// The structure of the framework is shown in the
104
// <a href="OS/OS_1.html">OMT diagram</a>.
105
// <li> A class to encapsulate <linkto class=Memory>Memory</linkto> usage.
106
// Class MemoryTrace makes it possible to trace all memory (de)allocations
107
// through malloc and free (new and delete).
108
// It only works on Linux systems though.
109
// </ul>
110
111
// </synopsis>
112
113
// <example>
114
// See the various class header files.
115
// </example>
116
//
117
// <motivation>
118
// We want to provide a simple and uniform interface to OS services and
119
// features for the application and library programmer. To pick a few
120
// examples:
121
// <ol>
122
// <li> Recursive deletion of a directory.
123
// <li> Access to time and date information.
124
// <li> Get and set environment variables.
125
// </ol>
126
// </motivation>
127
128
// <todo asof="1995/06/02">
129
// <li> The OS module is a bit fuzzy: for example, canonical data
130
// format conversion is more a matter of hardware than of operating
131
// system differences. Perhaps these particular classes should be
132
// moved to a new module.
133
// <li> Time and Date classes should be revised after studying
134
// similar classes designed by others. Roel Martinez is tenatively
135
// scheduled to do this in the late summer of 1995.
136
// <li> There was once some discussion of a 'VOS' (virtual operating system)
137
// module. This seems like a good idea. Nested subdirectories for
138
// specific operating systems would contain the implementations, but
139
// a common interface would be used for all. And perhaps local
140
// site makedefs could be used to select the proper implementation
141
// to link against, with no special action required of the programmer.
142
// </todo>
143
144
// </module>
145
146
147
}
//# NAMESPACE CASACORE - END
148
149
#endif
RegularFile.h
CanonicalDataConversion.h
aips.h
Time.h
Conversion.h
Timer.h
Memory.h
DirectoryIterator.h
SymLink.h
DataConversion.h
EnvVar.h
Path.h
Directory.h
MemoryTrace.h
CanonicalConversion.h
Generated by
1.8.5