MOOSE - Multiscale Object Oriented Simulation Environment
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Finfo Class Referenceabstract

#include <Finfo.h>

+ Inheritance diagram for Finfo:
+ Collaboration diagram for Finfo:

Public Member Functions

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 > innerDest () const
 
virtual vector< string > innerSrc () const
 
const string & name () const
 
virtual void postCreationFunc (Id newId, Element *newElm) const
 
virtual void registerFinfo (Cinfo *c)=0
 
virtual string rttiType () const
 
virtual bool strGet (const Eref &tgt, const string &field, string &returnValue) const =0
 
virtual bool strSet (const Eref &tgt, const string &field, const string &arg) const =0
 
virtual ~Finfo ()
 

Static Public Member Functions

static const CinfoinitCinfo ()
 

Private Attributes

string doc_
 
string name_
 

Detailed Description

Definition at line 12 of file Finfo.h.

Constructor & Destructor Documentation

Finfo::Finfo ( const string &  name,
const string &  doc 
)

Definition at line 13 of file Finfo.cpp.

14  : name_( name ), doc_( doc )
15 {
16  ;
17 }
const string & name() const
Definition: Finfo.cpp:80
string name_
Definition: Finfo.h:146
string doc_
Definition: Finfo.h:147
virtual Finfo::~Finfo ( )
inlinevirtual

Definition at line 16 of file Finfo.h.

17  {
18  ;
19  }

Member Function Documentation

virtual bool Finfo::addMsg ( const Finfo target,
ObjId  mid,
Element src 
) const
inlinevirtual

Sets up specified Msg between src and dest. Does all the type checking. Returns 1 on success. Defaults to 0 because many Finfo combinations won't work.

Reimplemented in SrcFinfo, and SharedFinfo.

Definition at line 92 of file Finfo.h.

Referenced by addClockMsg(), Shell::adopt(), Shell::innerAddMsg(), Shell::innerMove(), FieldElementFinfoBase::postCreationFunc(), testCreateMsg(), testFibonacci(), testSendSpike(), testSharedMsg(), and testSparseMsg().

93  {
94  return 0;
95  }

+ Here is the caller graph for this function:

virtual bool Finfo::checkTarget ( const Finfo target) const
inlinevirtual

Registers the Msg slot to be used for transmitting messages. SrcFinfos take the 'current' value and increment it, other msgs leave it alone. virtual BindIndex registerBindIndex( BindIndex current ) = 0; Checks that the type of target Finfo matches self, and is safe to exchange messages with. Is called only from msg src, so most Finfos return 0. SrcFinfo and SharedFinfo will need to implement this.

Reimplemented in SrcFinfo, and SharedFinfo.

Definition at line 81 of file Finfo.h.

Referenced by Shell::doAddMsg(), and Shell::innerAddMsg().

82  {
83  return 0;
84  }

+ Here is the caller graph for this function:

const string & Finfo::docs ( ) const

Returns documentation string.

Definition at line 85 of file Finfo.cpp.

References doc_.

Referenced by FinfoWrapper::docs(), and initCinfo().

86 {
87  return doc_;
88 }
string doc_
Definition: Finfo.h:147

+ Here is the caller graph for this function:

const Cinfo * Finfo::initCinfo ( )
static

Returns the Class Info for this Finfo

Definition at line 23 of file Finfo.cpp.

References FinfoWrapper::dest(), docs(), FinfoWrapper::docs(), finfoCinfo, FinfoWrapper::getName(), Neutral::initCinfo(), FinfoWrapper::src(), and FinfoWrapper::type().

Referenced by buildFinfoElement().

24 {
26  "fieldName",
27  "Name of field handled by Finfo",
29  );
30 
32  "docs",
33  "Documentation for Finfo",
35  );
36 
38  "type",
39  "RTTI type info for this Finfo",
41  );
42 
44  "src",
45  "Subsidiary SrcFinfos. Useful for SharedFinfos",
47  );
49  "dest",
50  "Subsidiary DestFinfos. Useful for SharedFinfos",
52  );
53 
54 
55  static Finfo* finfoFinfos[] =
56  {
57  &fieldName, // ReadOnlyValue
58  &docs, // ReadOnlyValue
59  &type, // ReadOnlyValue
60  &src, // ReadOnlyValue
61  &dest, // ReadOnlyValue
62  };
63 
64  static Dinfo< Finfo* > dinfo;
65  static Cinfo finfoCinfo (
66  "Finfo",
68  finfoFinfos,
69  sizeof( finfoFinfos ) / sizeof( Finfo* ),
70  &dinfo
71  );
72 
73  return &finfoCinfo;
74 }
string getName() const
Definition: Finfo.cpp:92
Definition: Dinfo.h:60
vector< string > dest() const
Definition: Finfo.cpp:113
vector< string > src() const
Definition: Finfo.cpp:108
const string & docs() const
Returns documentation string.
Definition: Finfo.cpp:85
string docs() const
Definition: Finfo.cpp:97
static const Cinfo * finfoCinfo
Definition: Finfo.cpp:76
string type() const
Definition: Finfo.cpp:103
static const Cinfo * initCinfo()
Definition: Neutral.cpp:16
Definition: Cinfo.h:18
Definition: Finfo.h:12

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

vector< string > Finfo::innerDest ( ) const
virtual

Returns subsidiary DestFinfos

Reimplemented in SharedFinfo, and ValueFinfoBase.

Definition at line 131 of file Finfo.cpp.

Referenced by FinfoWrapper::dest().

132 {
133  static vector< string > ret;
134  return ret;
135 }

+ Here is the caller graph for this function:

vector< string > Finfo::innerSrc ( ) const
virtual

Returns subsidiary SrcFinfos

Reimplemented in SharedFinfo.

Definition at line 125 of file Finfo.cpp.

Referenced by FinfoWrapper::src().

126 {
127  static vector< string > ret;
128  return ret;
129 }

+ Here is the caller graph for this function:

virtual void Finfo::postCreationFunc ( Id  newId,
Element newElm 
) const
inlinevirtual

This function is called on each new Element after it is created, in case any stuff needs doing. Typical uses are to create FieldElements automatically as soon as the parent is made. Used in FieldElementFinfo.h

Reimplemented in FieldElementFinfoBase.

Definition at line 63 of file Finfo.h.

64  {
65  ;
66  }
virtual void Finfo::registerFinfo ( Cinfo c)
pure virtual

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

Implemented in ReadOnlyLookupValueFinfo< T, L, F >, ReadOnlyValueFinfo< T, F >, ReadOnlyLookupElementValueFinfo< T, L, F >, ReadOnlyElementValueFinfo< T, F >, ValueFinfo< T, F >, LookupValueFinfo< T, L, F >, FieldElementFinfoBase, LookupElementValueFinfo< T, L, F >, ElementValueFinfo< T, F >, SrcFinfo, SharedFinfo, and DestFinfo.

Referenced by Cinfo::registerFinfo().

+ Here is the caller graph for this function:

string Finfo::rttiType ( ) const
virtual

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 in SrcFinfo6< T1, T2, T3, T4, T5, T6 >, SrcFinfo5< T1, T2, T3, T4, T5 >, SrcFinfo4< T1, T2, T3, T4 >, SrcFinfo3< T1, T2, T3 >, SrcFinfo2< T1, T2 >, SrcFinfo1< T >, FieldElementFinfo< T, F >, ReadOnlyLookupValueFinfo< T, L, F >, ReadOnlyValueFinfo< T, F >, ReadOnlyLookupElementValueFinfo< T, L, F >, ReadOnlyElementValueFinfo< T, F >, SrcFinfo0, LookupValueFinfo< T, L, F >, ValueFinfo< T, F >, LookupElementValueFinfo< T, L, F >, ElementValueFinfo< T, F >, SharedFinfo, and DestFinfo.

Definition at line 120 of file Finfo.cpp.

Referenced by getFieldDict(), getFieldType(), and FinfoWrapper::type().

121 {
122  return typeid( *this ).name();
123 }

+ Here is the caller graph for this function:

virtual bool Finfo::strGet ( const Eref tgt,
const string &  field,
string &  returnValue 
) const
pure virtual

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

Implemented in ReadOnlyLookupValueFinfo< T, L, F >, ReadOnlyValueFinfo< T, F >, ReadOnlyLookupElementValueFinfo< T, L, F >, ReadOnlyElementValueFinfo< T, F >, LookupValueFinfo< T, L, F >, ValueFinfo< T, F >, FieldElementFinfoBase, LookupElementValueFinfo< T, L, F >, ElementValueFinfo< T, F >, SrcFinfo, SharedFinfo, and DestFinfo.

Referenced by SetGet::strGet().

+ Here is the caller graph for this function:

virtual bool Finfo::strSet ( const Eref tgt,
const string &  field,
const string &  arg 
) const
pure virtual

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

Implemented in ReadOnlyLookupValueFinfo< T, L, F >, ReadOnlyValueFinfo< T, F >, ReadOnlyLookupElementValueFinfo< T, L, F >, ReadOnlyElementValueFinfo< T, F >, ValueFinfo< T, F >, LookupValueFinfo< T, L, F >, FieldElementFinfoBase, ElementValueFinfo< T, F >, LookupElementValueFinfo< T, L, F >, SrcFinfo, SharedFinfo, and DestFinfo.

Referenced by SetGet::strSet().

+ Here is the caller graph for this function:

Member Data Documentation

string Finfo::doc_
private

Definition at line 147 of file Finfo.h.

Referenced by docs().

string Finfo::name_
private

Definition at line 146 of file Finfo.h.

Referenced by name().


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