Go to the documentation of this file.
33 template<
unsigned W
idth>
42 template<
unsigned W
idth>
49 os << token::BEGIN_LIST <<
nl;
51 const label nblocks = debugOutput ? blocks_.size() : num_blocks(size());
52 for (label blocki = 0; blocki < nblocks; ++blocki)
57 os << token::END_LIST <<
nl;
63 template<
unsigned W
idth>
75 is.
fatalCheck(
"PackedList::readList(Istream&) : reading first token");
84 if (is.
format() == IOstream::BINARY)
95 "PackedList::readList(Istream&) : "
96 "reading the binary block"
107 if (delimiter == token::BEGIN_LIST)
109 for (label i=0; i<len; ++i)
115 "PackedList::readList(Istream&) : "
127 "PackedList::readList(Istream&) : "
128 "reading the single entry"
142 while (!tok.isPunctuation(token::END_LIST))
156 while (!tok.isPunctuation(token::END_BLOCK))
168 <<
"incorrect first token, expected <int>, '(' or '{', found "
177 template<
unsigned W
idth>
185 const label len = list.
size();
187 if (
os.format() == IOstream::BINARY)
199 else if (len > 1 && list.
uniform())
202 os << len << token::BEGIN_BLOCK << list[0] << token::END_BLOCK;
204 else if (!shortLen || len <= shortLen)
209 os << len << token::BEGIN_LIST;
212 for (label i=0; i < len; ++i)
214 if (i)
os << token::SPACE;
215 os << label(list.
get(i));
219 os << token::END_LIST;
226 os <<
nl << len <<
nl << token::BEGIN_LIST <<
nl;
229 for (label i=0; i < len; ++i)
231 os << label(list.
get(i)) <<
nl;
235 os << token::END_LIST <<
nl;
242 template<
unsigned W
idth>
251 os.writeKeyword(keyword);
254 os << token::END_STATEMENT <<
endl;
260 template<
unsigned W
idth>
267 template<
unsigned W
idth>
271 const InfoProxy<PackedList<Width>>& iproxy
274 const PackedList<Width>& list = iproxy.t_;
276 os <<
"PackedList<" << Width
277 <<
"> size=" << list.size() <<
"/" << list.capacity()
278 <<
" (limits: max=" << PackedList<Width>::max_value
279 <<
", elem_per_block=" << PackedList<Width>::elem_per_block
void resize(const label numElem, const unsigned int val=0u)
Reset addressable list size, does not shrink the allocated size.
label labelToken() const
Return label value.
Useful combination of include files which define Sin, Sout and Serr and the use of IO streams general...
bool isLabel() const noexcept
Token is LABEL.
A class for handling words, derived from Foam::string.
char readBeginList(const char *funcName)
Begin read of list data, starts with '(' or '{'.
bool fatalCheck(const char *operation) const
Check IOstream status for given operation.
streamFormat format() const noexcept
Get the current stream format.
std::streamsize size_bytes() const noexcept
char readEndList(const char *funcName)
End read of list data, ends with ')' or '}'.
Istream & readList(Istream &is)
Clear list and read from stream.
Istream & operator>>(Istream &, directionInfo &)
Ostream & endl(Ostream &os)
Add newline and flush stream.
A token holds an item read from Istream.
unsigned int get(const label i) const
Get value at index i or 0 for out-of-range.
const char * cdata_bytes() const noexcept
A const pointer to the raw storage, reinterpreted as byte data.
bool uniform() const
True if all entries have identical values, and list is non-empty.
Ostream & printBits(Ostream &os, bool debugOutput=false) const
Print bit patterns, optionally with extra debug.
InfoProxy< token > info() const
Return info proxy for printing token information to a stream.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
bool isPunctuation() const noexcept
Token is PUNCTUATION.
Ostream & writeList(Ostream &os, const label shortLen=0) const
Write List, with line-breaks in ASCII when length exceeds shortLen.
OBJstream os(runTime.globalPath()/outputName)
PackedList< Width > & append(const unsigned int val)
Append a value at the end of the list.
void setPair(Istream &is)
Read an index/value pair and set accordingly.
errorManipArg< error, int > exit(error &err, const int errNo=1)
void writeEntry(Ostream &os) const
Write as a dictionary entry.
A dynamic list of packed unsigned integers, with the number of bits per item specified by the <Width>...
void putBack(const token &tok)
Put back a token. Only a single put back is permitted.
label size() const noexcept
Number of entries.
Ostream & print(Ostream &os, UIntType value, char off='0', char on='1')
Print 0/1 bits in the (unsigned) integral type.
char * data_bytes() noexcept
A pointer to the raw storage, reinterpreted as byte data.
bool set(const label i, unsigned int val=~0u)
Set value at index i, default value set is the max_value.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
void clear()
Clear the list, i.e. set addressable size to zero.
static unsigned int readValue(Istream &is)
Read a list entry (allows for specialization)
virtual Istream & read(token &)=0
Return next token from stream.