DynamicListIO.C
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2021 OpenCFD Ltd.
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 \*---------------------------------------------------------------------------*/
27 
28 #include "List.H"
29 #include "Istream.H"
30 #include "token.H"
31 #include "SLList.H"
32 #include "contiguous.H"
33 
34 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
35 
36 template<class T, int SizeMin>
38 :
39  List<T>(),
40  capacity_(0)
41 {
42  this->readList(is);
43 }
44 
45 
46 // * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
47 
48 template<class T, int SizeMin>
50 (
51  Istream& is
52 )
53 {
54  DynamicList<T, SizeMin>& list = *this;
55 
56  // Needs rewrite (2021-10)
57  // Use entire storage - ie, resize(capacity())
58  (void) list.expandStorage();
59 
60  static_cast<List<T>&>(list).readList(is);
61  list.capacity_ = list.size();
62 
63  return is;
64 }
65 
66 
67 // ************************************************************************* //
token.H
Foam::DynamicList::DynamicList
constexpr DynamicList() noexcept
Default construct, an empty list without allocation.
Definition: DynamicListI.H:138
List.H
Foam::DynamicList
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
Definition: DynamicList.H:55
Foam::DynamicList::expandStorage
label expandStorage() noexcept
Expand the addressable size to fit the allocated capacity.
Definition: DynamicListI.H:406
Foam::DynamicList::readList
Istream & readList(Istream &is)
Read from Istream, discarding existing contents.
Definition: DynamicListIO.C:50
Foam::Istream
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
Definition: Istream.H:61
Istream.H
T
const volScalarField & T
Definition: createFieldRefs.H:2
SLList.H
Non-intrusive singly-linked list.
contiguous.H
Foam::List
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Definition: BitOps.H:63