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.
firevision::FuseServerClientThread::FuseServerClientThread | ( | FuseServer * | fuse_server, |
fawkes::StreamSocket * | s | ||
) |
Constructor.
fuse_server | parent FUSE server |
s | socket to client |
Definition at line 68 of file fuse_server_client_thread.cpp.
References firevision::FUSE_greeting_message_t::version.
firevision::FuseServerClientThread::~FuseServerClientThread | ( | ) | [virtual] |
Destructor.
Definition at line 88 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 455 of file fuse_server_client_thread.cpp.
References fawkes::Socket::poll(), firevision::FuseServer::connection_died(), recv(), and send().
void firevision::FuseServerClientThread::process_getimage_message | ( | FuseNetworkMessage * | m | ) |
Process image request message.
m | received message |
Definition at line 191 of file fuse_server_client_thread.cpp.
References firevision::FuseNetworkMessage::msg(), firevision::FUSE_imagereq_message_t::image_id, firevision::FuseNetworkMessage::payload(), firevision::FuseNetworkMessage::payload_size(), firevision::FUSE_imagereq_message_t::format, firevision::JpegImageCompressor::set_compression_destination(), firevision::ImageCompressor::COMP_DEST_MEM, firevision::JpegImageCompressor::set_image_dimensions(), firevision::JpegImageCompressor::set_image_buffer(), firevision::JpegImageCompressor::recommended_compressed_buffer_size(), firevision::JpegImageCompressor::set_destination_buffer(), firevision::JpegImageCompressor::compress(), and firevision::JpegImageCompressor::compressed_size().
void firevision::FuseServerClientThread::process_getimageinfo_message | ( | FuseNetworkMessage * | m | ) |
Process image info request message.
m | received message |
Definition at line 242 of file fuse_server_client_thread.cpp.
References firevision::FuseNetworkMessage::msg(), firevision::FUSE_imagedesc_message_t::image_id, firevision::FUSE_imageinfo_t::image_id, firevision::FUSE_imageinfo_t::colorspace, firevision::FUSE_imageinfo_t::width, firevision::FUSE_imageinfo_t::height, firevision::FUSE_imageinfo_t::buffer_size, firevision::FuseNetworkMessage::payload(), and firevision::FuseNetworkMessage::payload_size().
void firevision::FuseServerClientThread::process_getimagelist_message | ( | FuseNetworkMessage * | m | ) |
Process image list request message.
m | received message |
Definition at line 356 of file fuse_server_client_thread.cpp.
References firevision::FuseImageListContent::add_imageinfo(), firevision::SharedMemoryImageBufferHeader::image_id(), firevision::SharedMemoryImageBufferHeader::colorspace(), firevision::SharedMemoryImageBufferHeader::width(), and firevision::SharedMemoryImageBufferHeader::height().
void firevision::FuseServerClientThread::process_getlut_message | ( | FuseNetworkMessage * | m | ) |
Process LUT request message.
m | received message |
Definition at line 274 of file fuse_server_client_thread.cpp.
References firevision::FuseNetworkMessage::msg(), firevision::FUSE_lutdesc_message_t::lut_id, 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 383 of file fuse_server_client_thread.cpp.
References firevision::FuseLutListContent::add_lutinfo(), firevision::SharedMemoryLookupTableHeader::lut_id(), firevision::SharedMemoryLookupTableHeader::width(), firevision::SharedMemoryLookupTableHeader::height(), firevision::SharedMemoryLookupTableHeader::depth(), and firevision::SharedMemoryLookupTableHeader::bytes_per_cell().
void firevision::FuseServerClientThread::process_greeting_message | ( | FuseNetworkMessage * | m | ) |
Process greeting message.
m | received message |
Definition at line 156 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 307 of file fuse_server_client_thread.cpp.
References firevision::FuseNetworkMessage::msgc(), firevision::FuseLutContent::lut_id(), fawkes::Exception::append(), firevision::FuseLutContent::width(), firevision::FuseLutContent::height(), firevision::FuseLutContent::depth(), firevision::FuseLutContent::bytes_per_cell(), and firevision::FuseLutContent::buffer().
void firevision::FuseServerClientThread::recv | ( | ) |
Receive data.
Receives data from the network if there is any and then processes all inbound messages.
Definition at line 140 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 122 of file fuse_server_client_thread.cpp.
References firevision::FuseServer::connection_died().
Referenced by loop().