Created an interface for the Db class
This commit is contained in:
@@ -23,11 +23,11 @@
|
||||
|
||||
namespace lms::db
|
||||
{
|
||||
class Db;
|
||||
class IDb;
|
||||
}
|
||||
|
||||
namespace lms::recommendation
|
||||
{
|
||||
class IEngine;
|
||||
std::unique_ptr<IEngine> createClustersEngine(db::Db& db);
|
||||
std::unique_ptr<IEngine> createClustersEngine(db::IDb& db);
|
||||
} // namespace lms::recommendation
|
||||
|
||||
@@ -25,10 +25,10 @@
|
||||
|
||||
namespace lms::db
|
||||
{
|
||||
class Db;
|
||||
class IDb;
|
||||
}
|
||||
|
||||
namespace lms::recommendation
|
||||
{
|
||||
std::unique_ptr<IEngine> createFeaturesEngine(db::Db& db);
|
||||
std::unique_ptr<IEngine> createFeaturesEngine(db::IDb& db);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
namespace lms::db
|
||||
{
|
||||
class Db;
|
||||
class IDb;
|
||||
}
|
||||
|
||||
namespace lms::recommendation
|
||||
@@ -47,6 +47,6 @@ namespace lms::recommendation
|
||||
virtual ArtistContainer getSimilarArtists(db::ArtistId artistId, core::EnumSet<db::TrackArtistLinkType> linkTypes, std::size_t maxCount) const = 0;
|
||||
};
|
||||
|
||||
std::unique_ptr<IEngine> createEngine(db::Db& db);
|
||||
std::unique_ptr<IEngine> createEngine(db::IDb& db);
|
||||
|
||||
} // namespace lms::recommendation
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#include <algorithm>
|
||||
|
||||
#include "core/ILogger.hpp"
|
||||
#include "database/Db.hpp"
|
||||
#include "database/IDb.hpp"
|
||||
#include "database/Session.hpp"
|
||||
#include "database/Track.hpp"
|
||||
#include "services/recommendation/IRecommendationService.hpp"
|
||||
@@ -35,12 +35,12 @@ namespace lms::recommendation
|
||||
{
|
||||
using namespace db;
|
||||
|
||||
std::unique_ptr<IPlaylistGeneratorService> createPlaylistGeneratorService(Db& db, IRecommendationService& recommendationService)
|
||||
std::unique_ptr<IPlaylistGeneratorService> createPlaylistGeneratorService(db::IDb& db, IRecommendationService& recommendationService)
|
||||
{
|
||||
return std::make_unique<PlaylistGeneratorService>(db, recommendationService);
|
||||
}
|
||||
|
||||
PlaylistGeneratorService::PlaylistGeneratorService(Db& db, IRecommendationService& recommendationService)
|
||||
PlaylistGeneratorService::PlaylistGeneratorService(db::IDb& db, IRecommendationService& recommendationService)
|
||||
: _db{ db }
|
||||
, _recommendationService{ recommendationService }
|
||||
{
|
||||
|
||||
@@ -29,14 +29,14 @@ namespace lms::recommendation
|
||||
class PlaylistGeneratorService : public IPlaylistGeneratorService
|
||||
{
|
||||
public:
|
||||
PlaylistGeneratorService(db::Db& db, IRecommendationService& recommendationService);
|
||||
PlaylistGeneratorService(db::IDb& db, IRecommendationService& recommendationService);
|
||||
|
||||
private:
|
||||
TrackContainer extendPlaylist(db::TrackListId tracklistId, std::size_t maxCount) const override;
|
||||
|
||||
TrackContainer getTracksFromTrackList(db::TrackListId tracklistId) const;
|
||||
|
||||
db::Db& _db;
|
||||
db::IDb& _db;
|
||||
IRecommendationService& _recommendationService;
|
||||
std::vector<std::unique_ptr<PlaylistGeneratorConstraint::IConstraint>> _constraints;
|
||||
};
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "database/Db.hpp"
|
||||
#include "database/IDb.hpp"
|
||||
#include "database/ScanSettings.hpp"
|
||||
#include "database/Session.hpp"
|
||||
|
||||
@@ -40,12 +40,12 @@ namespace lms::recommendation
|
||||
}
|
||||
} // namespace
|
||||
|
||||
std::unique_ptr<IRecommendationService> createRecommendationService(db::Db& db)
|
||||
std::unique_ptr<IRecommendationService> createRecommendationService(db::IDb& db)
|
||||
{
|
||||
return std::make_unique<RecommendationService>(db);
|
||||
}
|
||||
|
||||
RecommendationService::RecommendationService(db::Db& db)
|
||||
RecommendationService::RecommendationService(db::IDb& db)
|
||||
: _db{ db }
|
||||
{
|
||||
load();
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
namespace lms::db
|
||||
{
|
||||
class Db;
|
||||
class IDb;
|
||||
}
|
||||
|
||||
namespace lms::recommendation
|
||||
@@ -41,7 +41,7 @@ namespace lms::recommendation
|
||||
class RecommendationService : public IRecommendationService
|
||||
{
|
||||
public:
|
||||
RecommendationService(db::Db& db);
|
||||
RecommendationService(db::IDb& db);
|
||||
~RecommendationService() override = default;
|
||||
RecommendationService(const RecommendationService&) = delete;
|
||||
RecommendationService& operator=(const RecommendationService&) = delete;
|
||||
@@ -58,7 +58,7 @@ namespace lms::recommendation
|
||||
void clearEngines();
|
||||
void loadPendingEngine(EngineType engineType, std::unique_ptr<IEngine> engine, bool forceReload, const ProgressCallback& progressCallback);
|
||||
|
||||
db::Db& _db;
|
||||
db::IDb& _db;
|
||||
std::optional<EngineType> _engineType;
|
||||
std::unique_ptr<IEngine> _engine;
|
||||
};
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
#include "database/Artist.hpp"
|
||||
#include "database/Cluster.hpp"
|
||||
#include "database/Db.hpp"
|
||||
#include "database/IDb.hpp"
|
||||
#include "database/Release.hpp"
|
||||
#include "database/Session.hpp"
|
||||
#include "database/Track.hpp"
|
||||
@@ -29,10 +29,9 @@
|
||||
|
||||
namespace lms::recommendation
|
||||
{
|
||||
|
||||
using namespace db;
|
||||
|
||||
std::unique_ptr<IEngine> createClustersEngine(Db& db)
|
||||
std::unique_ptr<IEngine> createClustersEngine(db::IDb& db)
|
||||
{
|
||||
return std::make_unique<ClusterEngine>(db);
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace lms::recommendation
|
||||
class ClusterEngine : public IEngine
|
||||
{
|
||||
public:
|
||||
ClusterEngine(db::Db& db)
|
||||
ClusterEngine(db::IDb& db)
|
||||
: _db{ db } {}
|
||||
|
||||
~ClusterEngine() override = default;
|
||||
@@ -45,7 +45,7 @@ namespace lms::recommendation
|
||||
ReleaseContainer getSimilarReleases(db::ReleaseId releaseId, std::size_t maxCount) const override;
|
||||
ArtistContainer getSimilarArtists(db::ArtistId artistId, core::EnumSet<db::TrackArtistLinkType> linkTypes, std::size_t maxCount) const override;
|
||||
|
||||
db::Db& _db;
|
||||
db::IDb& _db;
|
||||
};
|
||||
|
||||
} // namespace lms::recommendation
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
#include "core/ILogger.hpp"
|
||||
#include "core/Random.hpp"
|
||||
#include "database/Artist.hpp"
|
||||
#include "database/Db.hpp"
|
||||
#include "database/IDb.hpp"
|
||||
#include "database/Release.hpp"
|
||||
#include "database/Session.hpp"
|
||||
#include "database/Track.hpp"
|
||||
@@ -37,7 +37,7 @@ namespace lms::recommendation
|
||||
{
|
||||
using namespace db;
|
||||
|
||||
std::unique_ptr<IEngine> createFeaturesEngine(Db& db)
|
||||
std::unique_ptr<IEngine> createFeaturesEngine(db::IDb& db)
|
||||
{
|
||||
return std::make_unique<FeaturesEngine>(db);
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace lms::recommendation
|
||||
class FeaturesEngine : public IEngine
|
||||
{
|
||||
public:
|
||||
FeaturesEngine(db::Db& db)
|
||||
FeaturesEngine(db::IDb& db)
|
||||
: _db{ db } {}
|
||||
|
||||
FeaturesEngine(const FeaturesEngine&) = delete;
|
||||
@@ -105,7 +105,7 @@ namespace lms::recommendation
|
||||
const ObjectPositions<IdType>& objectPositions,
|
||||
std::size_t maxCount) const;
|
||||
|
||||
db::Db& _db;
|
||||
db::IDb& _db;
|
||||
bool _loadCancelled{};
|
||||
std::unique_ptr<som::Network> _network;
|
||||
double _networkRefVectorsDistanceMedian{};
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include "database/Db.hpp"
|
||||
#include "database/IDb.hpp"
|
||||
#include "database/Release.hpp"
|
||||
#include "database/Session.hpp"
|
||||
#include "database/Track.hpp"
|
||||
@@ -42,7 +42,7 @@ namespace lms::recommendation::PlaylistGeneratorConstraint
|
||||
}
|
||||
} // namespace
|
||||
|
||||
ConsecutiveArtists::ConsecutiveArtists(db::Db& db)
|
||||
ConsecutiveArtists::ConsecutiveArtists(db::IDb& db)
|
||||
: _db{ db }
|
||||
{
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
namespace lms::db
|
||||
{
|
||||
class Db;
|
||||
class IDb;
|
||||
}
|
||||
|
||||
namespace lms::recommendation::PlaylistGeneratorConstraint
|
||||
@@ -31,7 +31,7 @@ namespace lms::recommendation::PlaylistGeneratorConstraint
|
||||
class ConsecutiveArtists : public IConstraint
|
||||
{
|
||||
public:
|
||||
ConsecutiveArtists(db::Db& db);
|
||||
ConsecutiveArtists(db::IDb& db);
|
||||
~ConsecutiveArtists() override = default;
|
||||
ConsecutiveArtists(const ConsecutiveArtists&) = delete;
|
||||
ConsecutiveArtists& operator=(const ConsecutiveArtists&) = delete;
|
||||
@@ -40,6 +40,6 @@ namespace lms::recommendation::PlaylistGeneratorConstraint
|
||||
float computeScore(const TrackContainer& trackIds, std::size_t trackIndex) override;
|
||||
ArtistContainer getArtists(db::TrackId trackId);
|
||||
|
||||
db::Db& _db;
|
||||
db::IDb& _db;
|
||||
};
|
||||
} // namespace lms::recommendation::PlaylistGeneratorConstraint
|
||||
|
||||
@@ -19,14 +19,14 @@
|
||||
|
||||
#include "ConsecutiveReleases.hpp"
|
||||
|
||||
#include "database/Db.hpp"
|
||||
#include "database/IDb.hpp"
|
||||
#include "database/Release.hpp"
|
||||
#include "database/Session.hpp"
|
||||
#include "database/Track.hpp"
|
||||
|
||||
namespace lms::recommendation::PlaylistGeneratorConstraint
|
||||
{
|
||||
ConsecutiveReleases::ConsecutiveReleases(db::Db& db)
|
||||
ConsecutiveReleases::ConsecutiveReleases(db::IDb& db)
|
||||
: _db{ db }
|
||||
{
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
namespace lms::db
|
||||
{
|
||||
class Db;
|
||||
class IDb;
|
||||
}
|
||||
|
||||
namespace lms::recommendation::PlaylistGeneratorConstraint
|
||||
@@ -33,7 +33,7 @@ namespace lms::recommendation::PlaylistGeneratorConstraint
|
||||
class ConsecutiveReleases : public IConstraint
|
||||
{
|
||||
public:
|
||||
ConsecutiveReleases(db::Db& db);
|
||||
ConsecutiveReleases(db::IDb& db);
|
||||
~ConsecutiveReleases() override = default;
|
||||
ConsecutiveReleases(const ConsecutiveReleases&) = delete;
|
||||
ConsecutiveReleases& operator=(const ConsecutiveReleases&) = delete;
|
||||
@@ -43,6 +43,6 @@ namespace lms::recommendation::PlaylistGeneratorConstraint
|
||||
|
||||
db::ReleaseId getReleaseId(db::TrackId trackId);
|
||||
|
||||
db::Db& _db;
|
||||
db::IDb& _db;
|
||||
};
|
||||
} // namespace lms::recommendation::PlaylistGeneratorConstraint
|
||||
|
||||
+2
-2
@@ -26,7 +26,7 @@
|
||||
|
||||
namespace lms::db
|
||||
{
|
||||
class Db;
|
||||
class IDb;
|
||||
}
|
||||
|
||||
namespace lms::recommendation
|
||||
@@ -41,5 +41,5 @@ namespace lms::recommendation
|
||||
virtual TrackContainer extendPlaylist(db::TrackListId tracklistId, std::size_t maxCount) const = 0;
|
||||
};
|
||||
|
||||
std::unique_ptr<IPlaylistGeneratorService> createPlaylistGeneratorService(db::Db& db, IRecommendationService& recommendationService);
|
||||
std::unique_ptr<IPlaylistGeneratorService> createPlaylistGeneratorService(db::IDb& db, IRecommendationService& recommendationService);
|
||||
} // namespace lms::recommendation
|
||||
|
||||
+2
-2
@@ -31,7 +31,7 @@
|
||||
|
||||
namespace lms::db
|
||||
{
|
||||
class Db;
|
||||
class IDb;
|
||||
}
|
||||
|
||||
namespace lms::recommendation
|
||||
@@ -49,5 +49,5 @@ namespace lms::recommendation
|
||||
virtual ArtistContainer getSimilarArtists(db::ArtistId artistId, core::EnumSet<db::TrackArtistLinkType> linkTypes, std::size_t maxCount) const = 0;
|
||||
};
|
||||
|
||||
std::unique_ptr<IRecommendationService> createRecommendationService(db::Db& db);
|
||||
std::unique_ptr<IRecommendationService> createRecommendationService(db::IDb& db);
|
||||
} // namespace lms::recommendation
|
||||
|
||||
Reference in New Issue
Block a user