Free Electron
Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | Friends | List of all members
fe::LayoutAV Class Reference

Record "type" definition. More...

#include <LayoutAV.h>

Inheritance diagram for fe::LayoutAV:
Inheritance graph
[legend]

Public Member Functions

 LayoutAV (sp< Scope > &scope)
 
 LayoutAV (sp< Scope > &scope, const String &name)
 
 LayoutAV (Scope *pScope, const String &name)
 
LayoutAVcopy (const LayoutAV &other)
 
virtual void initialize (void)
 
virtual void populate (const String &attribute_name)
 Convienience function to Scope::populate. More...
 
virtual void populate (const String &attribute_name, const String &attribute_type)
 Convienience function to Scope::populate. More...
 
virtual void populate (const BaseAccessor &accessor)
 Convienience function to Scope::populate. More...
 
virtual void populate (sp< Attribute > spAttribute)
 Convienience function to Scope::populate. More...
 
void populate (sp< LayoutAV > spLayout)
 Convienience function to Scope::populate. More...
 
virtual void setName (const String &name)
 
virtual const Stringname (void) const
 
virtual const String verboseName (void) const
 
virtual void setConstruct (bool construct)
 
virtual const bool & construct (void) const
 
virtual hp< Scope > & scope (void)
 
virtual void peek (Peeker &peeker)
 
virtual FE_UWORD attributeCount (void) const
 
virtual sp< Attributeattribute (FE_UWORD localIndex)
 
virtual bool checkAttribute (FE_UWORD a_locator) const
 
virtual bool checkAttributeStr (const String &a_name)
 
virtual void resizeLocatorTable (FE_UWORD a_size)
 
RecordAV createRecord (void)
 
void createRecord (RecordAV &r_new)
 
void freeArrayIndex (const FE_UWORD &aArrayIndex)
 
virtual void notifyOfAttributeChange (sp< Depend > &depend)
 
FE_UWORD avSize (void)
 
void * baseOfAV (FE_UWORD a_locatorIndex)
 
- Public Member Functions inherited from fe::Initialized
void initializeAll (void)
 
void setActive (bool a_active)
 

Static Public Attributes

static const FE_DL_PUBLIC FE_UWORD locatorNone = (FE_UWORD)(-1)
 
static const FE_DL_PUBLIC FE_UWORD arrayindexNone = (FE_UWORD)(-1)
 

Private Member Functions

 LayoutAV (const LayoutAV &other)
 
LayoutAVoperator= (const LayoutAV &other)
 
void constructor (sp< Scope > &scope)
 
void addMissingAttributes (void)
 
void assignDefaultAttributes (RecordAV &r_new)
 
void destructAttributes (const FE_UWORD &a_arrayIndex)
 
Array< sp< BaseTypeVector > > & attributeVector (void)
 
Array< FE_UWORD > & locatorTable (void)
 
const FE_UWORD & idr (const FE_UWORD &a_index) const
 
void acquireArrayIndex (const FE_UWORD &aArrayIndex)
 
void releaseArrayIndex (const FE_UWORD &aArrayIndex)
 
unsigned int serialIndex (void) const
 
void startUsing (void)
 
bool isExactlyBitset (const t_bitset a_bitset) override
 
bool containsBitset (const t_bitset a_bitset) override
 
void createRecords (RecordAV &r_new, U32 a_count)
 
void * voidAccess (const FE_UWORD &a_locatorIndex, const FE_UWORD &a_arrayIndex) const
 

Private Attributes

String m_name
 
hp< Scopem_hpScope
 
Array< sp< BaseTypeVector > > m_attributeVector
 
Array< FE_UWORD > m_locatorTable
 
Array< FE_UWORD > m_idr
 
std::set< FE_UWORD > m_freeList
 
FE_UWORD m_avSize
 
FE_UWORD m_allocSize
 
sp< TypeVector< std::atomic< int > > > m_rc
 
sp< TypeVector< std::atomic< int > > > m_sn
 
bool m_construct
 
unsigned int m_serialIndex
 
bool m_in_use
 
bool m_need_defaults
 

Friends

class RecordAV
 
class WeakRecordAV
 
class RecordArrayAV
 

Additional Inherited Members

- Protected Types inherited from fe::Initialized
typedef void(* InitializeFunction) (Initialized *)
 
- Protected Member Functions inherited from fe::Initialized
void addInitializer (InitializeFunction function)
 

Detailed Description

Record "type" definition.

A Layout is a definition of Attribute layout in Record instances.

Layout objects can only be created via a Scope. For typical use all operations on Layout objects are also done through Scope methods.

Todo:
full data system guide

Member Function Documentation

◆ populate() [1/5]

void fe::LayoutAV::populate ( const String attribute_name)
virtual

Convienience function to Scope::populate.

References fe::Component::name().

◆ populate() [2/5]

void fe::LayoutAV::populate ( const String attribute_name,
const String attribute_type 
)
virtual

Convienience function to Scope::populate.

References fe::Component::name().

◆ populate() [3/5]

void fe::LayoutAV::populate ( const BaseAccessor accessor)
virtual

Convienience function to Scope::populate.

This particular one does a check if the layout is locked and if so verifys the exsitence of the attribute.

References fe::Component::name().

◆ populate() [4/5]

void fe::LayoutAV::populate ( sp< Attribute spAttribute)
virtual

Convienience function to Scope::populate.

References fe::Component::name().

◆ populate() [5/5]

void fe::LayoutAV::populate ( sp< LayoutAV spLayout)

Convienience function to Scope::populate.

References fe::Component::name().


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