00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef _ChanBase_h
00012 #define _ChanBase_h
00013
00019 class ChanBase
00020 {
00021 public:
00022 ChanBase();
00023 ~ChanBase();
00024
00026
00028
00029 void setGbar( const Eref& e, double Gbar );
00030 virtual void vSetGbar( const Eref& e, double Gbar ) = 0;
00031 double getGbar( const Eref& e ) const;
00032 virtual double vGetGbar( const Eref& e ) const = 0;
00033 void setModulation( const Eref& e, double modulation );
00034 virtual void vSetModulation( const Eref& e, double modulation ) = 0;
00035 double getModulation( const Eref& e ) const;
00036 virtual double vGetModulation( const Eref& e ) const = 0;
00037 void setEk( const Eref& e, double Ek );
00038 virtual void vSetEk( const Eref& e, double Ek ) = 0;
00039 double getEk( const Eref& e ) const;
00040 virtual double vGetEk( const Eref& e ) const = 0;
00041 void setGk( const Eref& e, double Gk );
00042 virtual void vSetGk( const Eref& e, double Gk ) = 0;
00043 double getGk( const Eref& e ) const;
00044 virtual double vGetGk( const Eref& e ) const = 0;
00045 void setIk( const Eref& e, double Ic );
00046 virtual void vSetIk( const Eref& e, double Ik ) = 0;
00047 double getIk( const Eref& e ) const;
00048 virtual double vGetIk( const Eref& e ) const = 0;
00049
00051
00053
00057 void handleVm( double Vm );
00058 virtual void vHandleVm( double Vm ) = 0;
00059
00061
00065 void process( const Eref& e, const ProcPtr info );
00066 void reinit( const Eref& e, const ProcPtr info );
00067 virtual void vProcess( const Eref& e, const ProcPtr info ) = 0;
00068 virtual void vReinit( const Eref& e, const ProcPtr info ) = 0;
00069
00071 static SrcFinfo1< double >* permeability();
00072 static SrcFinfo2< double, double >* channelOut();
00073 static SrcFinfo1< double >* IkOut();
00076 static const Cinfo* initCinfo();
00077 private:
00078 };
00079
00080
00081
00082
00083 #endif // _ChanBase_h