25 #ifndef WIGTLINKREMOTE_H
26 #define WIGTLINKREMOTE_H
33 #include "core/common/WCondition.h"
34 #include "core/common/WThreadedRunner.h"
35 #include "core/common/math/WMatrix.h"
36 #include "core/dataHandler/WDataSetScalar.h"
37 #include "igtlClientSocket.h"
38 #include "igtlImageMessage.h"
39 #include "igtlMessageHeader.h"
47 typedef std::shared_ptr<WDataSetScalar> WDataSetScalarSPtr;
93 WDataSetScalarSPtr
receiveImage( igtl::MessageHeader::Pointer headerMsg );
128 std::shared_ptr < WValueSetBase >
createValueSet(
const igtl::ImageMessage::Pointer& imgMsg );
This data set type contains scalars as values.
Base class for all data set types.
Common base class for a IGT Link connection.
void createSocketAndWaitForConnection(uint32_t port)
Use this as a server that waits for client connections.
igtl::ClientSocket::Pointer socket
Points to the socket used by this connection.
void receiveTransform(igtl::MessageHeader::Pointer headerMsg)
Receive a transform.
std::shared_ptr< WCondition > receiversCondition
condition to notify receivers that new data is waiting
bool checkCRC
true if we check CRC sums in incoming packets
void sendTransform(const std::string &name, const WMatrix< double > &matrix)
send a matrix as an igtl transform
std::shared_ptr< WValueSetBase > createValueSet(const igtl::ImageMessage::Pointer &imgMsg)
Internal helper to create a value set from a message.
void readDataLoop()
main loop for reading
std::shared_ptr< WCondition > statusCondition
condition to notify a status change
boost::mutex receiversMutex
mutex has to be locked during access to receiveQueue
void sendImageMetaData(std::vector< WDataSetScalarSPtr > dataSets)
Send a message containing the metadata of the data sets.
uint32_t port
the port for listening connections
void setCheckCRC(bool doCheckCRC=true)
Set whether we check the CRC.
WDataSetScalarSPtr receiveImage(igtl::MessageHeader::Pointer headerMsg)
Receive an image.
void injectMessage()
TODO: inject a message in the send queue.
void createSocketAndConnect(std::string server, uint32_t port)
Use this as a client that connects to a remote server.
virtual void threadMain()
the main thread doing passive connections or receiving data
void sendImageMetaData(const std::vector< WDataSetScalarSPtr > &dataSets)
Send metadata of a list of data sets.
void sendImageData(WDataSetScalarSPtr dataSetScalar)
Send image data of a single data set.
void listenLoop()
setup listening socket and listen
std::queue< WDataSetScalarSPtr > receiveQueue
queue of received data sets that should be read by the module
Base class for all classes needing to be executed in a separate thread.
Abstract base class to all WValueSets.