Main Page | Namespace List | Alphabetical List | Class List | Directories | File List | Class Members | File Members

UDPSynchronizedServer Class Reference

#include <UDPSynchronizedServer.h>

List of all members.

Public Member Functions

 UDPSynchronizedServer (DBInterface *devDBInter, unsigned int neurGrpWidth)
 ~UDPSynchronizedServer ()
bool closeDevice ()
bool openSocket (string addr, int pt)
bool sendSpikeData ()
void setNeuronVector (vector< unsigned int > *neurVectPtr, unsigned int startNeurID)

Private Member Functions

 UDPSynchronizedServer (const UDPSynchronizedServer &)
UDPSynchronizedServer operator= (const UDPSynchronizedServer &)
bool simulationSynchronizationDelay ()

Private Attributes

DBInterface * deviceDBInterface
int socketHandle
sockaddr_in socketAddress
bool socketOpen
unsigned int neuronGrpWidth
unsigned int startNeuronID
vector< unsigned int > * neuronVectorPtr


Detailed Description

Sends spikes out to external device using UDP synchronized method Does not technically operate as a server, but called such because it is a provider of spikes to the external device, rather than a receiver.

Definition at line 39 of file UDPSynchronizedServer.h.


Constructor & Destructor Documentation

UDPSynchronizedServer::UDPSynchronizedServer DBInterface *  dbInter,
unsigned int  neurGrpWidth
 

Constructor.

Definition at line 39 of file UDPSynchronizedServer.cpp.

References deviceDBInterface, neuronGrpWidth, and socketOpen.

UDPSynchronizedServer::~UDPSynchronizedServer  ) 
 

Destructor.

Definition at line 52 of file UDPSynchronizedServer.cpp.

References closeDevice().

UDPSynchronizedServer::UDPSynchronizedServer const UDPSynchronizedServer  )  [private]
 

Declare copy constructor private so it cannot be used inadvertently.


Member Function Documentation

bool UDPSynchronizedServer::closeDevice  ) 
 

Closes the socket.

Definition at line 67 of file UDPSynchronizedServer.cpp.

References socketHandle, and socketOpen.

Referenced by DeviceManager::closeDevice(), and ~UDPSynchronizedServer().

bool UDPSynchronizedServer::openSocket string  address,
int  port
 

Opens the UDP socket. Adapted from: http://ntrg.cs.tcd.ie/undergrad/4ba2/multicast/antony/index.html.

Definition at line 76 of file UDPSynchronizedServer.cpp.

References socketAddress, socketHandle, socketOpen, and SpikeStreamSimulation::systemError().

Referenced by DeviceManager::loadDeviceInformation().

UDPSynchronizedServer UDPSynchronizedServer::operator= const UDPSynchronizedServer  )  [private]
 

Declare assignment private so it cannot be used.

bool UDPSynchronizedServer::sendSpikeData  ) 
 

Sends spike data to the receiving socket.

Definition at line 97 of file UDPSynchronizedServer.cpp.

References SimulationClock::getTimeStep(), neuronGrpWidth, neuronVectorPtr, SpikeStreamSimulation::simulationClock, simulationSynchronizationDelay(), socketAddress, socketHandle, socketOpen, startNeuronID, STEP_COUNTER_MAX, and SpikeStreamSimulation::systemError().

Referenced by DeviceManager::updateDevice().

void UDPSynchronizedServer::setNeuronVector vector< unsigned int > *  neurVectPtr,
unsigned int  startNeurID
 

Passes a reference to the neuron vector in SpikeStreamSimulation to this class. This contains the ids of the currently firing neurons.

Definition at line 179 of file UDPSynchronizedServer.cpp.

References neuronVectorPtr, and startNeuronID.

Referenced by DeviceManager::setNeuronVector().

bool UDPSynchronizedServer::simulationSynchronizationDelay  )  [private]
 

Returns true if there is 1 or more entries in the synchronization delay database These entries indicate that another task is delaying itself to synchronize up with an external device.

Definition at line 188 of file UDPSynchronizedServer.cpp.

References deviceDBInterface, and SpikeStreamSimulation::systemError().

Referenced by sendSpikeData().


Member Data Documentation

DBInterface* UDPSynchronizedServer::deviceDBInterface [private]
 

Reference to database handling class.

Definition at line 53 of file UDPSynchronizedServer.h.

Referenced by simulationSynchronizationDelay(), and UDPSynchronizedServer().

unsigned int UDPSynchronizedServer::neuronGrpWidth [private]
 

Width neuron group.

Definition at line 65 of file UDPSynchronizedServer.h.

Referenced by sendSpikeData(), and UDPSynchronizedServer().

vector<unsigned int>* UDPSynchronizedServer::neuronVectorPtr [private]
 

Vector of currently firing neurons.

Definition at line 71 of file UDPSynchronizedServer.h.

Referenced by sendSpikeData(), and setNeuronVector().

struct sockaddr_in UDPSynchronizedServer::socketAddress [private]
 

Address of the socket.

Definition at line 59 of file UDPSynchronizedServer.h.

Referenced by openSocket(), and sendSpikeData().

int UDPSynchronizedServer::socketHandle [private]
 

Integer used to access the socket.

Definition at line 56 of file UDPSynchronizedServer.h.

Referenced by closeDevice(), openSocket(), and sendSpikeData().

bool UDPSynchronizedServer::socketOpen [private]
 

Records whether socket is open.

Definition at line 62 of file UDPSynchronizedServer.h.

Referenced by closeDevice(), openSocket(), sendSpikeData(), and UDPSynchronizedServer().

unsigned int UDPSynchronizedServer::startNeuronID [private]
 

First ID in neuron group.

Definition at line 68 of file UDPSynchronizedServer.h.

Referenced by sendSpikeData(), and setNeuronVector().


The documentation for this class was generated from the following files:
Generated on Mon Sep 3 22:24:34 2007 for SpikeStream Simulation by  doxygen 1.4.4