libbio
Loading...
Searching...
No Matches
Functions
bio::chemical::base_data Namespace Reference

Functions

bool IsArray (const Symmetry &symmetry)
 
bool IsMap (const Symmetry &symmetry)
 
bool IsMapEntry (const Symmetry &symmetry)
 
bool IsTag (const Symmetry &symmetry)
 
bool IsBaseDataStructural (const Symmetry &symmetry)
 
void InitArray (Symmetry &symmetry)
 
bool ArrayAppend (Symmetry &symmetry, Pointer< physical::Symmetry > child)
 
std::size_t ArraySize (const Symmetry &symmetry)
 
Pointer< physical::SymmetryArrayAt (Symmetry &symmetry, std::size_t index)
 
Pointer< const physical::SymmetryArrayAt (const Symmetry &symmetry, std::size_t index)
 
void InitMap (Symmetry &symmetry)
 
Pointer< SymmetryMakeMapEntry (Pointer< physical::Symmetry > key, Pointer< physical::Symmetry > value)
 
bool MapAppend (Symmetry &symmetry, Pointer< Symmetry > entry)
 
std::size_t MapSize (const Symmetry &symmetry)
 
Pointer< SymmetryMapEntryAt (Symmetry &symmetry, std::size_t index)
 
Pointer< const SymmetryMapEntryAt (const Symmetry &symmetry, std::size_t index)
 
Pointer< physical::SymmetryMapEntryKey (Symmetry &entry)
 
Pointer< const physical::SymmetryMapEntryKey (const Symmetry &entry)
 
Pointer< physical::SymmetryMapEntryValue (Symmetry &entry)
 
Pointer< const physical::SymmetryMapEntryValue (const Symmetry &entry)
 
void InitTag (Symmetry &symmetry, uint64_t tagNumber)
 
bool TagSetValue (Symmetry &symmetry, Pointer< physical::Symmetry > value)
 
bool TryGetTagNumber (const Symmetry &symmetry, uint64_t &out)
 
Pointer< physical::SymmetryTagValue (Symmetry &symmetry)
 
Pointer< const physical::SymmetryTagValue (const Symmetry &symmetry)
 
void ClearChildren (Symmetry &symmetry)
 

Function Documentation

◆ ArrayAppend()

bool bio::chemical::base_data::ArrayAppend ( Symmetry symmetry,
Pointer< physical::Symmetry child 
)

Append an already-constructed child symmetry to an Array. Assigns the canonical positional name ("0", "1", ...) to the child based on current size. Takes ownership of child.

Returns
true on success.

◆ ArrayAt() [1/2]

Pointer< const physical::Symmetry > bio::chemical::base_data::ArrayAt ( const Symmetry symmetry,
std::size_t  index 
)

◆ ArrayAt() [2/2]

Pointer< physical::Symmetry > bio::chemical::base_data::ArrayAt ( Symmetry symmetry,
std::size_t  index 
)

Get the child at the given positional index.

Returns
the child symmetry or NULL if out of range or if *this is not an Array.

◆ ArraySize()

std::size_t bio::chemical::base_data::ArraySize ( const Symmetry symmetry)
Returns
the number of array elements, or 0 if not an Array.

◆ ClearChildren()

void bio::chemical::base_data::ClearChildren ( Symmetry symmetry)

Delete and remove all child symmetries owned by *symmetry. Leaves the SymmetryType and scalar value untouched.

◆ InitArray()

void bio::chemical::base_data::InitArray ( Symmetry symmetry)

Initialize (or reset) *symmetry as a canonical Array. Sets the SymmetryType to Array and does not touch any existing children. Use ClearChildren first if you want to start empty.

◆ InitMap()

void bio::chemical::base_data::InitMap ( Symmetry symmetry)

◆ InitTag()

void bio::chemical::base_data::InitTag ( Symmetry symmetry,
uint64_t  tagNumber 
)

Initialize (or reset) *symmetry as a canonical Tag with the given tag number. Stores the tag number as ByteStream(uint64_t) on *symmetry's own value slot. Does not touch any existing "value" child.

◆ IsArray()

bool bio::chemical::base_data::IsArray ( const Symmetry symmetry)

Canonical structural base-data helpers for chemical::Symmetry.

These helpers enforce the child-name and child-count contracts for the structural kinds:

Array -> ordered child symmetries with positional names ("0", "1", ...) Map -> ordered MapEntry children with positional names MapEntry -> exactly two children named "key" and "value" Tag -> ByteStream(uint64_t) tag number + exactly one child named "value"

Unlike the physical scalar helpers, these operate on chemical::Symmetry because children are only introduced at the chemical layer (via LinearMotif< physical::Symmetry >).

All Append/Set helpers take ownership of the child symmetries passed in, matching the existing LinearMotif< physical::Symmetry > semantics used throughout Atom.cpp.

◆ IsBaseDataStructural()

bool bio::chemical::base_data::IsBaseDataStructural ( const Symmetry symmetry)

◆ IsMap()

bool bio::chemical::base_data::IsMap ( const Symmetry symmetry)

◆ IsMapEntry()

bool bio::chemical::base_data::IsMapEntry ( const Symmetry symmetry)

◆ IsTag()

bool bio::chemical::base_data::IsTag ( const Symmetry symmetry)

◆ MakeMapEntry()

Pointer< Symmetry > bio::chemical::base_data::MakeMapEntry ( Pointer< physical::Symmetry key,
Pointer< physical::Symmetry value 
)

Create a fresh MapEntry symmetry containing the given key and value children. Takes ownership of key and value. The returned symmetry is heap-allocated and should be appended to a Map via MapAppend (which transfers ownership).

◆ MapAppend()

bool bio::chemical::base_data::MapAppend ( Symmetry symmetry,
Pointer< Symmetry entry 
)

Append a MapEntry to a Map. Assigns the canonical positional name. Takes ownership of entry.

Returns
true on success; false if either argument is invalid or symmetry is not a Map.

◆ MapEntryAt() [1/2]

Pointer< const Symmetry > bio::chemical::base_data::MapEntryAt ( const Symmetry symmetry,
std::size_t  index 
)

◆ MapEntryAt() [2/2]

Pointer< Symmetry > bio::chemical::base_data::MapEntryAt ( Symmetry symmetry,
std::size_t  index 
)

Get the MapEntry at the given positional index.

Returns
the entry or NULL.

◆ MapEntryKey() [1/2]

Pointer< const physical::Symmetry > bio::chemical::base_data::MapEntryKey ( const Symmetry entry)

◆ MapEntryKey() [2/2]

Pointer< physical::Symmetry > bio::chemical::base_data::MapEntryKey ( Symmetry entry)

Retrieve the key/value children of a MapEntry.

Returns
the named child or NULL if not present / not a MapEntry.

◆ MapEntryValue() [1/2]

Pointer< const physical::Symmetry > bio::chemical::base_data::MapEntryValue ( const Symmetry entry)

◆ MapEntryValue() [2/2]

Pointer< physical::Symmetry > bio::chemical::base_data::MapEntryValue ( Symmetry entry)

◆ MapSize()

std::size_t bio::chemical::base_data::MapSize ( const Symmetry symmetry)
Returns
the number of map entries, or 0 if not a Map.

◆ TagSetValue()

bool bio::chemical::base_data::TagSetValue ( Symmetry symmetry,
Pointer< physical::Symmetry value 
)

Set the wrapped value child of a Tag. Replaces any existing "value" child. Takes ownership of value.

Returns
true on success.

◆ TagValue() [1/2]

Pointer< const physical::Symmetry > bio::chemical::base_data::TagValue ( const Symmetry symmetry)

◆ TagValue() [2/2]

Pointer< physical::Symmetry > bio::chemical::base_data::TagValue ( Symmetry symmetry)

Get the wrapped value child of a Tag.

Returns
the child or NULL if not a Tag or no "value" child is present.

◆ TryGetTagNumber()

bool bio::chemical::base_data::TryGetTagNumber ( const Symmetry symmetry,
uint64_t out 
)

Read the tag number into out.

Returns
true iff symmetry is a canonical Tag.