MOOSE - Multiscale Object Oriented Simulation Environment
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Finfo.h
Go to the documentation of this file.
1 /**********************************************************************
2 ** This program is part of 'MOOSE', the
3 ** Messaging Object Oriented Simulation Environment.
4 ** Copyright (C) 2003-2010 Upinder S. Bhalla. and NCBS
5 ** It is made available under the terms of the
6 ** GNU Lesser General Public License version 2.1
7 ** See the file COPYING.LIB for the full notice.
8 **********************************************************************/
9 #ifndef _FINFO_H
10 #define _FINFO_H
11 
12 class Finfo
13 {
14 public:
15  Finfo( const string& name, const string& doc );
16  virtual ~Finfo()
17  {
18  ;
19  }
20 
24  const string& name() const;
25 
27  const string& docs() const;
28 
38  virtual void registerFinfo( Cinfo* c ) = 0;
39 
45  virtual bool strSet( const Eref& tgt, const string& field,
46  const string& arg ) const = 0;
47 
53  virtual bool strGet( const Eref& tgt, const string& field,
54  string& returnValue ) const = 0;
55 
63  virtual void postCreationFunc( Id newId, Element* newElm ) const
64  {
65  ;
66  }
67 
81  virtual bool checkTarget( const Finfo* target) const
82  {
83  return 0;
84  }
85 
92  virtual bool addMsg( const Finfo* target, ObjId mid, Element* src ) const
93  {
94  return 0;
95  }
96 
98  // Functions for handling MOOSE Element inspection
100 
128  virtual string rttiType() const;
129 
133  virtual vector< string > innerSrc() const;
134 
138  virtual vector< string > innerDest() const;
139 
143  static const Cinfo* initCinfo();
144 
145 private:
146  string name_;
147  string doc_;
148 };
149 
150 // Wrapper to handle the access functions to the Finfo objects.
152 {
153 public:
154  FinfoWrapper( const Finfo* other )
155  : f_( other )
156  {
157  ;
158  }
159 
160  string getName( ) const;
161  string docs( ) const;
162  string type( ) const;
168  vector< string > src( ) const;
174  vector< string > dest( ) const;
175 
176 private:
177  const Finfo* f_;
178 };
179 
180 #endif // _FINFO_H
virtual void registerFinfo(Cinfo *c)=0
virtual bool strGet(const Eref &tgt, const string &field, string &returnValue) const =0
virtual void postCreationFunc(Id newId, Element *newElm) const
Definition: Finfo.h:63
string getName() const
Definition: Finfo.cpp:92
virtual string rttiType() const
Definition: Finfo.cpp:120
virtual ~Finfo()
Definition: Finfo.h:16
Definition: ObjId.h:20
const string & name() const
Definition: Finfo.cpp:80
string name_
Definition: Finfo.h:146
vector< string > dest() const
Definition: Finfo.cpp:113
virtual bool strSet(const Eref &tgt, const string &field, const string &arg) const =0
vector< string > src() const
Definition: Finfo.cpp:108
const string & docs() const
Returns documentation string.
Definition: Finfo.cpp:85
static const Cinfo * initCinfo()
Definition: Finfo.cpp:23
string docs() const
Definition: Finfo.cpp:97
virtual bool checkTarget(const Finfo *target) const
Definition: Finfo.h:81
const Finfo * f_
Definition: Finfo.h:177
virtual bool addMsg(const Finfo *target, ObjId mid, Element *src) const
Definition: Finfo.h:92
Definition: Eref.h:26
string doc_
Definition: Finfo.h:147
FinfoWrapper(const Finfo *other)
Definition: Finfo.h:154
string type() const
Definition: Finfo.cpp:103
Finfo(const string &name, const string &doc)
Definition: Finfo.cpp:13
virtual vector< string > innerSrc() const
Definition: Finfo.cpp:125
Definition: Id.h:17
virtual vector< string > innerDest() const
Definition: Finfo.cpp:131
Definition: Cinfo.h:18
Definition: Finfo.h:12