walberla::selectable::AllSetSelectableObject< T, U > Class Template Reference

Detailed Description

template<typename T, typename U>
class walberla::selectable::AllSetSelectableObject< T, U >

Implementation of SelectableObject using sets (see "AllSet.h") as selection attributes.

AllSetSelectableObject is an implementation of SelectableObject that stores objects of type T which are attached with selection attributes of type AllSet<U>. For information on which objects are selected given a certain set as selection request see the documentation of the function "select".

#include <AllSetSelectableObject.h>

+ Inheritance diagram for walberla::selectable::AllSetSelectableObject< T, U >:

Classes

struct  Compare
 

Private Member Functions

virtual void select (std::vector< size_t > &index, const AllSet< U > &selector) const
 Given a certain selection request 'R' (= "selector" [set of objects of type U]), this function returns the index 'i' of every attribute set 'A_i' (A_0 <=> attributes_[0], A_1 <=> attributes_[1], etc.) that matches the request 'R'. More...
 

Additional Inherited Members

- Public Member Functions inherited from walberla::selectable::SelectableObject< T, AllSet< U >, AllSet< U > >
virtual ~SelectableObject ()=default
 
void add (const T &object, const AllSet< U > &attributes, const std::string &identifier=std::string())
 This function is used to add an object together with its selection attributes stored in "attributes". More...
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
size_t getNumberOfMatching (const AllSet< U > &selector) const
 Returns the number of objects matching the specified "selector". More...
 
size_t get (T &object, const AllSet< U > &selector) const
 This function can be used to retrieve the one object whose attributes match with "selector". More...
 
void get (std::vector< T > &object, const AllSet< U > &selector) const
 This function can be used to retrieve all objects whose attributes match with the selector "selector". More...
 
size_t get (T &object, std::string &identifier, const AllSet< U > &selector) const
 This function can be used to retrieve the one object whose attributes match with "selector". More...
 
void get (std::vector< T > &object, std::vector< std::string > &identifier, const AllSet< U > &selector) const
 This function can be used to retrieve all objects whose attributes match with the selector "selector". More...
 
T * getUnique (const AllSet< U > &selector)
 Non-const version of getUnique(). More...
 
const T * getUnique (const AllSet< U > &selector) const
 This function can be used to retrieve a pointer (!) to the object whose attributes match with "selector". More...
 
T * getUnique (const AllSet< U > &selector, std::string &identifierOut)
 Non-const version of getUnique(const S&, std::string& ). More...
 
const T * getUnique (const AllSet< U > &selector, std::string &identifierOut) const
 This function is similar to getUnique(const S &selector) but takes an additional output parameter identifier, which is set to the string identifier of the selected object, if a non-zero pointer is returned, otherwise the identifier string is not changed. More...
 
void toStream (std::ostream &os) const
 
std::string toString () const
 
size_t size () const
 
bool empty () const
 
- Protected Attributes inherited from walberla::selectable::SelectableObject< T, AllSet< U >, AllSet< U > >
std::vector< AllSet< U > > attributes_
 

Member Function Documentation

◆ select()

template<typename T , typename U >
void walberla::selectable::AllSetSelectableObject< T, U >::select ( std::vector< size_t > &  index,
const AllSet< U > &  selector 
) const
privatevirtual

Given a certain selection request 'R' (= "selector" [set of objects of type U]), this function returns the index 'i' of every attribute set 'A_i' (A_0 <=> attributes_[0], A_1 <=> attributes_[1], etc.) that matches the request 'R'.

Possible candidates are:

  • for "normal" sets: sets 'A_i' that are completely contained within the set 'R'
  • for "all" sets (see "AllSet.h"): sets 'A_i' that completely contain the set 'R' Out of these possible candidates, the set A_x that contains most elements is chosen. Additionally, out of these candidates, every set that contains as many elements as A_x and every set that contains as many or even more elements than the selection request 'R' is also chosen.

Implements walberla::selectable::SelectableObject< T, AllSet< U >, AllSet< U > >.


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