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 <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";
|
||||
Wt::Dbo::Session sqlSession;
|
||||
sqlSession.setConnectionPool(connectionPool);
|
||||
sqlSession.setConnectionPool(*connectionPool);
|
||||
sqlSession.mapClass<User>("user");
|
||||
sqlSession.mapClass<AudioTrack>("tracks");
|
||||
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)
|
||||
{
|
||||
/**
|
||||
@@ -136,7 +143,7 @@ void GroovePlayerMgr::grooveEventLoop()
|
||||
*/
|
||||
|
||||
Wt::Dbo::Session sqlSession;
|
||||
sqlSession.setConnectionPool(connectionPool);
|
||||
sqlSession.setConnectionPool(*connectionPool);
|
||||
sqlSession.mapClass<User>("user");
|
||||
sqlSession.mapClass<AudioTrack>("tracks");
|
||||
sqlSession.mapClass<UserAction>("actions");
|
||||
@@ -471,7 +478,7 @@ void GroovePlayerMgr::removeOrphanedTracks(Wt::Dbo::Session* session)
|
||||
void GroovePlayerMgr::grooveAudioScannerLoop()
|
||||
{
|
||||
Wt::Dbo::Session sqlSession;
|
||||
sqlSession.setConnectionPool(connectionPool);
|
||||
sqlSession.setConnectionPool(*connectionPool);
|
||||
sqlSession.mapClass<User>("user");
|
||||
sqlSession.mapClass<AudioTrack>("tracks");
|
||||
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};
|
||||
|
||||
GroovePlayerMgr (std::string dbFile);
|
||||
Wt::Dbo::backend::Sqlite3 sqliteConnection;
|
||||
Wt::Dbo::FixedSqlConnectionPool connectionPool;
|
||||
~GroovePlayerMgr();
|
||||
Wt::Dbo::backend::Sqlite3* sqliteConnection;
|
||||
Wt::Dbo::FixedSqlConnectionPool* connectionPool;
|
||||
bool continueEventLoop = true;
|
||||
|
||||
std::list<AudioTrack> requestQueue;
|
||||
|
||||
Reference in New Issue
Block a user