Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::AnyItem::LinkFamilyInternal Class Reference

Internal AnyItem Link Family The stored data are the local IDs of the items and the group offset within the family. More...

#include <arcane/core/anyitem/AnyItemLinkFamily.h>

Inheritance diagram for Arcane::AnyItem::LinkFamilyInternal:
Collaboration diagram for Arcane::AnyItem::LinkFamilyInternal:

Classes

class  LinkData
 Data per link. More...
class  LinkIndex
 Link index. More...
class  Enumerator
 Link enumerator. More...
 Link. More...

Public Member Functions

 LinkFamilyInternal (const Family &family)
 Link family for an anyitem family.
Link newLink ()
 Creation of a new empty link.
void reserve (Integer size)
 Reserves a capacity of links.
Enumerator enumerator () const
 Link enumerators.
Integer capacity () const
 returns the capacity
void clear ()
 Clears the family.
void registerObserver (ILinkFamilyObserver &observer) const
 Registers a family observer.
void removeObserver (ILinkFamilyObserver &observer) const
 Removes a family observer.
void notifyFamilyIsInvalidate ()
 Notifies that the family is invalidated.
void notifyFamilyIsIncreased ()
 Notifies the observer that the family has been increased.
template<typename T, typename V>
void addSourceNode (const T &t, ItemGroupT< V > group)
template<typename T, typename V>
void addTargetNode (const T &t, ItemGroupT< V > group)
const LinkDatasource (const LinkIndex &link) const
const LinkDatatarget (const LinkIndex &link) const
const Familyfamily () const
template<typename T>
void initLinkData (LinkData &data, const T &t, ItemGroupT< T > group) const
 Adding link nodes by item type.
template<typename T>
void initLinkData (LinkData &data, const ItemEnumeratorT< T > &t, ItemGroupT< T > group) const
 Adding link nodes by enumerators.
Item item (const LinkData &link_data) const
 Returns the concrete item associated with this AnyItem.

Private Types

typedef std::set< ILinkFamilyObserver * > LinkFamilyObservers

Private Member Functions

void _notifyFamilyIsInvalidate ()
void _notifyFamilyIsReserved ()

Private Attributes

const Family m_family
 AnyItem family.
Arcane::UniqueArray< LinkDatam_source_nodes
 Back data.
Arcane::UniqueArray< LinkDatam_target_nodes
 Front data.
Integer m_nb_link
 Number of links.
LinkFamilyObservers m_observers
 Family observers.

Detailed Description

Internal AnyItem Link Family The stored data are the local IDs of the items and the group offset within the family.

For example:

AnyItem::LinkFamily link_family(family); link_family.reserve(allFaces.size());

ENUMERATE_FACE(iface, allCells().internalFaceGroup()) { AnyItem::LinkFamily::Link link = link_family.newLink(); link(allFaces(),allCells()) << AnyItem::Pair(iface,iface->backCell()); }

Definition at line 68 of file AnyItemLinkFamily.h.

Member Typedef Documentation

◆ LinkFamilyObservers

typedef std::set<ILinkFamilyObserver*> Arcane::AnyItem::LinkFamilyInternal::LinkFamilyObservers
private

Definition at line 304 of file AnyItemLinkFamily.h.

Constructor & Destructor Documentation

◆ LinkFamilyInternal()

Arcane::AnyItem::LinkFamilyInternal::LinkFamilyInternal ( const Family & family)
inline

Link family for an anyitem family.

Definition at line 309 of file AnyItemLinkFamily.h.

References m_family, and m_nb_link.

◆ ~LinkFamilyInternal()

Arcane::AnyItem::LinkFamilyInternal::~LinkFamilyInternal ( )
inline

Definition at line 316 of file AnyItemLinkFamily.h.

Member Function Documentation

◆ _notifyFamilyIsInvalidate()

void Arcane::AnyItem::LinkFamilyInternal::_notifyFamilyIsInvalidate ( )
inlineprivate

Definition at line 512 of file AnyItemLinkFamily.h.

◆ _notifyFamilyIsReserved()

void Arcane::AnyItem::LinkFamilyInternal::_notifyFamilyIsReserved ( )
inlineprivate

Definition at line 518 of file AnyItemLinkFamily.h.

◆ addSourceNode()

template<typename T, typename V>
void Arcane::AnyItem::LinkFamilyInternal::addSourceNode ( const T & t,
ItemGroupT< V > group )
inline

Definition at line 396 of file AnyItemLinkFamily.h.

◆ addTargetNode()

template<typename T, typename V>
void Arcane::AnyItem::LinkFamilyInternal::addTargetNode ( const T & t,
ItemGroupT< V > group )
inline

Definition at line 403 of file AnyItemLinkFamily.h.

◆ capacity()

Integer Arcane::AnyItem::LinkFamilyInternal::capacity ( ) const
inline

returns the capacity

Definition at line 347 of file AnyItemLinkFamily.h.

References m_source_nodes.

Referenced by newLink().

Here is the caller graph for this function:

◆ clear()

void Arcane::AnyItem::LinkFamilyInternal::clear ( )
inline

Clears the family.

Definition at line 353 of file AnyItemLinkFamily.h.

References m_nb_link, m_source_nodes, and m_target_nodes.

Referenced by notifyFamilyIsInvalidate().

Here is the caller graph for this function:

◆ enumerator()

Enumerator Arcane::AnyItem::LinkFamilyInternal::enumerator ( ) const
inline

Link enumerators.

Definition at line 344 of file AnyItemLinkFamily.h.

References m_source_nodes, and m_target_nodes.

◆ family()

const Family & Arcane::AnyItem::LinkFamilyInternal::family ( ) const
inline

Definition at line 421 of file AnyItemLinkFamily.h.

◆ initLinkData() [1/2]

template<typename T>
void Arcane::AnyItem::LinkFamilyInternal::initLinkData ( LinkData & data,
const ItemEnumeratorT< T > & t,
ItemGroupT< T > group ) const
inline

Adding link nodes by enumerators.

Definition at line 489 of file AnyItemLinkFamily.h.

References Arcane::ItemEnumeratorBase::index(), Arcane::ItemEnumeratorBase::localId(), and m_family.

Here is the call graph for this function:

◆ initLinkData() [2/2]

template<typename T>
void Arcane::AnyItem::LinkFamilyInternal::initLinkData ( LinkData & data,
const T & t,
ItemGroupT< T > group ) const
inline

Adding link nodes by item type.

Definition at line 470 of file AnyItemLinkFamily.h.

References Arcane::ItemGroup::localIdToIndex(), and m_family.

Here is the call graph for this function:

◆ item()

Item Arcane::AnyItem::LinkFamilyInternal::item ( const LinkData & link_data) const
inline

Returns the concrete item associated with this AnyItem.

Definition at line 505 of file AnyItemLinkFamily.h.

References m_family.

◆ newLink()

Link Arcane::AnyItem::LinkFamilyInternal::newLink ( )
inline

Creation of a new empty link.

Definition at line 322 of file AnyItemLinkFamily.h.

References capacity(), m_nb_link, m_source_nodes, and m_target_nodes.

Here is the call graph for this function:

◆ notifyFamilyIsIncreased()

void Arcane::AnyItem::LinkFamilyInternal::notifyFamilyIsIncreased ( )
inlinevirtual

Notifies the observer that the family has been increased.

Implements Arcane::AnyItem::IFamilyObserver.

Definition at line 388 of file AnyItemLinkFamily.h.

◆ notifyFamilyIsInvalidate()

void Arcane::AnyItem::LinkFamilyInternal::notifyFamilyIsInvalidate ( )
inlinevirtual

Notifies that the family is invalidated.

Implements Arcane::AnyItem::IFamilyObserver.

Definition at line 380 of file AnyItemLinkFamily.h.

References clear().

Here is the call graph for this function:

◆ registerObserver()

void Arcane::AnyItem::LinkFamilyInternal::registerObserver ( ILinkFamilyObserver & observer) const
inline

Registers a family observer.

Definition at line 362 of file AnyItemLinkFamily.h.

References m_observers.

◆ removeObserver()

void Arcane::AnyItem::LinkFamilyInternal::removeObserver ( ILinkFamilyObserver & observer) const
inline

Removes a family observer.

Definition at line 371 of file AnyItemLinkFamily.h.

References m_observers.

◆ reserve()

void Arcane::AnyItem::LinkFamilyInternal::reserve ( Integer size)
inline

Reserves a capacity of links.

Definition at line 336 of file AnyItemLinkFamily.h.

References m_source_nodes, and m_target_nodes.

◆ source()

const LinkData & Arcane::AnyItem::LinkFamilyInternal::source ( const LinkIndex & link) const
inline

Definition at line 409 of file AnyItemLinkFamily.h.

◆ target()

const LinkData & Arcane::AnyItem::LinkFamilyInternal::target ( const LinkIndex & link) const
inline

Definition at line 414 of file AnyItemLinkFamily.h.

Member Data Documentation

◆ m_family

const Family Arcane::AnyItem::LinkFamilyInternal::m_family
private

AnyItem family.

Definition at line 527 of file AnyItemLinkFamily.h.

Referenced by initLinkData(), initLinkData(), item(), and LinkFamilyInternal().

◆ m_nb_link

Integer Arcane::AnyItem::LinkFamilyInternal::m_nb_link
private

Number of links.

Definition at line 536 of file AnyItemLinkFamily.h.

Referenced by clear(), LinkFamilyInternal(), and newLink().

◆ m_observers

LinkFamilyObservers Arcane::AnyItem::LinkFamilyInternal::m_observers
mutableprivate

Family observers.

Definition at line 540 of file AnyItemLinkFamily.h.

Referenced by registerObserver(), and removeObserver().

◆ m_source_nodes

Arcane::UniqueArray<LinkData> Arcane::AnyItem::LinkFamilyInternal::m_source_nodes
private

Back data.

Definition at line 530 of file AnyItemLinkFamily.h.

Referenced by capacity(), clear(), enumerator(), newLink(), and reserve().

◆ m_target_nodes

Arcane::UniqueArray<LinkData> Arcane::AnyItem::LinkFamilyInternal::m_target_nodes
private

Front data.

Definition at line 533 of file AnyItemLinkFamily.h.

Referenced by clear(), enumerator(), newLink(), and reserve().


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