Merge branch 'upstream/OpenFOAM' into master
[freefoam.git] / data / templates / foamTemplate.H
blob2d49110aeb0cffbf8578b781b75333b9913791a1
1 /*----------------------------------------------------------------------------*\
2                 ______                _     ____          __  __
3                |  ____|             _| |_  / __ \   /\   |  \/  |
4                | |__ _ __ ___  ___ /     \| |  | | /  \  | \  / |
5                |  __| '__/ _ \/ _ ( (| |) ) |  | |/ /\ \ | |\/| |
6                | |  | | |  __/  __/\_   _/| |__| / ____ \| |  | |
7                |_|  |_|  \___|\___|  |_|   \____/_/    \_\_|  |_|
9                     FreeFOAM: The Cross-Platform CFD Toolkit
11   Copyright (C) 2008-2009 Michael Wild <themiwi@users.sf.net>
12                           Gerber van der Graaf <gerber_graaf@users.sf.net>
13 --------------------------------------------------------------------------------
14 License
15     This file is part of FreeFOAM.
17     FreeFOAM is free software; you can redistribute it and/or modify it
18     under the terms of the GNU General Public License as published by the
19     Free Software Foundation; either version 2 of the License, or (at your
20     option) any later version.
22     FreeFOAM is distributed in the hope that it will be useful, but WITHOUT
23     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
24     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
25     for more details.
27     You should have received a copy of the GNU General Public License
28     along with FreeFOAM; if not, write to the Free Software Foundation,
29     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
31 Class
32     Foam::className
34 Description
36 SourceFiles
37     classNameI.H
38     className.C
39     classNameIO.C
41 \*---------------------------------------------------------------------------*/
43 #ifndef className_H
44 #define className_H
46 #include </.H>
48 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50 namespace Foam
53 // Forward declaration of classes
54 class Istream;
55 class Ostream;
57 // Forward declaration of friend functions and operators
58 class className;
59 Istream& operator>>(Istream&, className&);
60 Ostream& operator<<(Ostream&, const className&);
63 /*---------------------------------------------------------------------------*\
64                           Class className Declaration
65 \*---------------------------------------------------------------------------*/
67 class className
69     public baseClassName
71     // Private data
73         //- Description of data_
74         dataType data_;
77     // Private Member Functions
79         //- Disallow default bitwise copy construct
80         className(const className&);
82         //- Disallow default bitwise assignment
83         void operator=(const className&);
86 public:
88     // Static data members
90         //- Static data staticData
91         static const dataType staticData;
94     // Constructors
96         //- Construct null
97         className();
99         //- Construct from components
100         className(const dataType& data);
102         //- Construct from Istream
103         className(Istream&);
105         //- Construct as copy
106         className(const className&);
109     // Selectors
111         //- Select null constructed
112         static autoPtr<className> New();
115     //- Destructor
116     ~className();
119     // Member Functions
121         // Access
123         // Check
125         // Edit
127         // Write
130     // Member Operators
132         void operator=(const className&);
135     // Friend Functions
137     // Friend Operators
139     // IOstream Operators
141         friend Istream& operator>>(Istream&, className&);
142         friend Ostream& operator<<(Ostream&, const className&);
146 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
148 } // End namespace Foam
150 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
152 #include "classNameI.H"
154 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
156 #endif
158 // ************************ vim: set sw=4 sts=4 et: ************************ //