initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / OpenFOAM / db / IOobjectList / IOobjectList.H
blob71c63f9d38d339667e12772734b58d2daa34c60a
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2009 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::IOobjectList
28 Description
29     List of IOobjects with searching and retrieving facilities.
31 SourceFiles
32     IOobjectList.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef IOobjectList_H
37 #define IOobjectList_H
39 #include "HashPtrTable.H"
40 #include "IOobject.H"
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
44 namespace Foam
47 /*---------------------------------------------------------------------------*\
48                            Class IOobjectList Declaration
49 \*---------------------------------------------------------------------------*/
51 class IOobjectList
53     public HashPtrTable<IOobject>
55     // Private Member Functions
57         //- Disallow default bitwise assignment
58         void operator=(const IOobjectList&);
61 public:
63     // Constructors
65         //- Construct given an initial estimate for the number of entries
66         explicit IOobjectList(const label nIoObjects = 128);
68         //- Construct from objectRegistry and instance path
69         IOobjectList
70         (
71             const objectRegistry& db,
72             const fileName& instance,
73             const fileName& local = ""
74         );
76         //- Construct as copy
77         IOobjectList(const IOobjectList&);
80     // Destructor
82         ~IOobjectList();
85     // Member functions
87         //- Add an IOobject to list
88         bool add(IOobject&);
90         //- Remove an IOobject from list
91         bool remove(IOobject&);
93         //- Lookup a given name and return IOobject ptr if found else NULL
94         IOobject* lookup(const word& name) const;
96         //- Return the list for all IOobjects of given class
97         IOobjectList lookupClass(const word& className) const;
99         //- Return the list of names of the IOobjects
100         wordList names() const;
102         //- Return the list of names of the IOobjects of given class
103         wordList names(const word& className) const;
107 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
109 } // End namespace Foam
111 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
113 #endif
115 // ************************************************************************* //