initial commit for version 1.5.x patch release
[OpenFOAM-1.5.x.git] / src / OpenFOAM / db / Time / TimePaths.H
blob56a25c94f4d052ff608ed82f4e9065477f69ffdc
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2008 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software; you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation; either version 2 of the License, or (at your
14     option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 Class
26     Foam::TimePaths
28 Description
29     A class for addressing time paths without using the Time class.
31 SourceFiles
32     TimePaths.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef TimePaths_H
37 #define TimePaths_H
39 #include "fileName.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
46 /*---------------------------------------------------------------------------*\
47                            Class TimePaths Declaration
48 \*---------------------------------------------------------------------------*/
51 class TimePaths
53     // Private data
55         bool processorCase_;
56         fileName rootPath_;
57         fileName case_;
58         word system_;
59         word constant_;
62 public:
64     // Constructors
66         //- Construct given database name, rootPath and casePath
67         TimePaths
68         (
69             const fileName& rootPath,
70             const fileName& caseName,
71             const word& systemName,
72             const word& constantName
73         );
76     // Member functions
78             //- Return true if this is a processor case
79             bool processorCase() const
80             {
81                 return processorCase_;
82             }
84             //- Return root path
85             const fileName& rootPath() const
86             {
87                 return rootPath_;
88             }
90             //- Return case name
91             const fileName& caseName() const
92             {
93                 return case_;
94             }
96             //- Return system name
97             const word& system() const
98             {
99                 return system_;
100             }
102             //- Return system name for the case
103             //  which for parallel runs returns ../system()
104             fileName caseSystem() const;
106             //- Return constant name
107             const word& constant() const
108             {
109                 return constant_;
110             }
112             //- Return constant name for the case
113             //  which for parallel runs returns ../constant()
114             fileName caseConstant() const;
116             //- Return path
117             fileName path() const
118             {
119                 return rootPath()/caseName();
120             }
122             //- Return system path
123             fileName systemPath() const
124             {
125                 return path()/system();
126             }
128             //- Return constant path
129             fileName constantPath() const
130             {
131                 return path()/constant();
132             }
136 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
138 } // End namespace Foam
140 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
142 #endif
144 // ************************************************************************* //