00001 /********************************************************************** 00002 ** This program is part of 'MOOSE', the 00003 ** Messaging Object Oriented Simulation Environment, 00004 ** also known as GENESIS 3 base code. 00005 ** copyright (C) 2003-2014 Upinder S. Bhalla. and NCBS 00006 ** It is made available under the terms of the 00007 ** GNU Lesser General Public License version 2.1 00008 ** See the file COPYING.LIB for the full notice. 00009 ********************************************************************* 00010 */ 00011 00012 #ifndef _ChanCommon_h 00013 #define _ChanCommon_h 00014 00021 class ChanCommon: public virtual ChanBase 00022 { 00023 public: 00024 ChanCommon(); 00025 ~ChanCommon(); 00026 00028 // Value field access function definitions 00030 00031 void vSetGbar( const Eref& e, double Gbar ); 00032 double vGetGbar( const Eref& e ) const; 00033 void vSetModulation( const Eref& e, double modulation ); 00034 double vGetModulation( const Eref& e ) const; 00035 double getModulation() const; 00036 void vSetEk( const Eref& e, double Ek ); 00037 double vGetEk( const Eref& e ) const; 00038 void vSetGk( const Eref& e, double Gk ); 00039 double vGetGk( const Eref& e ) const; 00042 void vSetIk( const Eref& e, double Ic ); 00043 double vGetIk( const Eref& e ) const; 00044 00046 // Dest function definitions 00048 00052 void vHandleVm( double Vm ); 00053 00055 00059 void sendProcessMsgs( const Eref& e, const ProcPtr info ); 00060 void sendReinitMsgs( const Eref& e, const ProcPtr info ); 00061 00063 00067 void updateIk(); 00068 00069 00071 double getVm() const; 00072 00074 double getGbar() const; 00075 00077 static const Cinfo* initCinfo(); 00078 protected: 00080 double Vm_; 00081 00082 private: 00084 double Gbar_; 00086 double modulation_; 00088 double Ek_; 00089 00091 double Gk_; 00093 double Ik_; 00094 }; 00095 00096 00097 #endif // _ChanCommon_h