[database] fix check build + cleanup

This commit is contained in:
emeric
2015-08-03 13:27:43 +02:00
parent 8342c9e554
commit ea776320c5
6 changed files with 79 additions and 73 deletions
+1 -1
View File
@@ -85,7 +85,7 @@ Artist::getByFilter(Wt::Dbo::Session& session, SearchFilter filter, int offset,
} }
std::vector<Wt::Dbo::ptr<Release> > std::vector<Wt::Dbo::ptr<Release> >
Artist::getReleases() Artist::getReleases() const
{ {
assert(self()); assert(self());
assert(self()->id() != Wt::Dbo::dbo_traits<Artist>::invalidId() ); assert(self()->id() != Wt::Dbo::dbo_traits<Artist>::invalidId() );
+1 -1
View File
@@ -60,7 +60,7 @@ class Artist : public Wt::Dbo::Dbo<Artist>
std::string getMBID(void) const { return _MBID; } std::string getMBID(void) const { return _MBID; }
// Get the releases that have at least one track for this artist // Get the releases that have at least one track for this artist
std::vector<Wt::Dbo::ptr<Release> > getReleases(); std::vector<Wt::Dbo::ptr<Release> > getReleases() const;
void setMBID(std::string mbid) { _MBID = mbid; } void setMBID(std::string mbid) { _MBID = mbid; }
+1 -1
View File
@@ -130,7 +130,7 @@ Release::getByFilter(Wt::Dbo::Session& session, SearchFilter filter, int offset,
} }
std::vector< Wt::Dbo::ptr<Artist> > std::vector< Wt::Dbo::ptr<Artist> >
Release::getArtists() Release::getArtists() const
{ {
assert(self()); assert(self());
assert(self()->id() != Wt::Dbo::dbo_traits<Release>::invalidId() ); assert(self()->id() != Wt::Dbo::dbo_traits<Release>::invalidId() );
+2 -2
View File
@@ -65,8 +65,8 @@ class Release : public Wt::Dbo::Dbo<Release>
std::string getMBID() const { return _MBID; } std::string getMBID() const { return _MBID; }
bool isNone(void) const; bool isNone(void) const;
boost::posix_time::time_duration getDuration(void) const; boost::posix_time::time_duration getDuration(void) const;
std::vector<Wt::Dbo::ptr<Artist> > getArtists(); // Get the artists of this release std::vector<Wt::Dbo::ptr<Artist> > getArtists() const; // Get the artists of this release
std::vector<Wt::Dbo::ptr<Track> > getTracks(); // Get the tracks of this release std::vector<Wt::Dbo::ptr<Track> > getTracks() const; // Get the tracks of this release
void setMBID(std::string mbid) { _MBID = mbid; } void setMBID(std::string mbid) { _MBID = mbid; }
+6
View File
@@ -157,6 +157,9 @@ int main(void)
std::vector<Artist::pointer> res = Artist::getByFilter(db.getSession(), filter, -1, -1); std::vector<Artist::pointer> res = Artist::getByFilter(db.getSession(), filter, -1, -1);
assert(res.size() == 1); assert(res.size() == 1);
assert(res.front().id() == 1); assert(res.front().id() == 1);
// Make sure artist has a release
assert(res.front()->getReleases().size() == 1);
} }
// Select Release by name // Select Release by name
@@ -179,6 +182,9 @@ int main(void)
assert(res.size() == 1); assert(res.size() == 1);
assert(res.front().id() == 1); assert(res.front().id() == 1);
assert(res.front()->getName() == "release01"); assert(res.front()->getName() == "release01");
// Make sure release has an artist
assert(res.front()->getArtists().size() == 1);
} }
// Select genre by name // Select genre by name
+68 -68
View File
@@ -27,7 +27,7 @@
#include <boost/asio/ssl.hpp> #include <boost/asio/ssl.hpp>
#include <boost/foreach.hpp> #include <boost/foreach.hpp>
#include "remote/messages/Header.hpp" #include "lms-api/messages/Header.hpp"
#include "messages.pb.h" #include "messages.pb.h"
#include "TestDatabase.hpp" #include "TestDatabase.hpp"
@@ -123,7 +123,7 @@ struct SearchFilter
std::vector<uint64_t> trackIds; std::vector<uint64_t> trackIds;
}; };
void SearchFilterToRequest(const SearchFilter& filter, Remote::AudioCollectionRequest_SearchFilter& request) void SearchFilterToRequest(const SearchFilter& filter, LmsAPI::AudioCollectionRequest_SearchFilter& request)
{ {
for (uint64_t id : filter.artistIds) for (uint64_t id : filter.artistIds)
request.add_artist_id(id); request.add_artist_id(id);
@@ -174,11 +174,11 @@ class TestClient
std::size_t nbArtists = 0; std::size_t nbArtists = 0;
// Send request // Send request
Remote::ClientMessage request; LmsAPI::ClientMessage request;
request.set_type( Remote::ClientMessage_Type_AudioCollectionRequest ); request.set_type( LmsAPI::ClientMessage_Type_AudioCollectionRequest );
request.mutable_audio_collection_request()->set_type( Remote::AudioCollectionRequest_Type_TypeGetArtistList); request.mutable_audio_collection_request()->set_type( LmsAPI::AudioCollectionRequest_Type_TypeGetArtistList);
request.mutable_audio_collection_request()->mutable_get_artists()->mutable_batch_parameter()->set_size(size); request.mutable_audio_collection_request()->mutable_get_artists()->mutable_batch_parameter()->set_size(size);
request.mutable_audio_collection_request()->mutable_get_artists()->mutable_batch_parameter()->set_offset(offset); request.mutable_audio_collection_request()->mutable_get_artists()->mutable_batch_parameter()->set_offset(offset);
SearchFilterToRequest(filter, *request.mutable_audio_collection_request()->mutable_get_artists()->mutable_search_filter()); SearchFilterToRequest(filter, *request.mutable_audio_collection_request()->mutable_get_artists()->mutable_search_filter());
@@ -186,7 +186,7 @@ class TestClient
sendMsg(request); sendMsg(request);
// Receive responses // Receive responses
Remote::ServerMessage response; LmsAPI::ServerMessage response;
recvMsg(response); recvMsg(response);
// Process message // Process message
@@ -198,7 +198,7 @@ class TestClient
for (int i = 0; i < response.audio_collection_response().artist_list().artists_size(); ++i) for (int i = 0; i < response.audio_collection_response().artist_list().artists_size(); ++i)
{ {
const Remote::AudioCollectionResponse_Artist& respArtist = response.audio_collection_response().artist_list().artists(i); const LmsAPI::AudioCollectionResponse_Artist& respArtist = response.audio_collection_response().artist_list().artists(i);
if (!respArtist.has_id()) if (!respArtist.has_id())
throw std::runtime_error("no id!"); throw std::runtime_error("no id!");
@@ -235,11 +235,11 @@ class TestClient
std::size_t nbAdded = 0; std::size_t nbAdded = 0;
// Send request // Send request
Remote::ClientMessage request; LmsAPI::ClientMessage request;
request.set_type( Remote::ClientMessage_Type_AudioCollectionRequest ); request.set_type( LmsAPI::ClientMessage_Type_AudioCollectionRequest );
request.mutable_audio_collection_request()->set_type( Remote::AudioCollectionRequest_Type_TypeGetGenreList); request.mutable_audio_collection_request()->set_type( LmsAPI::AudioCollectionRequest_Type_TypeGetGenreList);
request.mutable_audio_collection_request()->mutable_get_genres()->mutable_batch_parameter()->set_size(size); request.mutable_audio_collection_request()->mutable_get_genres()->mutable_batch_parameter()->set_size(size);
request.mutable_audio_collection_request()->mutable_get_genres()->mutable_batch_parameter()->set_offset(offset); request.mutable_audio_collection_request()->mutable_get_genres()->mutable_batch_parameter()->set_offset(offset);
SearchFilterToRequest(filter, *request.mutable_audio_collection_request()->mutable_get_genres()->mutable_search_filter()); SearchFilterToRequest(filter, *request.mutable_audio_collection_request()->mutable_get_genres()->mutable_search_filter());
@@ -247,7 +247,7 @@ class TestClient
sendMsg(request); sendMsg(request);
// Receive responses // Receive responses
Remote::ServerMessage response; LmsAPI::ServerMessage response;
recvMsg(response); recvMsg(response);
// Process message // Process message
@@ -259,7 +259,7 @@ class TestClient
for (int i = 0; i < response.audio_collection_response().genre_list().genres_size(); ++i) for (int i = 0; i < response.audio_collection_response().genre_list().genres_size(); ++i)
{ {
const Remote::AudioCollectionResponse_Genre& respGenre = response.audio_collection_response().genre_list().genres(i); const LmsAPI::AudioCollectionResponse_Genre& respGenre = response.audio_collection_response().genre_list().genres(i);
if (!respGenre.has_id()) if (!respGenre.has_id())
throw std::runtime_error("no genre id!"); throw std::runtime_error("no genre id!");
@@ -293,11 +293,11 @@ class TestClient
std::size_t nbAdded = 0; std::size_t nbAdded = 0;
// Send request // Send request
Remote::ClientMessage request; LmsAPI::ClientMessage request;
request.set_type( Remote::ClientMessage_Type_AudioCollectionRequest ); request.set_type( LmsAPI::ClientMessage_Type_AudioCollectionRequest );
request.mutable_audio_collection_request()->set_type( Remote::AudioCollectionRequest_Type_TypeGetReleaseList); request.mutable_audio_collection_request()->set_type( LmsAPI::AudioCollectionRequest_Type_TypeGetReleaseList);
request.mutable_audio_collection_request()->mutable_get_releases()->mutable_batch_parameter()->set_size(size); request.mutable_audio_collection_request()->mutable_get_releases()->mutable_batch_parameter()->set_size(size);
request.mutable_audio_collection_request()->mutable_get_releases()->mutable_batch_parameter()->set_offset(offset); request.mutable_audio_collection_request()->mutable_get_releases()->mutable_batch_parameter()->set_offset(offset);
SearchFilterToRequest(filter, *request.mutable_audio_collection_request()->mutable_get_releases()->mutable_search_filter()); SearchFilterToRequest(filter, *request.mutable_audio_collection_request()->mutable_get_releases()->mutable_search_filter());
@@ -305,14 +305,14 @@ class TestClient
sendMsg(request); sendMsg(request);
// Receive responses // Receive responses
Remote::ServerMessage response; LmsAPI::ServerMessage response;
recvMsg(response); recvMsg(response);
// Process message // Process message
if (!response.audio_collection_response().has_type()) if (!response.audio_collection_response().has_type())
throw std::runtime_error("Missing type!"); throw std::runtime_error("Missing type!");
// if (!response.audio_collection_response().type() != Remote::ServerMessage::AudioCollectionResponse::TypeReleaseList) // if (!response.audio_collection_response().type() != LmsAPI::ServerMessage::AudioCollectionResponse::TypeReleaseList)
// throw std::runtime_error("Bad type!"); // throw std::runtime_error("Bad type!");
if (!response.has_audio_collection_response()) if (!response.has_audio_collection_response())
@@ -323,7 +323,7 @@ class TestClient
for (int i = 0; i < response.audio_collection_response().release_list().releases_size(); ++i) for (int i = 0; i < response.audio_collection_response().release_list().releases_size(); ++i)
{ {
const Remote::AudioCollectionResponse_Release& respRelease = response.audio_collection_response().release_list().releases(i); const LmsAPI::AudioCollectionResponse_Release& respRelease = response.audio_collection_response().release_list().releases(i);
if (!respRelease.has_id()) if (!respRelease.has_id())
throw std::runtime_error("no id!"); throw std::runtime_error("no id!");
@@ -355,11 +355,11 @@ class TestClient
std::size_t nbAdded = 0; std::size_t nbAdded = 0;
// Send request // Send request
Remote::ClientMessage request; LmsAPI::ClientMessage request;
request.set_type( Remote::ClientMessage_Type_AudioCollectionRequest ); request.set_type( LmsAPI::ClientMessage_Type_AudioCollectionRequest );
request.mutable_audio_collection_request()->set_type( Remote::AudioCollectionRequest_Type_TypeGetTrackList); request.mutable_audio_collection_request()->set_type( LmsAPI::AudioCollectionRequest_Type_TypeGetTrackList);
request.mutable_audio_collection_request()->mutable_get_tracks()->mutable_batch_parameter()->set_size(size); request.mutable_audio_collection_request()->mutable_get_tracks()->mutable_batch_parameter()->set_size(size);
request.mutable_audio_collection_request()->mutable_get_tracks()->mutable_batch_parameter()->set_offset(offset); request.mutable_audio_collection_request()->mutable_get_tracks()->mutable_batch_parameter()->set_offset(offset);
SearchFilterToRequest(filter, *request.mutable_audio_collection_request()->mutable_get_tracks()->mutable_search_filter()); SearchFilterToRequest(filter, *request.mutable_audio_collection_request()->mutable_get_tracks()->mutable_search_filter());
@@ -367,7 +367,7 @@ class TestClient
sendMsg(request); sendMsg(request);
// Receive responses // Receive responses
Remote::ServerMessage response; LmsAPI::ServerMessage response;
recvMsg(response); recvMsg(response);
// Process message // Process message
@@ -379,7 +379,7 @@ class TestClient
for (int i = 0; i < response.audio_collection_response().track_list().tracks_size(); ++i) for (int i = 0; i < response.audio_collection_response().track_list().tracks_size(); ++i)
{ {
const Remote::AudioCollectionResponse_Track& respTrack = response.audio_collection_response().track_list().tracks(i);; const LmsAPI::AudioCollectionResponse_Track& respTrack = response.audio_collection_response().track_list().tracks(i);;
TrackInfo track; TrackInfo track;
track.id = respTrack.id(); track.id = respTrack.id();
@@ -426,18 +426,18 @@ class TestClient
void getCoverTrack(std::vector<Cover>& coverArt, uint64_t trackId) void getCoverTrack(std::vector<Cover>& coverArt, uint64_t trackId)
{ {
// Send request // Send request
Remote::ClientMessage request; LmsAPI::ClientMessage request;
request.set_type( Remote::ClientMessage::AudioCollectionRequest ); request.set_type( LmsAPI::ClientMessage::AudioCollectionRequest );
request.mutable_audio_collection_request()->set_type( Remote::AudioCollectionRequest::TypeGetCoverArt); request.mutable_audio_collection_request()->set_type( LmsAPI::AudioCollectionRequest::TypeGetCoverArt);
request.mutable_audio_collection_request()->mutable_get_cover_art()->set_type( Remote::AudioCollectionRequest::GetCoverArt::TypeGetCoverArtTrack); request.mutable_audio_collection_request()->mutable_get_cover_art()->set_type( LmsAPI::AudioCollectionRequest::GetCoverArt::TypeGetCoverArtTrack);
request.mutable_audio_collection_request()->mutable_get_cover_art()->set_track_id( trackId ); request.mutable_audio_collection_request()->mutable_get_cover_art()->set_track_id( trackId );
request.mutable_audio_collection_request()->mutable_get_cover_art()->set_size( 256 ); request.mutable_audio_collection_request()->mutable_get_cover_art()->set_size( 256 );
sendMsg(request); sendMsg(request);
// Receive responses // Receive responses
Remote::ServerMessage response; LmsAPI::ServerMessage response;
recvMsg(response); recvMsg(response);
// Process message // Process message
@@ -457,19 +457,19 @@ class TestClient
void getCoverRelease(std::vector<Cover>& coverArt, uint64_t releaseId) void getCoverRelease(std::vector<Cover>& coverArt, uint64_t releaseId)
{ {
// Send request // Send request
Remote::ClientMessage request; LmsAPI::ClientMessage request;
request.set_type( Remote::ClientMessage::AudioCollectionRequest ); request.set_type( LmsAPI::ClientMessage::AudioCollectionRequest );
request.mutable_audio_collection_request()->set_type( Remote::AudioCollectionRequest::TypeGetCoverArt); request.mutable_audio_collection_request()->set_type( LmsAPI::AudioCollectionRequest::TypeGetCoverArt);
request.mutable_audio_collection_request()->mutable_get_cover_art()->set_type( Remote::AudioCollectionRequest::GetCoverArt::TypeGetCoverArtRelease); request.mutable_audio_collection_request()->mutable_get_cover_art()->set_type( LmsAPI::AudioCollectionRequest::GetCoverArt::TypeGetCoverArtRelease);
request.mutable_audio_collection_request()->mutable_get_cover_art()->set_release_id( releaseId ); request.mutable_audio_collection_request()->mutable_get_cover_art()->set_release_id( releaseId );
request.mutable_audio_collection_request()->mutable_get_cover_art()->set_size( 256 ); request.mutable_audio_collection_request()->mutable_get_cover_art()->set_size( 256 );
sendMsg(request); sendMsg(request);
// Receive responses // Receive responses
Remote::ServerMessage response; LmsAPI::ServerMessage response;
recvMsg(response); recvMsg(response);
// Process message // Process message
@@ -490,16 +490,16 @@ class TestClient
std::string getRevision(void) std::string getRevision(void)
{ {
// Send request // Send request
Remote::ClientMessage request; LmsAPI::ClientMessage request;
request.set_type( Remote::ClientMessage::AudioCollectionRequest ); request.set_type( LmsAPI::ClientMessage::AudioCollectionRequest );
request.mutable_audio_collection_request()->set_type( Remote::AudioCollectionRequest::TypeGetRevision); request.mutable_audio_collection_request()->set_type( LmsAPI::AudioCollectionRequest::TypeGetRevision);
sendMsg(request); sendMsg(request);
// Receive responses // Receive responses
Remote::ServerMessage response; LmsAPI::ServerMessage response;
recvMsg(response); recvMsg(response);
// Process message // Process message
@@ -515,18 +515,18 @@ class TestClient
bool login(const std::string& username, const std::string& password) bool login(const std::string& username, const std::string& password)
{ {
// Send request // Send request
Remote::ClientMessage request; LmsAPI::ClientMessage request;
request.set_type( Remote::ClientMessage::AuthRequest ); request.set_type( LmsAPI::ClientMessage::AuthRequest );
request.mutable_auth_request()->set_type( Remote::AuthRequest::TypePassword); request.mutable_auth_request()->set_type( LmsAPI::AuthRequest::TypePassword);
request.mutable_auth_request()->mutable_password()->set_user_login( username ); request.mutable_auth_request()->mutable_password()->set_user_login( username );
request.mutable_auth_request()->mutable_password()->set_user_password( password ); request.mutable_auth_request()->mutable_password()->set_user_password( password );
sendMsg(request); sendMsg(request);
// Receive responses // Receive responses
Remote::ServerMessage response; LmsAPI::ServerMessage response;
recvMsg(response); recvMsg(response);
// Process message // Process message
@@ -538,11 +538,11 @@ class TestClient
switch( response.auth_response().password_result().type()) switch( response.auth_response().password_result().type())
{ {
case Remote::AuthResponse::PasswordResult::TypePasswordValid: case LmsAPI::AuthResponse::PasswordResult::TypePasswordValid:
return true; return true;
case Remote::AuthResponse::PasswordResult::TypePasswordInvalid: case LmsAPI::AuthResponse::PasswordResult::TypePasswordInvalid:
return false; return false;
case Remote::AuthResponse::PasswordResult::TypeLoginThrottling: case LmsAPI::AuthResponse::PasswordResult::TypeLoginThrottling:
if (response.auth_response().password_result().has_delay()) if (response.auth_response().password_result().has_delay())
std::cerr << "Has to wait for " << response.auth_response().password_result().delay() << " seconds" << std::endl; std::cerr << "Has to wait for " << response.auth_response().password_result().delay() << " seconds" << std::endl;
@@ -571,24 +571,24 @@ class TestClient
{ {
// Send request // Send request
Remote::ClientMessage request; LmsAPI::ClientMessage request;
request.set_type( Remote::ClientMessage_Type_MediaRequest); request.set_type( LmsAPI::ClientMessage_Type_MediaRequest);
request.mutable_media_request()->set_type( Remote::MediaRequest_Type_TypeMediaPrepare); request.mutable_media_request()->set_type( LmsAPI::MediaRequest_Type_TypeMediaPrepare);
request.mutable_media_request()->mutable_prepare()->set_type(Remote::MediaRequest_Prepare_Type_AudioRequest); request.mutable_media_request()->mutable_prepare()->set_type(LmsAPI::MediaRequest_Prepare_Type_AudioRequest);
// Set fields // Set fields
request.mutable_media_request()->mutable_prepare()->mutable_audio()->set_track_id( audioId ); request.mutable_media_request()->mutable_prepare()->mutable_audio()->set_track_id( audioId );
request.mutable_media_request()->mutable_prepare()->mutable_audio()->set_codec_type( Remote::MediaRequest::Prepare::AudioCodecTypeOGA ); request.mutable_media_request()->mutable_prepare()->mutable_audio()->set_codec_type( LmsAPI::MediaRequest::Prepare::AudioCodecTypeOGA );
request.mutable_media_request()->mutable_prepare()->mutable_audio()->set_bitrate( Remote::MediaRequest::Prepare::AudioBitrate_64_kbps ); request.mutable_media_request()->mutable_prepare()->mutable_audio()->set_bitrate( LmsAPI::MediaRequest::Prepare::AudioBitrate_64_kbps );
std::cout << "Sending prepare request" << std::endl; std::cout << "Sending prepare request" << std::endl;
sendMsg(request); sendMsg(request);
std::cout << "Waiting for response" << std::endl; std::cout << "Waiting for response" << std::endl;
// Receive response // Receive response
Remote::ServerMessage response; LmsAPI::ServerMessage response;
recvMsg(response); recvMsg(response);
std::cout << "Got a response" << std::endl; std::cout << "Got a response" << std::endl;
@@ -616,11 +616,11 @@ class TestClient
std::size_t mediaGetPart(uint32_t handle, std::vector<unsigned char>& data) std::size_t mediaGetPart(uint32_t handle, std::vector<unsigned char>& data)
{ {
// Send request // Send request
Remote::ClientMessage request; LmsAPI::ClientMessage request;
request.set_type( Remote::ClientMessage::MediaRequest); request.set_type( LmsAPI::ClientMessage::MediaRequest);
request.mutable_media_request()->set_type( Remote::MediaRequest::TypeMediaGetPart); request.mutable_media_request()->set_type( LmsAPI::MediaRequest::TypeMediaGetPart);
request.mutable_media_request()->mutable_get_part()->set_handle(handle); request.mutable_media_request()->mutable_get_part()->set_handle(handle);
request.mutable_media_request()->mutable_get_part()->set_requested_data_size(65536); request.mutable_media_request()->mutable_get_part()->set_requested_data_size(65536);
@@ -629,7 +629,7 @@ class TestClient
std::cout << "Waiting for response" << std::endl; std::cout << "Waiting for response" << std::endl;
// Receive response // Receive response
Remote::ServerMessage response; LmsAPI::ServerMessage response;
recvMsg(response); recvMsg(response);
std::cout << "Got a response" << std::endl; std::cout << "Got a response" << std::endl;
@@ -638,7 +638,7 @@ class TestClient
throw std::runtime_error("not an media response"); throw std::runtime_error("not an media response");
// Process message // Process message
if (response.media_response().type() != Remote::MediaResponse::TypePartResult) if (response.media_response().type() != LmsAPI::MediaResponse::TypePartResult)
throw std::runtime_error("GetPart: not a Part response!"); throw std::runtime_error("GetPart: not a Part response!");
if (!response.media_response().has_part_result()) if (!response.media_response().has_part_result())
@@ -652,17 +652,17 @@ class TestClient
void mediaTerminate( uint32_t handle ) void mediaTerminate( uint32_t handle )
{ {
// Send request // Send request
Remote::ClientMessage request; LmsAPI::ClientMessage request;
request.set_type( Remote::ClientMessage::MediaRequest); request.set_type( LmsAPI::ClientMessage::MediaRequest);
request.mutable_media_request()->set_type( Remote::MediaRequest::TypeMediaTerminate); request.mutable_media_request()->set_type( LmsAPI::MediaRequest::TypeMediaTerminate);
request.mutable_media_request()->mutable_terminate()->set_handle(handle); request.mutable_media_request()->mutable_terminate()->set_handle(handle);
sendMsg(request); sendMsg(request);
// Receive response // Receive response
Remote::ServerMessage response; LmsAPI::ServerMessage response;
recvMsg(response); recvMsg(response);
@@ -684,18 +684,18 @@ class TestClient
if (message.SerializeToOstream(&os)) if (message.SerializeToOstream(&os))
{ {
if (_outputStreamBuf.size() > Remote::Header::max_data_size) if (_outputStreamBuf.size() > LmsAPI::Header::max_data_size)
{ {
std::ostringstream oss; oss << "Message too big = " << _outputStreamBuf.size() << " bytes! (max is " << Remote::Header::max_data_size << ")" << std::endl; std::ostringstream oss; oss << "Message too big = " << _outputStreamBuf.size() << " bytes! (max is " << LmsAPI::Header::max_data_size << ")" << std::endl;
throw std::runtime_error("Message to big!"); throw std::runtime_error("Message to big!");
} }
// Send message header // Send message header
std::array<unsigned char, Remote::Header::size> headerBuffer; std::array<unsigned char, LmsAPI::Header::size> headerBuffer;
// Generate header content // Generate header content
{ {
Remote::Header header; LmsAPI::Header header;
header.setDataSize(_outputStreamBuf.size()); header.setDataSize(_outputStreamBuf.size());
header.to_buffer(headerBuffer); header.to_buffer(headerBuffer);
} }
@@ -725,18 +725,18 @@ class TestClient
{ {
// reserve bytes in output sequence // reserve bytes in output sequence
boost::asio::streambuf::mutable_buffers_type bufs = _inputStreamBuf.prepare(Remote::Header::size); boost::asio::streambuf::mutable_buffers_type bufs = _inputStreamBuf.prepare(LmsAPI::Header::size);
std::size_t n = boost::asio::read(_socket, std::size_t n = boost::asio::read(_socket,
bufs, bufs,
boost::asio::transfer_exactly(Remote::Header::size)); boost::asio::transfer_exactly(LmsAPI::Header::size));
assert(n == Remote::Header::size); assert(n == LmsAPI::Header::size);
_inputStreamBuf.commit(n); _inputStreamBuf.commit(n);
} }
Remote::Header header; LmsAPI::Header header;
if (!header.from_istream(is)) if (!header.from_istream(is))
throw std::runtime_error("Cannot read header from buffer!"); throw std::runtime_error("Cannot read header from buffer!");