lsst.afw  20.0.0-14-g1a12fe12b+614f89f815
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>

Public Types

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

Public Member Functions

 FieldBase (int size=-1)
 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
 
int 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...
 
int 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 224 of file FieldBase.h.

Member Typedef Documentation

◆ ConstReference

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

Definition at line 231 of file FieldBase.h.

◆ Element

the type of subfields and array elements

Definition at line 233 of file FieldBase.h.

◆ Reference

the type returned by BaseRecord::operator[]

Definition at line 228 of file FieldBase.h.

◆ Value

the type returned by BaseRecord::get

Definition at line 225 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 289 of file FieldBase.h.

◆ getElementCount()

int 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 261 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 278 of file FieldBase.h.

◆ getSize()

int 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 265 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 75 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 77 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 268 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 272 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 90 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 275 of file FieldBase.h.


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