lsst.afw  22.0.1-39-g816bf8776+e9ecb060fe
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | List of all members
lsst::afw::table::FieldBase< std::string > Struct Reference

Field base class specialization for strings. More...

#include <FieldBase.h>

Inheritance diagram for lsst::afw::table::FieldBase< std::string >:
lsst::afw::table::Key< std::string >

Public Types

using Value = std::string
 the type returned by BaseRecord::get More...
 
using Reference = char *
 the type returned by BaseRecord::operator[] More...
 
using ConstReference = const char *
 the type returned by BaseRecord::operator[] (const) More...
 
using Element = char
 the type of subfields and array elements More...
 

Public Member Functions

 FieldBase (std::size_t size=std::numeric_limits< size_t >::max())
 Construct a FieldBase with the given size. More...
 
 FieldBase (FieldBase const &) noexcept=default
 
 FieldBase (FieldBase &&) noexcept=default
 
FieldBaseoperator= (FieldBase const &) noexcept=default
 
FieldBaseoperator= (FieldBase &&) noexcept=default
 
 ~FieldBase () noexcept=default
 
std::size_t getElementCount () const noexcept
 Return the number of subfield elements (equal to the size of the string, including a null terminator), or 0 for a variable-length string. More...
 
std::size_t getSize () const noexcept
 Return the maximum length of the string, including a null terminator (equal to the number of subfield elements), or 0 for a variable-length string. More...
 
bool isVariableLength () const noexcept
 Return true if the field is variable-length (each record can have a different size array). More...
 

Static Public Member Functions

static std::string getTypeString ()
 Return a string description of the field type. More...
 

Protected Member Functions

void stream (std::ostream &os) const
 Defines how Fields are printed. More...
 
Reference getReference (Element *p, ndarray::Manager::Ptr const &m) const
 Used to implement BaseRecord::operator[] (non-const). More...
 
ConstReference getConstReference (Element const *p, ndarray::Manager::Ptr const &m) const
 Used to implement BaseRecord::operator[] (const). More...
 
Value getValue (Element const *p, ndarray::Manager::Ptr const &m) const
 Used to implement BaseRecord::get. More...
 
void setValue (Element *p, ndarray::Manager::Ptr const &, std::string const &value) const
 Used to implement BaseRecord::set Fixed-lengths strings are handled by copying the data into p through p + _size, nulling extra characters, if any. More...
 

Static Protected Member Functions

static FieldBase makeDefault () noexcept
 Needed to allow Keys to be default-constructed. More...
 

Detailed Description

Field base class specialization for strings.

Definition at line 218 of file FieldBase.h.

Member Typedef Documentation

◆ ConstReference

the type returned by BaseRecord::operator[] (const)

Definition at line 225 of file FieldBase.h.

◆ Element

the type of subfields and array elements

Definition at line 227 of file FieldBase.h.

◆ Reference

the type returned by BaseRecord::operator[]

Definition at line 222 of file FieldBase.h.

◆ Value

the type returned by BaseRecord::get

Definition at line 219 of file FieldBase.h.

Constructor & Destructor Documentation

◆ FieldBase() [1/3]

Construct a FieldBase with the given size.

A size == 0 indicates a variable-length string. Negative sizes are not permitted.

This constructor is implicit and has an invalid default so it can be used in the Field constructor (as if it were an int argument) without specializing Field. In other words, it allows one to construct a 25-character string field like this:

Field< std::string >("name", "documentation", 25);

...even though the third argument to the Field constructor takes a FieldBase, not an int.

Definition at line 69 of file FieldBase.cc.

◆ FieldBase() [2/3]

◆ FieldBase() [3/3]

◆ ~FieldBase()

Member Function Documentation

◆ getConstReference()

ConstReference lsst::afw::table::FieldBase< std::string >::getConstReference ( Element const *  p,
ndarray::Manager::Ptr const &  m 
) const
inlineprotected

Used to implement BaseRecord::operator[] (const).

Definition at line 283 of file FieldBase.h.

◆ getElementCount()

std::size_t lsst::afw::table::FieldBase< std::string >::getElementCount ( ) const
inlinenoexcept

Return the number of subfield elements (equal to the size of the string, including a null terminator), or 0 for a variable-length string.

Definition at line 255 of file FieldBase.h.

◆ getReference()

Reference lsst::afw::table::FieldBase< std::string >::getReference ( Element p,
ndarray::Manager::Ptr const &  m 
) const
inlineprotected

Used to implement BaseRecord::operator[] (non-const).

Definition at line 272 of file FieldBase.h.

◆ getSize()

std::size_t lsst::afw::table::FieldBase< std::string >::getSize ( ) const
inlinenoexcept

Return the maximum length of the string, including a null terminator (equal to the number of subfield elements), or 0 for a variable-length string.

Definition at line 259 of file FieldBase.h.

◆ getTypeString()

std::string lsst::afw::table::FieldBase< std::string >::getTypeString ( )
static

Return a string description of the field type.

Definition at line 72 of file FieldBase.cc.

◆ getValue()

std::string lsst::afw::table::FieldBase< std::string >::getValue ( Element const *  p,
ndarray::Manager::Ptr const &  m 
) const
protected

Used to implement BaseRecord::get.

Definition at line 74 of file FieldBase.cc.

◆ isVariableLength()

bool lsst::afw::table::FieldBase< std::string >::isVariableLength ( ) const
inlinenoexcept

Return true if the field is variable-length (each record can have a different size array).

Definition at line 262 of file FieldBase.h.

◆ makeDefault()

static FieldBase lsst::afw::table::FieldBase< std::string >::makeDefault ( )
inlinestaticprotectednoexcept

Needed to allow Keys to be default-constructed.

Definition at line 266 of file FieldBase.h.

◆ operator=() [1/2]

FieldBase& lsst::afw::table::FieldBase< std::string >::operator= ( FieldBase< std::string > &&  )
defaultnoexcept

◆ operator=() [2/2]

FieldBase& lsst::afw::table::FieldBase< std::string >::operator= ( FieldBase< std::string > const &  )
defaultnoexcept

◆ setValue()

void lsst::afw::table::FieldBase< std::string >::setValue ( Element p,
ndarray::Manager::Ptr const &  ,
std::string const &  value 
) const
protected

Used to implement BaseRecord::set Fixed-lengths strings are handled by copying the data into p through p + _size, nulling extra characters, if any.

The data is only null-terminated if value.size() < _size. Variable-length strings are handled by setting p to the address of a std::string that is a copy of value

Definition at line 87 of file FieldBase.cc.

◆ stream()

void lsst::afw::table::FieldBase< std::string >::stream ( std::ostream os) const
inlineprotected

Defines how Fields are printed.

Definition at line 269 of file FieldBase.h.


The documentation for this struct was generated from the following files: