Have sqlite connection object be pointers to help make sure correct destruction pattern happens.
This commit is contained in:
@@ -29,11 +29,13 @@
|
|||||||
#include <groovefingerprinter/fingerprinter.h>
|
#include <groovefingerprinter/fingerprinter.h>
|
||||||
#include <grooveplayer/player.h>
|
#include <grooveplayer/player.h>
|
||||||
|
|
||||||
GroovePlayerMgr::GroovePlayerMgr (std::string dbFile) : sqliteConnection(dbFile), connectionPool(&sqliteConnection, 3)
|
GroovePlayerMgr::GroovePlayerMgr (std::string dbFile)
|
||||||
{
|
{
|
||||||
|
sqliteConnection = new Wt::Dbo::backend::Sqlite3(dbFile);
|
||||||
|
connectionPool = new Wt::Dbo::FixedSqlConnectionPool(sqliteConnection, 3);
|
||||||
musicScanDir = std::filesystem::current_path()/"music";
|
musicScanDir = std::filesystem::current_path()/"music";
|
||||||
Wt::Dbo::Session sqlSession;
|
Wt::Dbo::Session sqlSession;
|
||||||
sqlSession.setConnectionPool(connectionPool);
|
sqlSession.setConnectionPool(*connectionPool);
|
||||||
sqlSession.mapClass<User>("user");
|
sqlSession.mapClass<User>("user");
|
||||||
sqlSession.mapClass<AudioTrack>("tracks");
|
sqlSession.mapClass<AudioTrack>("tracks");
|
||||||
sqlSession.mapClass<UserAction>("actions");
|
sqlSession.mapClass<UserAction>("actions");
|
||||||
@@ -52,6 +54,11 @@ GroovePlayerMgr::GroovePlayerMgr (std::string dbFile) : sqliteConnection(dbFile)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GroovePlayerMgr::~GroovePlayerMgr()
|
||||||
|
{
|
||||||
|
delete connectionPool;
|
||||||
|
}
|
||||||
|
|
||||||
std::list<AudioTrack> GroovePlayerMgr::getNextVoteBatch(Wt::Dbo::Session* session)
|
std::list<AudioTrack> GroovePlayerMgr::getNextVoteBatch(Wt::Dbo::Session* session)
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
@@ -136,7 +143,7 @@ void GroovePlayerMgr::grooveEventLoop()
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
Wt::Dbo::Session sqlSession;
|
Wt::Dbo::Session sqlSession;
|
||||||
sqlSession.setConnectionPool(connectionPool);
|
sqlSession.setConnectionPool(*connectionPool);
|
||||||
sqlSession.mapClass<User>("user");
|
sqlSession.mapClass<User>("user");
|
||||||
sqlSession.mapClass<AudioTrack>("tracks");
|
sqlSession.mapClass<AudioTrack>("tracks");
|
||||||
sqlSession.mapClass<UserAction>("actions");
|
sqlSession.mapClass<UserAction>("actions");
|
||||||
@@ -471,7 +478,7 @@ void GroovePlayerMgr::removeOrphanedTracks(Wt::Dbo::Session* session)
|
|||||||
void GroovePlayerMgr::grooveAudioScannerLoop()
|
void GroovePlayerMgr::grooveAudioScannerLoop()
|
||||||
{
|
{
|
||||||
Wt::Dbo::Session sqlSession;
|
Wt::Dbo::Session sqlSession;
|
||||||
sqlSession.setConnectionPool(connectionPool);
|
sqlSession.setConnectionPool(*connectionPool);
|
||||||
sqlSession.mapClass<User>("user");
|
sqlSession.mapClass<User>("user");
|
||||||
sqlSession.mapClass<AudioTrack>("tracks");
|
sqlSession.mapClass<AudioTrack>("tracks");
|
||||||
sqlSession.mapClass<UserAction>("actions");
|
sqlSession.mapClass<UserAction>("actions");
|
||||||
|
|||||||
@@ -54,8 +54,9 @@ private:
|
|||||||
enum PlayerEvents {NOTHING, GROOVE_NOWPLAYING, VOTING_ENDED, VOTE_CAST, PLAYING_PAUSED, PLAYING_RESUMED, SKIP_REQUESTED, SKIP_VOTE_CAST, SKIP_VOTING_ENDED, ADMIN_FORCE_SKIP};
|
enum PlayerEvents {NOTHING, GROOVE_NOWPLAYING, VOTING_ENDED, VOTE_CAST, PLAYING_PAUSED, PLAYING_RESUMED, SKIP_REQUESTED, SKIP_VOTE_CAST, SKIP_VOTING_ENDED, ADMIN_FORCE_SKIP};
|
||||||
|
|
||||||
GroovePlayerMgr (std::string dbFile);
|
GroovePlayerMgr (std::string dbFile);
|
||||||
Wt::Dbo::backend::Sqlite3 sqliteConnection;
|
~GroovePlayerMgr();
|
||||||
Wt::Dbo::FixedSqlConnectionPool connectionPool;
|
Wt::Dbo::backend::Sqlite3* sqliteConnection;
|
||||||
|
Wt::Dbo::FixedSqlConnectionPool* connectionPool;
|
||||||
bool continueEventLoop = true;
|
bool continueEventLoop = true;
|
||||||
|
|
||||||
std::list<AudioTrack> requestQueue;
|
std::list<AudioTrack> requestQueue;
|
||||||
|
|||||||
Reference in New Issue
Block a user