MOOSE - Multiscale Object Oriented Simulation Environment
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
DestFinfo.cpp
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 
10 #include <typeinfo>
11 #include "header.h"
12 
14  delete func_;
15 }
16 
17 DestFinfo::DestFinfo( const string& name, const string& doc,
18  OpFunc* func )
19  : Finfo( name, doc ), func_( func )
20 {
21  ;
22 }
23 
25 {
26  if ( c->baseCinfo() ) {
27  const Finfo* bf = c->baseCinfo()->findFinfo( name() );
28  if ( bf ) {
29  const DestFinfo* df = dynamic_cast< const DestFinfo* >( bf );
30  assert( df );
31  fid_ = df->fid_;
32  c->overrideFunc( fid_, func_ );
33  return;
34  }
35  }
36  fid_ = c->registerOpFunc( func_ );
37 // cout << c->name() << "." << name() << ": " << fid_ << endl;
38 }
39 
41 {
42  return func_;
43 }
44 
46 {
47  return fid_;
48 }
49 
51  const Eref& tgt, const string& field, const string& arg ) const
52 {
53  assert( 0 );
54  return false;
55 }
56 
58  const Eref& tgt, const string& field, string& returnValue ) const
59 {
60  assert( 0 );
61  return false;
62 }
63 
64 string DestFinfo::rttiType() const
65 {
66  return func_->rttiType();
67 }
const Cinfo * baseCinfo() const
Definition: Cinfo.cpp:216
FuncId registerOpFunc(const OpFunc *f)
Definition: Cinfo.cpp:96
FuncId fid_
Definition: DestFinfo.h:40
string rttiType() const
Definition: DestFinfo.cpp:64
DestFinfo(const string &name, const string &doc, OpFunc *func)
Definition: DestFinfo.cpp:17
const string & name() const
Definition: Finfo.cpp:80
bool strGet(const Eref &tgt, const string &field, string &returnValue) const
Definition: DestFinfo.cpp:57
void registerFinfo(Cinfo *c)
Definition: DestFinfo.cpp:24
void overrideFunc(FuncId fid, const OpFunc *f)
Definition: Cinfo.cpp:103
bool strSet(const Eref &tgt, const string &field, const string &arg) const
Definition: DestFinfo.cpp:50
OpFunc * func_
Definition: DestFinfo.h:39
FuncId getFid() const
Definition: DestFinfo.cpp:45
Definition: Eref.h:26
const OpFunc * getOpFunc() const
Definition: DestFinfo.cpp:40
static char name[]
Definition: mfield.cpp:401
virtual string rttiType() const =0
unsigned int FuncId
Definition: header.h:42
Definition: Cinfo.h:18
const Finfo * findFinfo(const string &name) const
Definition: Cinfo.cpp:224
Definition: Finfo.h:12