firevision::FuseServerClientThread Class Reference
[FireVision FUSE Network ProtocolFireVision Image Processing Framework and Applications]

FUSE Server Client Thread. More...

#include <fvutils/net/fuse_server_client_thread.h>

Inheritance diagram for firevision::FuseServerClientThread:

[legend]
List of all members.

Public Member Functions

 FuseServerClientThread (FuseServer *fuse_server, fawkes::StreamSocket *s)
 Constructor.
virtual ~FuseServerClientThread ()
 Destructor.
void recv ()
 Receive data.
void send ()
 Send all messages in outbound queue.
virtual void loop ()
 Code to execute in the thread.
void process_greeting_message (FuseNetworkMessage *m)
 Process greeting message.
void process_getimage_message (FuseNetworkMessage *m)
 Process image request message.
void process_getimageinfo_message (FuseNetworkMessage *m)
 Process image info request message.
void process_getimagelist_message (FuseNetworkMessage *m)
 Process image list request message.
void process_getlut_message (FuseNetworkMessage *m)
 Process LUT request message.
void process_setlut_message (FuseNetworkMessage *m)
 Process LUT setting.
void process_getlutlist_message (FuseNetworkMessage *m)
 Process LUT list request message.

Detailed Description

FUSE Server Client Thread.

This thread is instantiated and started for each client that connects to a FuseServer.

Author:
Tim Niemueller

Definition at line 47 of file fuse_server_client_thread.h.


Constructor & Destructor Documentation

firevision::FuseServerClientThread::FuseServerClientThread ( FuseServer fuse_server,
fawkes::StreamSocket s 
)

Constructor.

Parameters:
fuse_server parent FUSE server
s socket to client

Definition at line 67 of file fuse_server_client_thread.cpp.

References firevision::FUSE_MT_GREETING, and firevision::FUSE_greeting_message_t::version.

firevision::FuseServerClientThread::~FuseServerClientThread (  )  [virtual]

Destructor.

Definition at line 87 of file fuse_server_client_thread.cpp.


Member Function Documentation

void firevision::FuseServerClientThread::loop (  )  [virtual]

Code to execute in the thread.

Implement this method to hold the code you want to be executed continously. If you do not implement this method, the default is that the thread will exit. This is useful if you choose to only implement once().

Reimplemented from fawkes::Thread.

Definition at line 454 of file fuse_server_client_thread.cpp.

References firevision::FuseServer::connection_died(), fawkes::Socket::poll(), recv(), and send().

void firevision::FuseServerClientThread::process_getimage_message ( FuseNetworkMessage m  ) 

Process image request message.

Parameters:
m received message

Definition at line 190 of file fuse_server_client_thread.cpp.

References firevision::ImageCompressor::COMP_DEST_MEM, firevision::JpegImageCompressor::compress(), firevision::JpegImageCompressor::compressed_size(), firevision::CS_UNKNOWN, firevision::FUSE_imagereq_message_t::format, firevision::FUSE_IF_JPEG, firevision::FUSE_IF_RAW, firevision::FUSE_MT_GET_IMAGE_FAILED, firevision::FUSE_MT_IMAGE, firevision::FUSE_imagereq_message_t::image_id, firevision::FuseNetworkMessage::msg(), firevision::FuseNetworkMessage::payload(), firevision::FuseNetworkMessage::payload_size(), firevision::JpegImageCompressor::recommended_compressed_buffer_size(), firevision::JpegImageCompressor::set_compression_destination(), firevision::JpegImageCompressor::set_destination_buffer(), firevision::JpegImageCompressor::set_image_buffer(), and firevision::JpegImageCompressor::set_image_dimensions().

void firevision::FuseServerClientThread::process_getimageinfo_message ( FuseNetworkMessage m  ) 

Process image info request message.

Parameters:
m received message

Definition at line 241 of file fuse_server_client_thread.cpp.

References firevision::FUSE_imageinfo_t::buffer_size, firevision::FUSE_imageinfo_t::colorspace, firevision::colorspace_buffer_size(), firevision::FUSE_MT_GET_IMAGE_FAILED, firevision::FUSE_MT_IMAGE_INFO, firevision::FUSE_imageinfo_t::height, firevision::FUSE_imageinfo_t::image_id, firevision::FUSE_imagedesc_message_t::image_id, firevision::FuseNetworkMessage::msg(), firevision::FuseNetworkMessage::payload(), firevision::FuseNetworkMessage::payload_size(), and firevision::FUSE_imageinfo_t::width.

void firevision::FuseServerClientThread::process_getimagelist_message ( FuseNetworkMessage m  ) 

Process image list request message.

Parameters:
m received message

Definition at line 355 of file fuse_server_client_thread.cpp.

References firevision::FuseImageListContent::add_imageinfo(), firevision::SharedMemoryImageBufferHeader::colorspace(), firevision::FUSE_MT_IMAGE_LIST, firevision::SharedMemoryImageBufferHeader::height(), firevision::SharedMemoryImageBufferHeader::image_id(), and firevision::SharedMemoryImageBufferHeader::width().

void firevision::FuseServerClientThread::process_getlut_message ( FuseNetworkMessage m  ) 

Process LUT request message.

Parameters:
m received message

Definition at line 273 of file fuse_server_client_thread.cpp.

References firevision::FUSE_MT_GET_LUT_FAILED, firevision::FUSE_MT_LUT, firevision::FUSE_lutdesc_message_t::lut_id, firevision::FuseNetworkMessage::msg(), firevision::FuseNetworkMessage::payload(), and firevision::FuseNetworkMessage::payload_size().

void firevision::FuseServerClientThread::process_getlutlist_message ( FuseNetworkMessage m  ) 

Process LUT list request message.

Parameters:
m received message

Definition at line 382 of file fuse_server_client_thread.cpp.

References firevision::FuseLutListContent::add_lutinfo(), firevision::SharedMemoryLookupTableHeader::bytes_per_cell(), firevision::SharedMemoryLookupTableHeader::depth(), firevision::FUSE_MT_LUT_LIST, firevision::SharedMemoryLookupTableHeader::height(), firevision::SharedMemoryLookupTableHeader::lut_id(), and firevision::SharedMemoryLookupTableHeader::width().

void firevision::FuseServerClientThread::process_greeting_message ( FuseNetworkMessage m  ) 

Process greeting message.

Parameters:
m received message

Definition at line 155 of file fuse_server_client_thread.cpp.

References firevision::FuseNetworkMessage::msg(), and firevision::FUSE_greeting_message_t::version.

void firevision::FuseServerClientThread::process_setlut_message ( FuseNetworkMessage m  ) 

Process LUT setting.

Parameters:
m received message

Definition at line 306 of file fuse_server_client_thread.cpp.

References fawkes::Exception::append(), firevision::FuseLutContent::buffer(), firevision::FuseLutContent::bytes_per_cell(), firevision::FuseLutContent::depth(), firevision::FUSE_MT_SET_LUT_FAILED, firevision::FUSE_MT_SET_LUT_SUCCEEDED, firevision::FuseLutContent::height(), firevision::FuseLutContent::lut_id(), firevision::FuseNetworkMessage::msgc(), and firevision::FuseLutContent::width().

void firevision::FuseServerClientThread::recv (  ) 

Receive data.

Receives data from the network if there is any and then processes all inbound messages.

Definition at line 139 of file fuse_server_client_thread.cpp.

References fawkes::Socket::close(), firevision::FuseServer::connection_died(), and firevision::FuseNetworkTransceiver::recv().

Referenced by loop().

void firevision::FuseServerClientThread::send (  ) 

Send all messages in outbound queue.

Definition at line 121 of file fuse_server_client_thread.cpp.

References firevision::FuseServer::connection_died(), and firevision::FuseNetworkTransceiver::send().

Referenced by loop().


The documentation for this class was generated from the following files:
Generated on Tue Feb 22 13:31:44 2011 for Fawkes API by  doxygen 1.4.7