00001 #ifndef CELLPORTHANDLER_H 00002 #define CELLPORTHANDLER_H 00003 00004 #include "instantsynapse.h" 00005 00006 class CellPortHandler 00007 { 00008 protected: 00009 00010 vector<InstantSynapse*> inputSynapses; 00011 vector<double*> inputNernst; 00012 int lastPort; 00013 00014 public: 00015 00016 CellPortHandler() 00017 { 00018 inputSynapses.push_back(new InstantSynapse); 00019 inputNernst.push_back(0); 00020 lastPort=0; 00021 } 00022 00023 00024 virtual ~CellPortHandler(){} 00025 00026 00027 virtual int new_currentInput(InstantSynapse *syn=0) 00028 { 00029 if(syn==0) 00030 inputSynapses.push_back(new InstantSynapse); 00031 else 00032 inputSynapses.push_back(syn); 00033 inputNernst.push_back(0); 00034 lastPort++; 00035 return lastPort; 00036 } 00037 00038 00039 00040 virtual int new_ionicChannel(double valNernst, InstantSynapse *syn=0) 00041 { 00042 if(syn==0) 00043 inputSynapses.push_back(new InstantSynapse); 00044 else 00045 inputSynapses.push_back(syn); 00046 inputNernst.push_back(new double(valNernst)); 00047 lastPort++; 00048 return lastPort; 00049 } 00050 00051 InstantSynapse& inputSynapse(int port=0) 00052 { 00053 if(port>lastPort) 00054 cerr<<"Error in CellPortHandler::inputSynapse(port): Asking for a synaptic port that does not exist."<<endl; 00055 return *(inputSynapses[port]); 00056 } 00057 00058 }; 00059 00060 00061 #endif 00062 00063 00064 00065 00066 00067 00068 00069 00070 00071 00072 00073 00074 00075 00076 00077 00078