An instance of this is a runnable entity. Input ports correspond to input receptors, Output ports correspond to spike generators, voltage probes etc. Many connections can be made to/from any port. Input ConnectionIDs are unique for an entity, so can be used to look up extra connection information stored inside the entity.
Entity( Population p, EntityClass e ) void init(Population p, int index) Time handleEvents(EventList el, Time t) void reset() void destroy() void sendEvent( PortID c, Event e ) void sendEvent( EntityID deste, PortID destp, Event e ) void defaultEventHandler( Event e ) Population getPopulation() EntityClass getClass() EntityID getID() PopulationTree getPopulationTree(Time t) EntityClasses getEntityClasses() EventClasses getEventClasses() EntityClass lookupEntityClass( String name ); EntityID lookupEntity( Time t, String name ); Population lookupPopulation( Time t, String name ); void construct ( Time t, PopulationBuilder p, Callback c) void destroy ( Time t, Population p, Callback c ) void connect ( Time t, Projection p, Callback c ) void disconnect ( Time t, Projection p, Callback c ) void updateEntity( Time t, EntityID e, EntityUpdate eu, Callback c ) void queryEntity( Time t, EntityID e, EntityQuery eq, Callback c ) void updatePopulation( Time t, Population p, EntityUpdate eu, Callback c ) void queryPopulation( Time t, Population p, EntityQuery eq, Callback c ) void queryOutputConnections( Time t, PortID p, ConnectionQuery cq, Callback cb ); Vector getInPortIDs() Vector getOutPortIDs() PortID addOutPort(EventClass ec) PortID addInPort (EventClass ec) Vector getClassesOfInPort(PortID pid) Vector getClassesOfOutPort(PortID pid) int getNumInConnections(PortID inport) int getNumOutConnections(PortID outport) Vector getInConnections(PortID inport) void addOutConnection(PortID outport, Time delay, EntityID dest, PortID destinport, ConnectionID destconn) void deleteOutConnection(PortID outport, EntityID dest, PortID destinport, ConnectionID destconn) ConnectionID addInConnection(Connection c) void deleteInConnection(ConnectionID cid) void deleteInPort(PortID) void deleteOutPort(PortID) void zeroOutputDelay() void resetOutputDelay() Time getMinOutputDelay() Time getLocalTime()
The entity's minimum output delay is available using getMinOutputDelay(); this will be the minimum delay on any of its output ports, or if there are no output connections, a positive value determined by the kernel. This output delay is imposed on every kernel request the entity makes (i.e. responses to queries, requests to construct and link other entities). If this is not acceptable to the model, the output delay can be zeroed using zeroOutputDelay(), and then unzeroed using resetOutputDelay(). For example, to perform a sequence of queries/responses/new queries at a specific instant of time while a simulation is running, zero the output delay of the population concerned, perform the updates/queries, then reset the output delay.