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