[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> >
Artist::getReleases()
Artist::getReleases() const
{
assert(self());
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; }
// 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; }
+1 -1
View File
@@ -130,7 +130,7 @@ Release::getByFilter(Wt::Dbo::Session& session, SearchFilter filter, int offset,
}
std::vector< Wt::Dbo::ptr<Artist> >
Release::getArtists()
Release::getArtists() const
{
assert(self());
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; }
bool isNone(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<Track> > getTracks(); // Get the tracks of this release
std::vector<Wt::Dbo::ptr<Artist> > getArtists() const; // Get the artists of this release
std::vector<Wt::Dbo::ptr<Track> > getTracks() const; // Get the tracks of this release
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);
assert(res.size() == 1);
assert(res.front().id() == 1);
// Make sure artist has a release
assert(res.front()->getReleases().size() == 1);
}
// Select Release by name
@@ -179,6 +182,9 @@ int main(void)
assert(res.size() == 1);
assert(res.front().id() == 1);
assert(res.front()->getName() == "release01");
// Make sure release has an artist
assert(res.front()->getArtists().size() == 1);
}
// Select genre by name
+68 -68
View File
@@ -27,7 +27,7 @@
#include <boost/asio/ssl.hpp>
#include <boost/foreach.hpp>
#include "remote/messages/Header.hpp"
#include "lms-api/messages/Header.hpp"
#include "messages.pb.h"
#include "TestDatabase.hpp"
@@ -123,7 +123,7 @@ struct SearchFilter
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)
request.add_artist_id(id);
@@ -174,11 +174,11 @@ class TestClient
std::size_t nbArtists = 0;
// 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_offset(offset);
SearchFilterToRequest(filter, *request.mutable_audio_collection_request()->mutable_get_artists()->mutable_search_filter());
@@ -186,7 +186,7 @@ class TestClient
sendMsg(request);
// Receive responses
Remote::ServerMessage response;
LmsAPI::ServerMessage response;
recvMsg(response);
// Process message
@@ -198,7 +198,7 @@ class TestClient
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())
throw std::runtime_error("no id!");
@@ -235,11 +235,11 @@ class TestClient
std::size_t nbAdded = 0;
// 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_offset(offset);
SearchFilterToRequest(filter, *request.mutable_audio_collection_request()->mutable_get_genres()->mutable_search_filter());
@@ -247,7 +247,7 @@ class TestClient
sendMsg(request);
// Receive responses
Remote::ServerMessage response;
LmsAPI::ServerMessage response;
recvMsg(response);
// Process message
@@ -259,7 +259,7 @@ class TestClient
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())
throw std::runtime_error("no genre id!");
@@ -293,11 +293,11 @@ class TestClient
std::size_t nbAdded = 0;
// 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_offset(offset);
SearchFilterToRequest(filter, *request.mutable_audio_collection_request()->mutable_get_releases()->mutable_search_filter());
@@ -305,14 +305,14 @@ class TestClient
sendMsg(request);
// Receive responses
Remote::ServerMessage response;
LmsAPI::ServerMessage response;
recvMsg(response);
// Process message
if (!response.audio_collection_response().has_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!");
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)
{
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())
throw std::runtime_error("no id!");
@@ -355,11 +355,11 @@ class TestClient
std::size_t nbAdded = 0;
// 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_offset(offset);
SearchFilterToRequest(filter, *request.mutable_audio_collection_request()->mutable_get_tracks()->mutable_search_filter());
@@ -367,7 +367,7 @@ class TestClient
sendMsg(request);
// Receive responses
Remote::ServerMessage response;
LmsAPI::ServerMessage response;
recvMsg(response);
// Process message
@@ -379,7 +379,7 @@ class TestClient
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;
track.id = respTrack.id();
@@ -426,18 +426,18 @@ class TestClient
void getCoverTrack(std::vector<Cover>& coverArt, uint64_t trackId)
{
// 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()->mutable_get_cover_art()->set_type( Remote::AudioCollectionRequest::GetCoverArt::TypeGetCoverArtTrack);
request.mutable_audio_collection_request()->set_type( LmsAPI::AudioCollectionRequest::TypeGetCoverArt);
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_size( 256 );
sendMsg(request);
// Receive responses
Remote::ServerMessage response;
LmsAPI::ServerMessage response;
recvMsg(response);
// Process message
@@ -457,19 +457,19 @@ class TestClient
void getCoverRelease(std::vector<Cover>& coverArt, uint64_t releaseId)
{
// 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()->mutable_get_cover_art()->set_type( Remote::AudioCollectionRequest::GetCoverArt::TypeGetCoverArtRelease);
request.mutable_audio_collection_request()->set_type( LmsAPI::AudioCollectionRequest::TypeGetCoverArt);
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_size( 256 );
sendMsg(request);
// Receive responses
Remote::ServerMessage response;
LmsAPI::ServerMessage response;
recvMsg(response);
// Process message
@@ -490,16 +490,16 @@ class TestClient
std::string getRevision(void)
{
// 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);
// Receive responses
Remote::ServerMessage response;
LmsAPI::ServerMessage response;
recvMsg(response);
// Process message
@@ -515,18 +515,18 @@ class TestClient
bool login(const std::string& username, const std::string& password)
{
// 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_password( password );
sendMsg(request);
// Receive responses
Remote::ServerMessage response;
LmsAPI::ServerMessage response;
recvMsg(response);
// Process message
@@ -538,11 +538,11 @@ class TestClient
switch( response.auth_response().password_result().type())
{
case Remote::AuthResponse::PasswordResult::TypePasswordValid:
case LmsAPI::AuthResponse::PasswordResult::TypePasswordValid:
return true;
case Remote::AuthResponse::PasswordResult::TypePasswordInvalid:
case LmsAPI::AuthResponse::PasswordResult::TypePasswordInvalid:
return false;
case Remote::AuthResponse::PasswordResult::TypeLoginThrottling:
case LmsAPI::AuthResponse::PasswordResult::TypeLoginThrottling:
if (response.auth_response().password_result().has_delay())
std::cerr << "Has to wait for " << response.auth_response().password_result().delay() << " seconds" << std::endl;
@@ -571,24 +571,24 @@ class TestClient
{
// 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()->mutable_prepare()->set_type(Remote::MediaRequest_Prepare_Type_AudioRequest);
request.mutable_media_request()->set_type( LmsAPI::MediaRequest_Type_TypeMediaPrepare);
request.mutable_media_request()->mutable_prepare()->set_type(LmsAPI::MediaRequest_Prepare_Type_AudioRequest);
// Set fields
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_bitrate( Remote::MediaRequest::Prepare::AudioBitrate_64_kbps );
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( LmsAPI::MediaRequest::Prepare::AudioBitrate_64_kbps );
std::cout << "Sending prepare request" << std::endl;
sendMsg(request);
std::cout << "Waiting for response" << std::endl;
// Receive response
Remote::ServerMessage response;
LmsAPI::ServerMessage response;
recvMsg(response);
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)
{
// 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_requested_data_size(65536);
@@ -629,7 +629,7 @@ class TestClient
std::cout << "Waiting for response" << std::endl;
// Receive response
Remote::ServerMessage response;
LmsAPI::ServerMessage response;
recvMsg(response);
std::cout << "Got a response" << std::endl;
@@ -638,7 +638,7 @@ class TestClient
throw std::runtime_error("not an media response");
// 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!");
if (!response.media_response().has_part_result())
@@ -652,17 +652,17 @@ class TestClient
void mediaTerminate( uint32_t handle )
{
// 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);
sendMsg(request);
// Receive response
Remote::ServerMessage response;
LmsAPI::ServerMessage response;
recvMsg(response);
@@ -684,18 +684,18 @@ class TestClient
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!");
}
// Send message header
std::array<unsigned char, Remote::Header::size> headerBuffer;
std::array<unsigned char, LmsAPI::Header::size> headerBuffer;
// Generate header content
{
Remote::Header header;
LmsAPI::Header header;
header.setDataSize(_outputStreamBuf.size());
header.to_buffer(headerBuffer);
}
@@ -725,18 +725,18 @@ class TestClient
{
// 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,
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);
}
Remote::Header header;
LmsAPI::Header header;
if (!header.from_istream(is))
throw std::runtime_error("Cannot read header from buffer!");