Fawkes API Fawkes Development Version
|
FUSE Server Client Thread. More...
#include <>>
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. |
FUSE Server Client Thread.
This thread is instantiated and started for each client that connects to a FuseServer.
Definition at line 47 of file fuse_server_client_thread.h.
firevision::FuseServerClientThread::FuseServerClientThread | ( | FuseServer * | fuse_server, |
fawkes::StreamSocket * | s | ||
) |
Constructor.
fuse_server | parent FUSE server |
s | socket to client |
Definition at line 67 of file fuse_server_client_thread.cpp.
References firevision::FUSE_greeting_message_t::version.
firevision::FuseServerClientThread::~FuseServerClientThread | ( | ) | [virtual] |
Destructor.
Definition at line 87 of file fuse_server_client_thread.cpp.
References fawkes::RefCount::unref().
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.
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::FUSE_imagereq_message_t::format, 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.
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::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.
m | received message |
Definition at line 355 of file fuse_server_client_thread.cpp.
References firevision::FuseImageListContent::add_imageinfo(), firevision::SharedMemoryImageBufferHeader::colorspace(), firevision::SharedMemoryImageBufferHeader::height(), firevision::SharedMemoryImageBufferHeader::image_id(), and firevision::SharedMemoryImageBufferHeader::width().
void firevision::FuseServerClientThread::process_getlut_message | ( | FuseNetworkMessage * | m | ) |
Process LUT request message.
m | received message |
Definition at line 273 of file fuse_server_client_thread.cpp.
References 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.
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::SharedMemoryLookupTableHeader::height(), firevision::SharedMemoryLookupTableHeader::lut_id(), and firevision::SharedMemoryLookupTableHeader::width().
void firevision::FuseServerClientThread::process_greeting_message | ( | FuseNetworkMessage * | m | ) |
Process greeting message.
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.
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::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(), and firevision::FuseServer::connection_died().
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().
Referenced by loop().