MOOSE - Multiscale Object Oriented Simulation Environment
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
ElementValueFinfo< T, F > Class Template Reference

#include <ElementValueFinfo.h>

+ Inheritance diagram for ElementValueFinfo< T, F >:
+ Collaboration diagram for ElementValueFinfo< T, F >:

Public Member Functions

 ElementValueFinfo (const string &name, const string &doc, void(T::*setFunc)(const Eref &, F), F(T::*getFunc)(const Eref &) const )
 
void registerFinfo (Cinfo *c)
 
string rttiType () const
 
bool strGet (const Eref &tgt, const string &field, string &returnValue) const
 
bool strSet (const Eref &tgt, const string &field, const string &arg) const
 
 ~ElementValueFinfo ()
 
- Public Member Functions inherited from ValueFinfoBase
DestFinfogetFinfo () const
 
vector< string > innerDest () const
 
 ValueFinfoBase (const string &name, const string &doc)
 
 ~ValueFinfoBase ()
 
- Public Member Functions inherited from Finfo
virtual bool addMsg (const Finfo *target, ObjId mid, Element *src) const
 
virtual bool checkTarget (const Finfo *target) const
 
const string & docs () const
 Returns documentation string. More...
 
 Finfo (const string &name, const string &doc)
 
virtual vector< string > innerSrc () const
 
const string & name () const
 
virtual void postCreationFunc (Id newId, Element *newElm) const
 
virtual ~Finfo ()
 

Additional Inherited Members

- Static Public Member Functions inherited from Finfo
static const CinfoinitCinfo ()
 
- Protected Attributes inherited from ValueFinfoBase
DestFinfoget_
 
DestFinfoset_
 

Detailed Description

template<class T, class F>
class ElementValueFinfo< T, F >

This variant of ValueFinfo provides facilities to set and get values of fields that require information about the managing Element

Definition at line 18 of file ElementValueFinfo.h.

Constructor & Destructor Documentation

template<class T, class F>
ElementValueFinfo< T, F >::~ElementValueFinfo ( )
inline

Definition at line 21 of file ElementValueFinfo.h.

References ValueFinfoBase::get_, and ValueFinfoBase::set_.

21  {
22  delete set_;
23  delete get_;
24  }
DestFinfo * get_
Definition: ValueFinfo.h:33
DestFinfo * set_
Definition: ValueFinfo.h:32
template<class T, class F>
ElementValueFinfo< T, F >::ElementValueFinfo ( const string &  name,
const string &  doc,
void(T::*)(const Eref &, F)  setFunc,
F(T::*)(const Eref &) const  getFunc 
)
inline

Definition at line 26 of file ElementValueFinfo.h.

References ValueFinfoBase::get_, Finfo::name(), and ValueFinfoBase::set_.

29  : ValueFinfoBase( name, doc )
30  {
31  string setname = "set" + name;
32  setname[3] = std::toupper( setname[3] );
33  set_ = new DestFinfo(
34  setname,
35  "Assigns field value.",
36  new EpFunc1< T, F >( setFunc ) );
37 
38  string getname = "get" + name;
39  getname[3] = std::toupper( getname[3] );
40  get_ = new DestFinfo(
41  getname,
42  "Requests field value. The requesting Element must "
43  "provide a handler for the returned value.",
44  new GetEpFunc< T, F >( getFunc ) );
45  }
DestFinfo * get_
Definition: ValueFinfo.h:33
Definition: EpFunc.h:64
ValueFinfoBase(const string &name, const string &doc)
Definition: ValueFinfo.cpp:12
const string & name() const
Definition: Finfo.cpp:80
DestFinfo * set_
Definition: ValueFinfo.h:32

+ Here is the call graph for this function:

Member Function Documentation

template<class T, class F>
void ElementValueFinfo< T, F >::registerFinfo ( Cinfo c)
inlinevirtual

Returns string-ified form to handle template expectations for name field string getName() const; Assign function Ids, bindIndex and so on.

Implements Finfo.

Definition at line 48 of file ElementValueFinfo.h.

References ValueFinfoBase::get_, Cinfo::registerFinfo(), and ValueFinfoBase::set_.

48  {
49  c->registerFinfo( set_ );
50  // c->registerElementField( set->getFid() );
51  c->registerFinfo( get_ );
52  }
DestFinfo * get_
Definition: ValueFinfo.h:33
void registerFinfo(Finfo *f)
Definition: Cinfo.cpp:114
DestFinfo * set_
Definition: ValueFinfo.h:32

+ Here is the call graph for this function:

template<class T, class F>
string ElementValueFinfo< T, F >::rttiType ( ) const
inlinevirtual

Returns the documentation string for the Finfo string docs() const; Returns the RTTI type string for the finfo by referring to an internal virtual function. string type() const; Returns the list of subsidiary SrcFinfos. Used in Shared Finfos, empty otherwise. Goes via internal virtual function. vector< string > src() const; Returns the list of subsidiary destFinfos. Used in SharedFinfos and ValueFinfos, empty otherwise. Goes via internal virtual function. vector< string > dest() const; Returns an RTTI type string for this Finfo.

Reimplemented from Finfo.

Definition at line 65 of file ElementValueFinfo.h.

References Conv< T >::rttiType().

65  {
66  return Conv<F>::rttiType();
67  }
static string rttiType()
Definition: Conv.h:82

+ Here is the call graph for this function:

template<class T, class F>
bool ElementValueFinfo< T, F >::strGet ( const Eref tgt,
const string &  field,
string &  returnValue 
) const
inlinevirtual

Function to return value of field into a string argument. Returns true on success. Normally called only from SetGet::strGet.

Implements Finfo.

Definition at line 59 of file ElementValueFinfo.h.

References Field< A >::innerStrGet(), and Eref::objId().

60  {
62  tgt.objId(), field, returnValue );
63  }
static bool innerStrGet(const ObjId &dest, const string &field, string &str)
Definition: SetGet.h:345
ObjId objId() const
Definition: Eref.cpp:57

+ Here is the call graph for this function:

template<class T, class F>
bool ElementValueFinfo< T, F >::strSet ( const Eref tgt,
const string &  field,
const string &  arg 
) const
inlinevirtual

Function to set this field using a string argument. Returns true on success. Normally called only from SetGet::strSet.

Implements Finfo.

Definition at line 54 of file ElementValueFinfo.h.

References Field< A >::innerStrSet(), and Eref::objId().

55  {
56  return Field< F >::innerStrSet( tgt.objId(), field, arg );
57  }
static bool innerStrSet(const ObjId &dest, const string &field, const string &arg)
Definition: SetGet.h:271
ObjId objId() const
Definition: Eref.cpp:57

+ Here is the call graph for this function:


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