| 186 | } |
| 187 | |
| 188 | size_t ClientDisplayDriver::receiveHeader( int msg ) |
| 189 | { |
| 190 | DisplayDriverServerHeader header; |
| 191 | m_data->m_socket.receive( boost::asio::buffer( header.buffer(), header.headerLength ) ); |
| 192 | if ( !header.valid() ) |
| 193 | { |
| 194 | throw Exception( "Invalid display driver header block on socket package." ); |
| 195 | } |
| 196 | size_t bytesAhead = header.getDataSize(); |
| 197 | |
| 198 | if ( header.messageType() == DisplayDriverServerHeader::exception ) |
| 199 | { |
| 200 | vector<char> txt; |
| 201 | txt.resize( bytesAhead ); |
| 202 | m_data->m_socket.receive( boost::asio::buffer( &(txt[0]), bytesAhead ) ); |
| 203 | throw Exception( std::string("Error on remote display driver: ") + &(txt[0]) ); |
| 204 | } |
| 205 | if ( header.messageType() != msg ) |
| 206 | { |
| 207 | throw Exception( "Unexpected message type on display driver socket package." ); |
| 208 | } |
| 209 | return bytesAhead; |
| 210 | } |
| 211 | |
| 212 | void ClientDisplayDriver::imageData( const Box2i &box, const float *data, size_t dataSize ) |
| 213 | { |
nothing calls this directly
no test coverage detected