[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [amarok] /: Refactoring: Create StorageManager to provide SqlStorage
From: Ralf Engels <ralf-engels () gmx ! de>
Date: 2015-01-17 18:12:19
Message-ID: E1YCXr9-000431-7U () scm ! kde ! org
[Download RAW message or body]
Git commit f4300eeeddbd3d620280779e031d342e03623ac5 by Ralf Engels.
Committed on 19/12/2014 at 14:07.
Pushed by rengels into branch 'master'.
Refactoring: Create StorageManager to provide SqlStorage
A implement a Storage manager that will provide the SqlStorage.
Reason: all parts of Amarok are relying on an SqlStorage.
Currently the collection manager does this job in addition to
it's main job of managing the collections.
Next step: move storage in separate plugin.
Note: deactivate all remainders of switching databases. That
never works and will hit a lot of Services since they suddenly are
without propperly initialized tables.
M +3 -1 src/App.cpp
M +8 -0 src/CMakeLists.txt
M +13 -8 src/PluginManager.cpp
M +6 -6 src/amarokurls/AmarokUrl.cpp
M +3 -3 src/amarokurls/AmarokUrlHandler.cpp
M +8 -8 src/amarokurls/BookmarkGroup.cpp
M +8 -8 src/amarokurls/BookmarkModel.cpp
M +3 -2 src/amarokurls/PlayUrlRunner.cpp
M +1 -1 src/core-impl/collections/db/MountPointManager.cpp
M +1 -1 src/core-impl/collections/db/sql/DatabaseUpdater.cpp
M +2 -2 src/core-impl/collections/db/sql/SqlCollection.h
M +1 -1 src/core-impl/collections/db/sql/SqlCollectionLocation.cpp
M +1 -1 src/core-impl/collections/db/sql/SqlMeta.cpp
M +1 -1 src/core-impl/collections/db/sql/SqlQueryMaker.cpp
M +1 -1 src/core-impl/collections/db/sql/SqlQueryMakerInternal.cpp
M +1 -1 src/core-impl/collections/db/sql/SqlReadLabelCapability.cpp
M +1 -1 src/core-impl/collections/db/sql/SqlWriteLabelCapability.cpp
M +1 -1 src/core-impl/collections/db/sql/device/massstorage/MassStorageDeviceHandler.cpp
M +1 -1 src/core-impl/collections/db/sql/device/nfs/NfsDeviceHandler.cpp
M +1 -1 src/core-impl/collections/db/sql/device/smb/SmbDeviceHandler.cpp
M +3 -3 src/core-impl/collections/db/sql/mysqlecollection/MySqlEmbeddedCollection.cpp
M +1 -1 src/core-impl/collections/db/sql/mysqlservercollection/CMakeLists.txt
M +1 -113 src/core-impl/collections/db/sql/mysqlservercollection/MySqlServerCollection.cpp
M +0 -14 src/core-impl/collections/db/sql/mysqlservercollection/MySqlServerCollection.h
M +1 -77 src/core-impl/collections/support/CollectionManager.cpp
M +0 -8 src/core-impl/collections/support/CollectionManager.h
M +9 -8 src/core-impl/podcasts/sql/SqlPodcastMeta.cpp
M +10 -10 src/core-impl/podcasts/sql/SqlPodcastProvider.cpp
A +168 -0 src/core-impl/storage/StorageManager.cpp [License: GPL (v2+)]
A +99 -0 src/core-impl/storage/StorageManager.h [License: GPL (v2+)]
M +4 -4 src/core-impl/support/TagStatisticsStore.cpp
M +4 -4 src/core-impl/support/UrlStatisticsStore.cpp
A +71 -0 src/core/storage/SqlStorage.h [License: GPL (v2+)]
M +10 -10 src/playlistmanager/sql/SqlPlaylist.cpp
M +6 -6 src/playlistmanager/sql/SqlPlaylistGroup.cpp
M +6 -6 src/playlistmanager/sql/SqlUserPlaylistProvider.cpp
M +4 -3 src/scripting/scriptengine/AmarokCollectionScript.cpp
M +6 -6 src/services/ServiceSqlCollection.cpp
M +3 -3 src/services/ServiceSqlQueryMaker.cpp
M +11 -11 src/services/jamendo/JamendoDatabaseHandler.cpp
M +14 -14 src/services/magnatune/MagnatuneDatabaseHandler.cpp
M +6 -6 src/services/magnatune/MagnatuneDatabaseWorker.cpp
M +1 -1 src/services/opmldirectory/OpmlDirectoryDatabaseHandler.cpp
M +2 -2 tests/core-impl/collections/db/sql/CMakeLists.txt
M +1 -1 tests/core-impl/collections/db/sql/TestDatabaseUpdater.cpp
M +1 -1 tests/core-impl/collections/db/sql/TestSqlAlbum.cpp
M +1 -3 tests/core-impl/collections/db/sql/TestSqlArtist.cpp
M +1 -1 tests/core-impl/collections/db/sql/TestSqlCollection.cpp
M +1 -1 tests/core-impl/collections/db/sql/TestSqlCollectionLocation.cpp
M +1 -1 tests/core-impl/collections/db/sql/TestSqlQueryMaker.cpp
M +1 -1 tests/core-impl/collections/db/sql/TestSqlScanManager.cpp
M +1 -2 tests/core-impl/collections/db/sql/TestSqlTrack.cpp
M +1 -1 tests/mocks/SqlStorageMock.h
http://commits.kde.org/amarok/f4300eeeddbd3d620280779e031d342e03623ac5
diff --git a/src/App.cpp b/src/App.cpp
index ad76f8e..4930354 100644
--- a/src/App.cpp
+++ b/src/App.cpp
@@ -40,6 +40,7 @@
#include "core/transcoding/TranscodingController.h"
#include "core-impl/collections/support/CollectionManager.h"
#include "core-impl/playlists/types/file/PlaylistFileSupport.h"
+#include "core-impl/storage/StorageManager.h"
#include "covermanager/CoverCache.h"
#include "covermanager/CoverFetcher.h"
#include "dbus/CollectionDBusHandler.h"
@@ -238,8 +239,9 @@ App::~App()
PlaylistManager::destroy();
CoverFetcher::destroy();
CoverCache::destroy();
- CollectionManager::destroy();
ServicePluginManager::destroy();
+ CollectionManager::destroy();
+ StorageManager::destroy();
NetworkAccessManagerProxy::destroy();
Plugins::PluginManager::destroy();
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 8c088ca..5c5dbbb 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -258,6 +258,13 @@ set(collection_SRCS
)
#####################################################################
+# STORAGE
+#####################################################################
+set(storage_SRCS
+ core-impl/storage/StorageManager.cpp
+)
+
+#####################################################################
# SCANNER
#####################################################################
set( scanner_SRCS
@@ -610,6 +617,7 @@ set(amaroklib_LIB_SRCS
${core_interfaces_SRCS}
${apg_SRCS}
${collection_SRCS}
+ ${storage_SRCS}
${scanner_SRCS}
${mac_SRCS}
${network_access_SRCS}
diff --git a/src/PluginManager.cpp b/src/PluginManager.cpp
index a931456..7d7e411 100644
--- a/src/PluginManager.cpp
+++ b/src/PluginManager.cpp
@@ -18,12 +18,13 @@
#include "PluginManager.h"
-#include "core/support/Amarok.h"
-#include "core/support/Components.h"
-#include "core/support/Debug.h"
-#include "core-impl/collections/support/CollectionManager.h"
-#include "services/ServicePluginManager.h"
-#include "statsyncing/Controller.h"
+#include <core/support/Amarok.h>
+#include <core/support/Components.h>
+#include <core/support/Debug.h>
+#include <core-impl/collections/support/CollectionManager.h>
+#include <core-impl/storage/StorageManager.h>
+#include <services/ServicePluginManager.h>
+#include <statsyncing/Controller.h>
#include <KLocalizedString>
#include <KMessageBox>
@@ -72,11 +73,11 @@ Plugins::PluginManager::~PluginManager()
// tell the managers to get rid of their current factories
QList<Plugins::PluginFactory*> emptyFactories;
- CollectionManager::instance()->setFactories( emptyFactories );
- ServicePluginManager::instance()->setFactories( emptyFactories );
StatSyncing::Controller *controller = \
Amarok::Components::statSyncingController(); if( controller )
controller->setFactories( emptyFactories );
+ ServicePluginManager::instance()->setFactories( emptyFactories );
+ StorageManager::instance()->setFactories( emptyFactories );
}
void
@@ -151,6 +152,10 @@ Plugins::PluginManager::checkPluginEnabledStates()
// - filter out factories not usefull
// - handle the new list of factories, disabling old ones and enabling new ones.
+ PERF_LOG( "Loading storage plugins" )
+ StorageManager::instance()->setFactories( m_factoriesByType.value( Collection ) \
); + PERF_LOG( "Loaded storage plugins" )
+
PERF_LOG( "Loading collection plugins" )
CollectionManager::instance()->setFactories( m_factoriesByType.value( Collection \
) ); PERF_LOG( "Loaded collection plugins" )
diff --git a/src/amarokurls/AmarokUrl.cpp b/src/amarokurls/AmarokUrl.cpp
index cfc5dbf..2981512 100644
--- a/src/amarokurls/AmarokUrl.cpp
+++ b/src/amarokurls/AmarokUrl.cpp
@@ -18,9 +18,9 @@
#include "AmarokUrlHandler.h"
#include "BookmarkGroup.h"
-#include "core-impl/collections/support/CollectionManager.h"
+#include "core-impl/storage/StorageManager.h"
#include "core/support/Debug.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include <QUrl>
@@ -144,7 +144,7 @@ bool AmarokUrl::saveToDb()
const int parentId = m_parent ? m_parent->id() : -1;
- SqlStorage * sql = CollectionManager::instance()->sqlStorage();
+ SqlStorage * sql = StorageManager::instance()->sqlStorage();
if( m_id != -1 )
{
@@ -152,7 +152,7 @@ bool AmarokUrl::saveToDb()
debug() << "Updating bookmark";
QString query = "UPDATE bookmarks SET parent_id=%1, name='%2', url='%3', \
description='%4', custom='%5' WHERE id=%6;"; query = query.arg( QString::number( \
parentId ) ).arg( sql->escape( m_name ), sql->escape( url() ), sql->escape( \
m_description ), sql->escape( m_customValue ) , QString::number( m_id \
) );
- CollectionManager::instance()->sqlStorage()->query( query );
+ StorageManager::instance()->sqlStorage()->query( query );
}
else
{
@@ -160,7 +160,7 @@ bool AmarokUrl::saveToDb()
debug() << "Creating new bookmark in the db";
QString query = "INSERT INTO bookmarks ( parent_id, name, url, description, \
custom ) VALUES ( %1, '%2', '%3', '%4', '%5' );";
query = query.arg( QString::number( parentId ), sql->escape( m_name ), \
sql->escape( url() ), sql->escape( m_description ), sql->escape( \
m_customValue ) );
- m_id = CollectionManager::instance()->sqlStorage()->insert( query, NULL );
+ m_id = StorageManager::instance()->sqlStorage()->insert( query, NULL );
}
return true;
@@ -190,7 +190,7 @@ void AmarokUrl::removeFromDb()
{
QString query = "DELETE FROM bookmarks WHERE id=%1";
query = query.arg( QString::number( m_id ) );
- CollectionManager::instance()->sqlStorage()->query( query );
+ StorageManager::instance()->sqlStorage()->query( query );
}
void AmarokUrl::rename( const QString &name )
diff --git a/src/amarokurls/AmarokUrlHandler.cpp \
b/src/amarokurls/AmarokUrlHandler.cpp index 895724e..637f481 100644
--- a/src/amarokurls/AmarokUrlHandler.cpp
+++ b/src/amarokurls/AmarokUrlHandler.cpp
@@ -24,10 +24,10 @@
#include "amarokurls/NavigationUrlRunner.h"
#include "amarokurls/PlayUrlGenerator.h"
#include "amarokurls/PlayUrlRunner.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include "core/meta/Meta.h"
#include "core/support/Debug.h"
-#include "core-impl/collections/support/CollectionManager.h"
+#include "core-impl/storage/StorageManager.h"
#include "core-impl/meta/timecode/TimecodeObserver.h"
#include "playlist/PlaylistViewUrlGenerator.h"
@@ -139,7 +139,7 @@ BookmarkList AmarokUrlHandler::urlsByCommand( const QString \
&command )
QString query = "SELECT id, parent_id, name, url, description, custom FROM \
bookmarks where url like 'amarok://%1%' ORDER BY name;"; query = query.arg( command \
);
- QStringList result = CollectionManager::instance()->sqlStorage()->query( query \
); + QStringList result = StorageManager::instance()->sqlStorage()->query( query \
);
debug() << "Result: " << result;
int resultRows = result.count() / 6;
diff --git a/src/amarokurls/BookmarkGroup.cpp b/src/amarokurls/BookmarkGroup.cpp
index 74a14c2..a054302 100644
--- a/src/amarokurls/BookmarkGroup.cpp
+++ b/src/amarokurls/BookmarkGroup.cpp
@@ -17,9 +17,9 @@
#include "BookmarkGroup.h"
#include "AmarokUrl.h"
-#include "core-impl/collections/support/CollectionManager.h"
+#include "core-impl/storage/StorageManager.h"
#include "core/support/Debug.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include <typeinfo>
@@ -61,7 +61,7 @@ BookmarkGroup::BookmarkGroup( const QString &name, const QString \
&customType )
//check if this custom group already exists and if so, just load that data.
QString query = "SELECT id, parent_id, name, description FROM bookmark_groups \
where custom='%1';"; query = query.arg( customType );
- QStringList result = CollectionManager::instance()->sqlStorage()->query( query \
); + QStringList result = StorageManager::instance()->sqlStorage()->query( query \
);
if ( result.count() == 4 )
{
@@ -101,14 +101,14 @@ void BookmarkGroup::save()
//update existing
QString query = "UPDATE bookmark_groups SET parent_id=%1, name='%2', \
description='%3', custom='%4%' WHERE id=%5;";
query = query.arg( QString::number( parentId ) ).arg( m_name ).arg( \
m_description ).arg( m_customType ).arg( QString::number( m_dbId ) );
- CollectionManager::instance()->sqlStorage()->query( query );
+ StorageManager::instance()->sqlStorage()->query( query );
}
else
{
//insert new
QString query = "INSERT INTO bookmark_groups ( parent_id, name, description, \
custom) VALUES ( %1, '%2', '%3', '%4' );";
query = query.arg( QString::number( parentId ) ).arg( m_name ).arg( \
m_description ).arg( m_customType );
- m_dbId = CollectionManager::instance()->sqlStorage()->insert( query, NULL );
+ m_dbId = StorageManager::instance()->sqlStorage()->insert( query, NULL );
}
}
@@ -121,7 +121,7 @@ BookmarkGroupList BookmarkGroup::childGroups() const
QString query = "SELECT id, parent_id, name, description FROM \
bookmark_groups where parent_id=%1 ORDER BY name;"; query = query.arg( \
QString::number( m_dbId ) );
- QStringList result = CollectionManager::instance()->sqlStorage()->query( \
query ); + QStringList result = \
StorageManager::instance()->sqlStorage()->query( query );
int resultRows = result.count() / 4;
@@ -147,7 +147,7 @@ BookmarkList BookmarkGroup::childBookmarks() const
if ( !m_hasFetchedChildPlaylists ) {
QString query = "SELECT id, parent_id, name, url, description, custom FROM \
bookmarks where parent_id=%1 ORDER BY name;"; query = query.arg( QString::number( \
m_dbId ) );
- QStringList result = CollectionManager::instance()->sqlStorage()->query( \
query ); + QStringList result = \
StorageManager::instance()->sqlStorage()->query( query );
//debug() << "Result: " << result;
int resultRows = result.count() / 6;
@@ -234,7 +234,7 @@ void BookmarkGroup::removeFromDb()
QString query = QString( "DELETE FROM bookmark_groups where id=%1;").arg( \
QString::number( m_dbId ) ); debug() << "query: " << query;
- QStringList result = CollectionManager::instance()->sqlStorage()->query( query \
); + QStringList result = StorageManager::instance()->sqlStorage()->query( query \
); }
void BookmarkGroup::reparent( BookmarkGroupPtr parent )
diff --git a/src/amarokurls/BookmarkModel.cpp b/src/amarokurls/BookmarkModel.cpp
index 716a211..4ab8fa5 100644
--- a/src/amarokurls/BookmarkModel.cpp
+++ b/src/amarokurls/BookmarkModel.cpp
@@ -22,8 +22,8 @@
#include "BookmarkGroup.h"
#include "AmarokUrlHandler.h"
#include "core/support/Debug.h"
-#include "core-impl/collections/support/CollectionManager.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core-impl/storage/StorageManager.h>
+#include <core/storage/SqlStorage.h>
#include <KIcon>
@@ -424,7 +424,7 @@ void BookmarkModel::createTables()
{
DEBUG_BLOCK
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
if( !sqlStorage )
return;
@@ -449,8 +449,8 @@ void BookmarkModel::deleteTables()
{
DEBUG_BLOCK
-
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
if( !sqlStorage )
return;
@@ -463,8 +463,8 @@ void BookmarkModel::checkTables()
{
DEBUG_BLOCK
-
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
if( !sqlStorage )
return;
@@ -687,7 +687,7 @@ BookmarkModel::renameBookmarkRecursively( BookmarkGroupPtr group, \
const QString&
void BookmarkModel::upgradeTables( int from )
{
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
if( !sqlStorage )
return;
diff --git a/src/amarokurls/PlayUrlRunner.cpp b/src/amarokurls/PlayUrlRunner.cpp
index 049777f..3bce258 100644
--- a/src/amarokurls/PlayUrlRunner.cpp
+++ b/src/amarokurls/PlayUrlRunner.cpp
@@ -20,12 +20,13 @@
#include "amarokconfig.h"
#include "AmarokUrl.h"
#include "AmarokUrlHandler.h"
+#include "core-impl/storage/StorageManager.h"
#include "core-impl/collections/support/CollectionManager.h"
#include "EngineController.h"
#include "playlist/PlaylistController.h"
#include "playlist/PlaylistModelStack.h"
#include "playlist/proxymodels/AbstractModel.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include "core/meta/Meta.h"
PlayUrlRunner::PlayUrlRunner() : AmarokUrlRunnerBase()
@@ -104,7 +105,7 @@ BookmarkList PlayUrlRunner::bookmarksFromUrl( KUrl url )
// the base64 encoded url (minus the '=').
QString query = "SELECT id, parent_id, name, url, description, custom FROM \
bookmarks WHERE url LIKE '%%1%'"; query = query.arg ( track_encoded );
- QStringList result = CollectionManager::instance()->sqlStorage()->query ( query \
); + QStringList result = StorageManager::instance()->sqlStorage()->query ( query \
);
int resultRows = result.count() / 6;
diff --git a/src/core-impl/collections/db/MountPointManager.cpp \
b/src/core-impl/collections/db/MountPointManager.cpp index accc0ea..77a43c0 100644
--- a/src/core-impl/collections/db/MountPointManager.cpp
+++ b/src/core-impl/collections/db/MountPointManager.cpp
@@ -21,7 +21,7 @@
#include "MediaDeviceCache.h"
#include "core/support/Amarok.h"
#include "core/support/Debug.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include "core-impl/collections/db/sql/device/massstorage/MassStorageDeviceHandler.h"
#include "core-impl/collections/db/sql/device/nfs/NfsDeviceHandler.h"
#include "core-impl/collections/db/sql/device/smb/SmbDeviceHandler.h"
diff --git a/src/core-impl/collections/db/sql/DatabaseUpdater.cpp \
b/src/core-impl/collections/db/sql/DatabaseUpdater.cpp index c5c274f..59a78f5 100644
--- a/src/core-impl/collections/db/sql/DatabaseUpdater.cpp
+++ b/src/core-impl/collections/db/sql/DatabaseUpdater.cpp
@@ -18,7 +18,7 @@
#include "amarokconfig.h"
#include "core/support/Debug.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include "SqlCollection.h"
#include <QDateTime>
diff --git a/src/core-impl/collections/db/sql/SqlCollection.h \
b/src/core-impl/collections/db/sql/SqlCollection.h index a0b8da1..71f2140 100644
--- a/src/core-impl/collections/db/sql/SqlCollection.h
+++ b/src/core-impl/collections/db/sql/SqlCollection.h
@@ -21,8 +21,8 @@
#include "amarok_sqlcollection_export.h"
#include "core/capabilities/TranscodeCapability.h"
-#include "core/collections/support/SqlStorage.h"
-#include "core-impl/collections/db/DatabaseCollection.h"
+#include <core/storage/SqlStorage.h>
+#include <core-impl/collections/db/DatabaseCollection.h>
#include "SqlRegistry.h"
class SqlScanResultProcessor;
diff --git a/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp \
b/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp index d8816d3..8ac22fd \
100644
--- a/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp
+++ b/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp
@@ -23,7 +23,7 @@
#include "MetaTagLib.h" // for getting the uid
#include "core/collections/CollectionLocationDelegate.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include "core/interfaces/Logger.h"
#include "core/support/Components.h"
#include "core/support/Debug.h"
diff --git a/src/core-impl/collections/db/sql/SqlMeta.cpp \
b/src/core-impl/collections/db/sql/SqlMeta.cpp index 7a5bbdd..3968cde 100644
--- a/src/core-impl/collections/db/sql/SqlMeta.cpp
+++ b/src/core-impl/collections/db/sql/SqlMeta.cpp
@@ -32,7 +32,7 @@
#include "MetaTagLib.h" // for getting an embedded cover
#include "amarokurls/BookmarkMetaActions.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include "core/meta/support/MetaUtility.h"
#include "core/support/Amarok.h"
#include "core/support/Debug.h"
diff --git a/src/core-impl/collections/db/sql/SqlQueryMaker.cpp \
b/src/core-impl/collections/db/sql/SqlQueryMaker.cpp index 2eddca6..6984b65 100644
--- a/src/core-impl/collections/db/sql/SqlQueryMaker.cpp
+++ b/src/core-impl/collections/db/sql/SqlQueryMaker.cpp
@@ -21,7 +21,7 @@
#include "SqlCollection.h"
#include "SqlQueryMakerInternal.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include "core/support/Debug.h"
#include "core-impl/collections/db/MountPointManager.h"
diff --git a/src/core-impl/collections/db/sql/SqlQueryMakerInternal.cpp \
b/src/core-impl/collections/db/sql/SqlQueryMakerInternal.cpp index 2d624d8..bfb2959 \
100644
--- a/src/core-impl/collections/db/sql/SqlQueryMakerInternal.cpp
+++ b/src/core-impl/collections/db/sql/SqlQueryMakerInternal.cpp
@@ -16,7 +16,7 @@
#include "SqlQueryMakerInternal.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include "core/support/Debug.h"
#include "SqlCollection.h"
#include "SqlMeta.h"
diff --git a/src/core-impl/collections/db/sql/SqlReadLabelCapability.cpp \
b/src/core-impl/collections/db/sql/SqlReadLabelCapability.cpp index 8784824..55f52f2 \
100644
--- a/src/core-impl/collections/db/sql/SqlReadLabelCapability.cpp
+++ b/src/core-impl/collections/db/sql/SqlReadLabelCapability.cpp
@@ -20,7 +20,7 @@
#include "core-impl/collections/support/CollectionManager.h"
#include "core/support/Debug.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
namespace Capabilities
{
diff --git a/src/core-impl/collections/db/sql/SqlWriteLabelCapability.cpp \
b/src/core-impl/collections/db/sql/SqlWriteLabelCapability.cpp index 6689ebf..fad5aa0 \
100644
--- a/src/core-impl/collections/db/sql/SqlWriteLabelCapability.cpp
+++ b/src/core-impl/collections/db/sql/SqlWriteLabelCapability.cpp
@@ -20,7 +20,7 @@
#include "core-impl/collections/support/CollectionManager.h"
#include "core/support/Debug.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
namespace Capabilities
{
diff --git a/src/core-impl/collections/db/sql/device/massstorage/MassStorageDeviceHandler.cpp \
b/src/core-impl/collections/db/sql/device/massstorage/MassStorageDeviceHandler.cpp \
index 3eaff00..c7f1d3d 100644
--- a/src/core-impl/collections/db/sql/device/massstorage/MassStorageDeviceHandler.cpp
+++ b/src/core-impl/collections/db/sql/device/massstorage/MassStorageDeviceHandler.cpp
@@ -19,7 +19,7 @@
#include "MassStorageDeviceHandler.h"
#include "core/support/Debug.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include <KUrl>
#include <Solid/Device>
diff --git a/src/core-impl/collections/db/sql/device/nfs/NfsDeviceHandler.cpp \
b/src/core-impl/collections/db/sql/device/nfs/NfsDeviceHandler.cpp index \
2684708..cc7ba51 100644
--- a/src/core-impl/collections/db/sql/device/nfs/NfsDeviceHandler.cpp
+++ b/src/core-impl/collections/db/sql/device/nfs/NfsDeviceHandler.cpp
@@ -20,7 +20,7 @@
#include "NfsDeviceHandler.h"
#include "core/support/Debug.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include <KUrl>
#include <Solid/Device>
diff --git a/src/core-impl/collections/db/sql/device/smb/SmbDeviceHandler.cpp \
b/src/core-impl/collections/db/sql/device/smb/SmbDeviceHandler.cpp index \
900b7b1..a6d8df2 100644
--- a/src/core-impl/collections/db/sql/device/smb/SmbDeviceHandler.cpp
+++ b/src/core-impl/collections/db/sql/device/smb/SmbDeviceHandler.cpp
@@ -20,7 +20,7 @@
#include "SmbDeviceHandler.h"
#include "core/support/Debug.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include <KUrl>
#include <Solid/Device>
diff --git a/src/core-impl/collections/db/sql/mysqlecollection/MySqlEmbeddedCollection.cpp \
b/src/core-impl/collections/db/sql/mysqlecollection/MySqlEmbeddedCollection.cpp index \
b9872a8..86cbb90 100644
--- a/src/core-impl/collections/db/sql/mysqlecollection/MySqlEmbeddedCollection.cpp
+++ b/src/core-impl/collections/db/sql/mysqlecollection/MySqlEmbeddedCollection.cpp
@@ -17,9 +17,9 @@
#include "MySqlEmbeddedCollection.h"
-#include "MySqlEmbeddedStorage.h"
-#include "core-impl/collections/db/sql/SqlCollection.h"
-#include "core-impl/collections/db/sql/SqlCollectionFactory.h"
+#include <core-impl/storage/MySqlEmbeddedStorage.h>
+#include <core-impl/collections/db/sql/SqlCollection.h>
+#include <core-impl/collections/db/sql/SqlCollectionFactory.h>
#include <KLocale>
diff --git a/src/core-impl/collections/db/sql/mysqlservercollection/CMakeLists.txt \
b/src/core-impl/collections/db/sql/mysqlservercollection/CMakeLists.txt index \
afb2ecc..d261217 100644
--- a/src/core-impl/collections/db/sql/mysqlservercollection/CMakeLists.txt
+++ b/src/core-impl/collections/db/sql/mysqlservercollection/CMakeLists.txt
@@ -4,8 +4,8 @@ add_definitions(${MYSQL_CFLAGS})
set( amarok_collection-mysqlservercollection_PART_SRCS
../mysql-shared/MySqlStorage.cpp
+ MySqlServerStorage.cpp
MySqlServerCollection.cpp
-
)
kde4_add_plugin(amarok_collection-mysqlservercollection \
${amarok_collection-mysqlservercollection_PART_SRCS})
diff --git a/src/core-impl/collections/db/sql/mysqlservercollection/MySqlServerCollection.cpp \
b/src/core-impl/collections/db/sql/mysqlservercollection/MySqlServerCollection.cpp \
index 3763e0f..e168ce3 100644
--- a/src/core-impl/collections/db/sql/mysqlservercollection/MySqlServerCollection.cpp
+++ b/src/core-impl/collections/db/sql/mysqlservercollection/MySqlServerCollection.cpp
@@ -17,6 +17,7 @@
****************************************************************************************/
#include "MySqlServerCollection.h"
+#include "MySqlServerStorage.h"
#include "amarokconfig.h"
#include "core/support/Amarok.h"
@@ -24,12 +25,6 @@
#include "core-impl/collections/db/sql/SqlCollection.h"
#include "core-impl/collections/db/sql/SqlCollectionFactory.h"
-#include <QMutexLocker>
-#include <QThreadStorage>
-#include <QVarLengthArray>
-
-#include <mysql.h>
-
using namespace Collections;
AMAROK_EXPORT_COLLECTION( MySqlServerCollectionFactory, mysqlservercollection )
@@ -49,112 +44,5 @@ MySqlServerCollectionFactory::init()
emit newCollection( collection );
}
-MySqlServerStorage::MySqlServerStorage()
- : MySqlStorage()
-{
- DEBUG_BLOCK
-
- m_debugIdent = "MySQL-server";
-
- if( mysql_library_init( 0, NULL, NULL ) )
- {
- error() << "MySQL library initialization failed!";
- return;
- }
-
- m_db = mysql_init( NULL );
-
- if( !m_db )
- {
- error() << "MySQL initialization failed";
- return;
- }
-
- //first here, the right way for >= 5.1.6
-
- my_bool reconnect = true;
- if( mysql_options( m_db, MYSQL_OPT_RECONNECT, &reconnect ) )
- reportError( "Asking for automatic reconnect did not succeed!" );
- else
- debug() << "Automatic reconnect successfully activated";
-
- if( !mysql_real_connect( m_db,
- Amarok::config( "MySQL" ).readEntry( "Host", "localhost" ).toUtf8(),
- Amarok::config( "MySQL" ).readEntry( "User", "amarokuser" \
).toUtf8(),
- Amarok::config( "MySQL" ).readEntry( "Password", "password" \
).toUtf8(),
- NULL,
- Amarok::config( "MySQL" ).readEntry( "Port", "3306" ).toInt(),
- NULL,
- CLIENT_COMPRESS )
- )
- {
- debug() << "connection to mysql failed";
- error() << "Could not connect to mysql!";
- reportError( "na" );
- mysql_close( m_db );
- m_db = 0;
- }
- else
- {
- //but in versions prior to 5.1.6, have to call it after every real_connect
- my_bool reconnect = true;
- if( mysql_options( m_db, MYSQL_OPT_RECONNECT, &reconnect ) )
- reportError( "Asking for automatic reconnect did not succeed!" );
- else
- debug() << "Automatic reconnect successfully activated";
-
- QString databaseName = Amarok::config( "MySQL" ).readEntry( "Database", \
"amarokdb" );
- sharedInit( databaseName );
- debug() << "Connected to MySQL server" << mysql_get_server_info( m_db );
- }
-
- MySqlServerStorage::initThreadInitializer();
-}
-
-MySqlServerStorage::~MySqlServerStorage()
-{
- DEBUG_BLOCK
-}
-
-QString
-MySqlServerStorage::type() const
-{
- return "MySQL";
-}
-
-QStringList
-MySqlServerStorage::query( const QString &query )
-{
- MySqlStorage::initThreadInitializer();
- QMutexLocker locker( &m_mutex );
- if( !m_db )
- {
- error() << "Tried to query an uninitialized m_db!";
- return QStringList();
- }
-
- unsigned long tid = mysql_thread_id( m_db );
-
- int res = mysql_ping( m_db );
- if( res )
- {
- reportError( "mysql_ping failed!" );
- return QStringList();
- }
-
- if( tid != mysql_thread_id( m_db ) )
- {
- debug() << "NOTE: MySQL server had gone away, ping reconnected it";
- QString databaseName = Amarok::config( "MySQL" ).readEntry( "Database", \
"amarokdb" );
- if( mysql_query( m_db, QString( "SET NAMES 'utf8'" ).toUtf8() ) )
- reportError( "SET NAMES 'utf8' died" );
- if( mysql_query( m_db, QString( "USE %1" ).arg( databaseName ).toUtf8() ) )
- reportError( "Could not select database" );
- }
-
-
- return MySqlStorage::query( query );
-}
-
#include "MySqlServerCollection.moc"
diff --git a/src/core-impl/collections/db/sql/mysqlservercollection/MySqlServerCollection.h \
b/src/core-impl/collections/db/sql/mysqlservercollection/MySqlServerCollection.h \
index 2da5274..baedfe8 100644
--- a/src/core-impl/collections/db/sql/mysqlservercollection/MySqlServerCollection.h
+++ b/src/core-impl/collections/db/sql/mysqlservercollection/MySqlServerCollection.h
@@ -19,7 +19,6 @@
#define AMAROK_COLLECTION_MYSQLSERVERCOLLECTION_H
#include "core/collections/Collection.h"
-#include "core-impl/collections/db/sql/mysql-shared/MySqlStorage.h"
namespace Collections {
@@ -40,17 +39,4 @@ class MySqlServerCollectionFactory : public \
Collections::CollectionFactory
} //namespace Collections
-/**
- * Implements a MySqlStorage using a MySQL Server
- */
-class MySqlServerStorage: public MySqlStorage
-{
- public:
- MySqlServerStorage();
- virtual ~MySqlServerStorage();
-
- virtual QString type() const;
- virtual QStringList query( const QString &query );
-};
-
#endif
diff --git a/src/core-impl/collections/support/CollectionManager.cpp \
b/src/core-impl/collections/support/CollectionManager.cpp index 65a8fd3..61c5675 \
100644
--- a/src/core-impl/collections/support/CollectionManager.cpp
+++ b/src/core-impl/collections/support/CollectionManager.cpp
@@ -21,10 +21,10 @@
#include "core/capabilities/CollectionScanCapability.h"
#include "core/collections/Collection.h"
#include "core/collections/MetaQueryMaker.h"
-#include "core/collections/support/SqlStorage.h"
#include "core/support/Amarok.h"
#include "core/support/Debug.h"
#include "core/support/SmartPointerList.h"
+#include <core/storage/SqlStorage.h>
#include "core-impl/meta/file/FileTrackProvider.h"
#include "core-impl/meta/stream/Stream.h"
#include "core-impl/meta/timecode/TimecodeTrackProvider.h"
@@ -39,38 +39,6 @@
typedef QPair<Collections::Collection*, CollectionManager::CollectionStatus> \
CollectionPair;
-/** This wrapper will be used by the collection manager to present one static \
SqlStorage object even when the user switches the actual database.
-On the other hand nobody except the owning collection should hold a reference to the \
SqlStorage anyway. */
-class SqlStorageWrapper : public SqlStorage
-{
-public:
- SqlStorageWrapper()
- : SqlStorage()
- , m_sqlStorage( 0 )
- {}
-
- virtual QString type() const { return ( m_sqlStorage ? m_sqlStorage->type() : \
"SqlStorageWrapper" ); }
- virtual QString escape( const QString &text ) const { return ( m_sqlStorage ? \
m_sqlStorage->escape( text ) : text ); }
- virtual QStringList query( const QString &query ) { return ( m_sqlStorage ? \
m_sqlStorage->query( query ) : QStringList() ); }
- virtual int insert( const QString &statement, const QString &table ) { return ( \
m_sqlStorage ? m_sqlStorage->insert( statement, table ) : 0 ); }
- virtual QString boolTrue() const { return ( m_sqlStorage ? \
m_sqlStorage->boolTrue() : "1" ); }
- virtual QString boolFalse() const { return ( m_sqlStorage ? \
m_sqlStorage->boolFalse() : "0" ); }
- virtual QString idType() const { return ( m_sqlStorage ? m_sqlStorage->idType() \
: "WRAPPER_NOT_IMPLEMENTED" ); }
- virtual QString textColumnType( int length ) const { return ( m_sqlStorage ? \
m_sqlStorage->textColumnType( length ) : "WRAPPER_NOT_IMPLEMENTED" ); \
}
- virtual QString exactTextColumnType( int length ) const { return ( m_sqlStorage \
? m_sqlStorage->exactTextColumnType( length ) : \
"WRAPPER_NOT_IMPLEMENTED" ); }
- virtual QString exactIndexableTextColumnType( int length ) const { return ( \
m_sqlStorage ? m_sqlStorage->exactIndexableTextColumnType( length ) : \
"WRAPPER_NOT_IMPLEMENTED" ); };
- virtual QString longTextColumnType() const { return ( m_sqlStorage ? \
m_sqlStorage->longTextColumnType() : "WRAPPER_NOT_IMPLEMENTED" ); }
- virtual QString randomFunc() const { return ( m_sqlStorage ? \
m_sqlStorage->randomFunc() : "WRAPPER_NOT_IMPLEMENTED" ); }
-
- virtual QStringList getLastErrors() const
- { return m_sqlStorage ? m_sqlStorage->getLastErrors() : QStringList(); }
- virtual void clearLastErrors()
- { if( m_sqlStorage ) m_sqlStorage->clearLastErrors(); }
-
- void setSqlStorage( SqlStorage *sqlStorage ) { m_sqlStorage = sqlStorage; }
-private:
- SqlStorage *m_sqlStorage;
-};
/** Private structure of the collection manager */
struct CollectionManager::Private
@@ -78,9 +46,6 @@ struct CollectionManager::Private
QList<CollectionPair> collections;
QList<Plugins::PluginFactory*> factories; // factories belong to PluginManager
- SqlStorage *sqlDatabase;
- SqlStorageWrapper *sqlStorageWrapper;
-
QList<Collections::Collection*> unmanagedCollections;
QList<Collections::TrackProvider*> trackProviders;
@@ -123,10 +88,7 @@ CollectionManager::CollectionManager()
Q_ASSERT( thread() == QCoreApplication::instance()->thread() );
setObjectName( "CollectionManager" );
- qRegisterMetaType<SqlStorage *>( "SqlStorage*" );
- d->sqlDatabase = 0;
d->primaryCollection = 0;
- d->sqlStorageWrapper = new SqlStorageWrapper();
// special-cased in trackForUrl(), don't add to d->trackProviders yet
d->fileTrackProvider = new FileTrackProvider();
}
@@ -138,9 +100,6 @@ CollectionManager::~CollectionManager()
{
QWriteLocker locker( &d->lock );
- //not deleting SqlStorageWrapper here as somebody might be caching it
- //Amarok really needs a proper state management...
- d->sqlStorageWrapper->setSqlStorage( 0 );
delete d->timecodeTrackProvider;
delete d->fileTrackProvider;
d->collections.clear();
@@ -336,9 +295,7 @@ CollectionManager::slotNewCollection( Collections::Collection* \
newCollection ) {
//let's cheat a bit and assume that sqlStorage and the \
primaryCollection are always the same //it is true for now anyway
- d->sqlDatabase = sqlStorage;
d->primaryCollection = newCollection;
- d->sqlStorageWrapper->setSqlStorage( sqlStorage );
}
else
{
@@ -367,31 +324,6 @@ CollectionManager::slotRemoveCollection()
QWriteLocker locker( &d->lock );
d->collections.removeAll( pair );
d->trackProviders.removeAll( collection );
-
- // if the collection had a sql storage, find a new database that could \
provide
- // one.
- QVariant v = collection->property( "sqlStorage" );
- if( v.isValid() )
- {
- SqlStorage *sqlDb = v.value<SqlStorage*>();
- if( sqlDb && sqlDb == d->sqlDatabase )
- {
- SqlStorage *newSqlDatabase = 0;
- foreach( const CollectionPair &pair, d->collections )
- {
- QVariant variant = pair.first->property( "sqlStorage" );
- if( !variant.isValid() )
- continue;
- SqlStorage *sqlDb = variant.value<SqlStorage*>();
- if( sqlDb )
- {
- newSqlDatabase = sqlDb;
- }
- }
- d->sqlDatabase = newSqlDatabase;
- d->sqlStorageWrapper->setSqlStorage( newSqlDatabase );
- }
- }
}
emit collectionRemoved( collection->collectionId() );
@@ -437,14 +369,6 @@ CollectionManager::primaryCollection() const
return d->primaryCollection;
}
-SqlStorage*
-CollectionManager::sqlStorage() const
-{
- QReadLocker locker( &d->lock );
-
- return d->sqlStorageWrapper;
-}
-
Meta::TrackList
CollectionManager::tracksForUrls( const KUrl::List &urls )
{
diff --git a/src/core-impl/collections/support/CollectionManager.h \
b/src/core-impl/collections/support/CollectionManager.h index 48217cf..fbfe5dd 100644
--- a/src/core-impl/collections/support/CollectionManager.h
+++ b/src/core-impl/collections/support/CollectionManager.h
@@ -25,7 +25,6 @@
#include <QList>
#include <QObject>
-class SqlStorage;
class CollectionManagerSingleton;
namespace Plugins {
@@ -103,13 +102,6 @@ class AMAROK_EXPORT CollectionManager : public QObject
*/
Meta::TrackList tracksForUrls( const KUrl::List &urls );
- /**
- retrieve an interface which allows client-code to store/load data in a \
relational database.
- Note: code using this method does NOT take ownership of the pointer, but \
may cache the pointer
- Note2: You should never modify the database unless you really really \
know what you do.
- Using the SqlMeta (e.g. SqlRegistry or SqlTrack) is much better.
- */
- SqlStorage* sqlStorage() const;
/**
* add a collection whose lifecycle is not managed by CollectionManager.
diff --git a/src/core-impl/podcasts/sql/SqlPodcastMeta.cpp \
b/src/core-impl/podcasts/sql/SqlPodcastMeta.cpp index 1c6c200..3a3b4e7 100644
--- a/src/core-impl/podcasts/sql/SqlPodcastMeta.cpp
+++ b/src/core-impl/podcasts/sql/SqlPodcastMeta.cpp
@@ -19,12 +19,13 @@
#include "amarokurls/BookmarkMetaActions.h"
#include "amarokurls/PlayUrlRunner.h"
#include "core/capabilities/ActionsCapability.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include "core/meta/TrackEditor.h"
#include "core/support/Debug.h"
#include "core-impl/capabilities/timecode/TimecodeLoadCapability.h"
#include "core-impl/capabilities/timecode/TimecodeWriteCapability.h"
#include "core-impl/collections/support/CollectionManager.h"
+#include "core-impl/storage/StorageManager.h"
#include "core-impl/meta/proxy/MetaProxy.h"
#include "core-impl/podcasts/sql/SqlPodcastProvider.h"
@@ -117,7 +118,7 @@ SqlPodcastEpisode::SqlPodcastEpisode( const QStringList &result, \
SqlPodcastChann
: Podcasts::PodcastEpisode( Podcasts::PodcastChannelPtr::staticCast( sqlChannel \
) ) , m_channel( sqlChannel )
{
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
QStringList::ConstIterator iter = result.constBegin();
m_dbId = (*(iter++)).toInt();
m_url = KUrl( *(iter++) );
@@ -433,7 +434,7 @@ SqlPodcastEpisode::writeTagsToFile()
void
SqlPodcastEpisode::updateInDb()
{
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
QString boolTrue = sqlStorage->boolTrue();
QString boolFalse = sqlStorage->boolFalse();
@@ -504,7 +505,7 @@ SqlPodcastEpisode::updateInDb()
void
SqlPodcastEpisode::deleteFromDb()
{
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
sqlStorage->query(
QString( "DELETE FROM podcastepisodes WHERE id = %1;" ).arg( dbId() ) );
}
@@ -530,7 +531,7 @@ SqlPodcastChannel::SqlPodcastChannel( SqlPodcastProvider \
*provider, , m_trackCacheIsValid( false )
, m_provider( provider )
{
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
QStringList::ConstIterator iter = result.constBegin();
m_dbId = (*(iter++)).toInt();
m_url = KUrl( *(iter++) );
@@ -768,7 +769,7 @@ SqlPodcastChannel::applyPurge()
void
SqlPodcastChannel::updateInDb()
{
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
QString boolTrue = sqlStorage->boolTrue();
QString boolFalse = sqlStorage->boolFalse();
@@ -844,7 +845,7 @@ SqlPodcastChannel::updateInDb()
void
SqlPodcastChannel::deleteFromDb()
{
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
foreach( SqlPodcastEpisodePtr sqlEpisode, m_episodes )
{
sqlEpisode->deleteFromDb();
@@ -861,7 +862,7 @@ SqlPodcastChannel::loadEpisodes()
{
m_episodes.clear();
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
//If purge is enabled we must limit the number of results
QString command;
diff --git a/src/core-impl/podcasts/sql/SqlPodcastProvider.cpp \
b/src/core-impl/podcasts/sql/SqlPodcastProvider.cpp index 1bc1349..fcff936 100644
--- a/src/core-impl/podcasts/sql/SqlPodcastProvider.cpp
+++ b/src/core-impl/podcasts/sql/SqlPodcastProvider.cpp
@@ -24,14 +24,14 @@
#include "browsers/playlistbrowser/PodcastModel.h"
#include "context/popupdropper/libpud/PopupDropper.h"
#include "context/popupdropper/libpud/PopupDropperItem.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include "core/interfaces/Logger.h"
#include "core/podcasts/PodcastImageFetcher.h"
#include "core/podcasts/PodcastReader.h"
#include "core/support/Amarok.h"
#include "core/support/Components.h"
#include "core/support/Debug.h"
-#include "core-impl/collections/support/CollectionManager.h"
+#include "core-impl/storage/StorageManager.h"
#include "core-impl/podcasts/sql/PodcastSettingsDialog.h"
#include "playlistmanager/sql/SqlPlaylistGroup.h"
@@ -79,7 +79,7 @@ SqlPodcastProvider::SqlPodcastProvider()
{
connect( m_updateTimer, SIGNAL(timeout()), SLOT(autoUpdate()) );
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
if( !sqlStorage )
{
@@ -165,7 +165,7 @@ void
SqlPodcastProvider::loadPodcasts()
{
m_channels.clear();
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
if( !sqlStorage )
return;
@@ -195,7 +195,7 @@ SqlPodcastProvider::sqlEpisodeForString( const QString &string )
if( string.isEmpty() )
return SqlPodcastEpisodePtr();
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
if( !sqlStorage )
return SqlPodcastEpisodePtr();
@@ -243,7 +243,7 @@ SqlPodcastProvider::sqlEpisodeForString( const QString &string )
bool
SqlPodcastProvider::possiblyContainsTrack( const KUrl &url ) const
{
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
if( !sqlStorage )
return false;
@@ -460,7 +460,7 @@ SqlPodcastProvider::addPodcast( const KUrl &url )
KUrl kurl = KUrl( url );
debug() << "importing " << kurl.url();
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
if( !sqlStorage )
return;
@@ -577,7 +577,7 @@ SqlPodcastProvider::removeSubscription( \
Podcasts::SqlPodcastChannelPtr sqlChanne //Remove it when we know it's supposed to \
be empty. if( m_channels.isEmpty() )
{
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
if( !sqlStorage )
return;
debug() << "Unsubscribed from last channel, cleaning out the podcastepisodes \
table."; @@ -1438,7 +1438,7 @@ SqlPodcastProvider::redirected( KIO::Job *job, const \
KUrl &redirectedUrl ) void
SqlPodcastProvider::createTables() const
{
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
if( !sqlStorage )
return;
@@ -1486,7 +1486,7 @@ SqlPodcastProvider::updateDatabase( int fromVersion, int \
toVersion )
debug() << QString( "Updating Podcast tables from version %1 to version %2" )
.arg( fromVersion ).arg( toVersion );
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
if( !sqlStorage )
return;
#define escape(x) sqlStorage->escape(x)
diff --git a/src/core-impl/storage/StorageManager.cpp \
b/src/core-impl/storage/StorageManager.cpp new file mode 100644
index 0000000..317d447
--- /dev/null
+++ b/src/core-impl/storage/StorageManager.cpp
@@ -0,0 +1,168 @@
+/****************************************************************************************
+ * Copyright (c) 2014 Ralf Engels <ralf-engels@gmx.de> \
* + * \
* + * This program is free software; you can redistribute it and/or modify it under \
* + * the terms of the GNU General Public License as published by the Free Software \
* + * Foundation; either version 2 of the License, or (at your option) any later \
* + * version. \
* + * \
* + * This program is distributed in the hope that it will be useful, but WITHOUT ANY \
* + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A \
* + * PARTICULAR PURPOSE. See the GNU General Public License for more details. \
* + * \
* + * You should have received a copy of the GNU General Public License along with \
* + * this program. If not, see <http://www.gnu.org/licenses/>. \
* + ****************************************************************************************/
+
+#define DEBUG_PREFIX "StorageManager"
+
+#include "StorageManager.h"
+
+#include <core/storage/SqlStorage.h>
+#include <core/collections/Collection.h>
+
+#include <core/support/Amarok.h>
+#include <core/support/Debug.h>
+
+#include <KConfigGroup>
+
+/** A SqlStorage that doesn't do anything.
+ *
+ * An object of this type is used whenever we couldn't
+ * load a better SqlStorage.
+ *
+ * The reason is that plugins don't have to check for
+ * a null pointer as SqlStorage every time.
+ */
+class EmptySqlStorage : public SqlStorage
+{
+public:
+ EmptySqlStorage() {}
+ virtual ~EmptySqlStorage() {}
+
+ virtual int sqlDatabasePriority() const
+ { return 10; }
+
+ virtual QString type() const { return QLatin1String("Empty"); }
+
+ virtual QString escape( const QString &text) const { return text; }
+
+ virtual QStringList query( const QString &) { return QStringList(); }
+ virtual int insert( const QString &, const QString &) { return 0; }
+
+ virtual QString boolTrue() const { return QString(); }
+ virtual QString boolFalse() const { return QString(); }
+
+ virtual QString idType() const { return QString(); };
+ virtual QString textColumnType( int ) const { return QString(); }
+ virtual QString exactTextColumnType( int ) const { return QString(); }
+
+ virtual QString exactIndexableTextColumnType( int ) const { return QString(); }
+ virtual QString longTextColumnType() const { return QString(); }
+ virtual QString randomFunc() const { return QString(); }
+
+ virtual QStringList getLastErrors() const { return QStringList(); }
+
+ /** Clears the list of the last errors. */
+ virtual void clearLastErrors() { }
+
+};
+
+static EmptySqlStorage emptyStorage;
+
+
+struct StorageManager::Private
+{
+ SqlStorage* sqlDatabase;
+};
+
+StorageManager *StorageManager::s_instance = 0;
+
+
+StorageManager *
+StorageManager::instance()
+{
+ if( !s_instance ) {
+ s_instance = new StorageManager();
+ s_instance->init();
+ }
+
+ return s_instance;
+}
+
+void
+StorageManager::destroy()
+{
+ if( s_instance ) {
+ delete s_instance;
+ s_instance = 0;
+ }
+}
+
+StorageManager::StorageManager()
+ : QObject()
+ , d( new Private )
+{
+ DEBUG_BLOCK
+
+ setObjectName( "StorageManager" );
+ qRegisterMetaType<SqlStorage *>( "SqlStorage*" );
+ d->sqlDatabase = &emptyStorage;
+}
+
+StorageManager::~StorageManager()
+{
+ DEBUG_BLOCK
+
+ delete d->sqlDatabase;
+ delete d;
+}
+
+SqlStorage*
+StorageManager::sqlStorage() const
+{
+ return d->sqlDatabase;
+}
+
+void
+StorageManager::init()
+{
+}
+
+
+void
+StorageManager::setFactories( const QList<Plugins::PluginFactory*> &factories )
+{
+ using Collections::CollectionFactory;
+
+ foreach( Plugins::PluginFactory* pFactory, factories )
+ {
+ CollectionFactory *factory = qobject_cast<CollectionFactory*>( pFactory );
+ if( !factory )
+ continue;
+
+ connect( factory, SIGNAL(newStorage(SqlStorage*)),
+ this, SLOT(slotNewStorage(SqlStorage*)) );
+ }
+}
+
+void
+StorageManager::slotNewStorage( SqlStorage* newStorage )
+{
+ DEBUG_BLOCK
+
+ if( !newStorage )
+ {
+ debug() << "Warning, newStorage in slotNewStorage is 0";
+ return;
+ }
+
+ if( d->sqlDatabase )
+ return; // once we have the database set we can't change it since
+ // plugins might have already created their tables in the old database
+ // or caching data from it.
+
+ d->sqlDatabase = newStorage;
+}
+
+
diff --git a/src/core-impl/storage/StorageManager.h \
b/src/core-impl/storage/StorageManager.h new file mode 100644
index 0000000..4d5fa34
--- /dev/null
+++ b/src/core-impl/storage/StorageManager.h
@@ -0,0 +1,99 @@
+/****************************************************************************************
+ * Copyright (c) 2014 Ralf Engels <ralf-engels@gmx.de> \
* + * \
* + * This program is free software; you can redistribute it and/or modify it under \
* + * the terms of the GNU General Public License as published by the Free Software \
* + * Foundation; either version 2 of the License, or (at your option) any later \
* + * version. \
* + * \
* + * This program is distributed in the hope that it will be useful, but WITHOUT ANY \
* + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A \
* + * PARTICULAR PURPOSE. See the GNU General Public License for more details. \
* + * \
* + * You should have received a copy of the GNU General Public License along with \
* + * this program. If not, see <http://www.gnu.org/licenses/>. \
* + ****************************************************************************************/
+
+#ifndef AMAROK_STORAGEMANAGER_H
+#define AMAROK_STORAGEMANAGER_H
+
+#include "amarok_export.h"
+
+#include <QObject>
+#include <QList>
+
+namespace Plugins {
+ class PluginFactory;
+}
+
+class SqlStorage;
+
+/** Class managing the Amarok SqlStorage
+ *
+ * This singleton class is the main responsible for providing everybody
+ * with the current SqlStorage.
+ */
+class AMAROK_EXPORT StorageManager : public QObject
+{
+ Q_OBJECT
+
+ public:
+
+ /** Get THE instance of the storage manager.
+ *
+ * This function will return the storage manager
+ * that returns the sql storage to be used for Amarok.
+ *
+ * In addition to the SqlCollection a lot of other components
+ * use a sql storage to persist data.
+ *
+ */
+ static StorageManager *instance();
+
+ /** Destroys the instance of the StorageManager.
+ */
+ static void destroy();
+
+ /**
+ retrieve an interface which allows client-code to store/load data in a \
relational database. + Note: code using this method does NOT take \
ownership of the pointer, but may cache the pointer + Note2: You should \
never modify the database unless you really really know what you do. + \
Using the SqlMeta (e.g. SqlRegistry or SqlTrack) is much better. + @return \
Returns a pointer to the amarok wide SqlStorage or + to an \
internal dummy SqlStorage if that cannot be found. + It never \
returns a null pointer. + */
+ SqlStorage* sqlStorage() const;
+
+ /**
+ * Set the list of current factories
+ *
+ * For every factory that is a CollectionFactory uses it to create new
+ * collections and register with this manager.
+ */
+ void setFactories( const QList<Plugins::PluginFactory*> &factories );
+
+ private slots:
+
+ /** Will be called whenever a factory emits a newStorage signal.
+ *
+ * The first factory to emit this signal will get it's storage
+ * registered as "the" storage.
+ */
+ void slotNewStorage( SqlStorage* newStorage );
+
+ private:
+ static StorageManager* s_instance;
+ StorageManager();
+ ~StorageManager();
+
+ void init();
+
+
+ Q_DISABLE_COPY( StorageManager )
+
+ struct Private;
+ Private * const d;
+};
+
+#endif /* AMAROK_STORAGEMANAGER_H */
diff --git a/src/core-impl/support/TagStatisticsStore.cpp \
b/src/core-impl/support/TagStatisticsStore.cpp index acdace5..d72aced 100644
--- a/src/core-impl/support/TagStatisticsStore.cpp
+++ b/src/core-impl/support/TagStatisticsStore.cpp
@@ -16,9 +16,9 @@
#include "TagStatisticsStore.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include "core/meta/Meta.h"
-#include "core-impl/collections/support/CollectionManager.h"
+#include "core-impl/storage/StorageManager.h"
TagStatisticsStore::TagStatisticsStore( Meta::Track *track )
: PersistentStatisticsStore( track )
@@ -26,7 +26,7 @@ TagStatisticsStore::TagStatisticsStore( Meta::Track *track )
, m_artist( track->artist() ? track->artist()->name() : QString() )
, m_album( track->album() ? track->album()->name() : QString() )
{
- SqlStorage *sql = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sql = StorageManager::instance()->sqlStorage();
const QString query = "SELECT firstPlayed, lastPlayed, score, rating, playcount \
FROM "
"statistics_tag WHERE name = '%1' AND artist = '%2' AND \
album = '%3'"; @@ -46,7 +46,7 @@ TagStatisticsStore::TagStatisticsStore( Meta::Track \
*track ) void
TagStatisticsStore::save()
{
- SqlStorage *sql = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sql = StorageManager::instance()->sqlStorage();
const QString check = "SELECT COUNT(*) FROM statistics_tag WHERE name = '%1' "
"AND artist = '%2' AND album = '%3'";
diff --git a/src/core-impl/support/UrlStatisticsStore.cpp \
b/src/core-impl/support/UrlStatisticsStore.cpp index e0bb772..b25c318 100644
--- a/src/core-impl/support/UrlStatisticsStore.cpp
+++ b/src/core-impl/support/UrlStatisticsStore.cpp
@@ -16,10 +16,10 @@
#include "UrlStatisticsStore.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include "core/meta/Meta.h"
#include "core/support/Debug.h"
-#include "core-impl/collections/support/CollectionManager.h"
+#include "core-impl/storage/StorageManager.h"
UrlStatisticsStore::UrlStatisticsStore( Meta::Track *track, const QString \
&permanentUrl ) : PersistentStatisticsStore( track )
@@ -27,7 +27,7 @@ UrlStatisticsStore::UrlStatisticsStore( Meta::Track *track, const \
QString &perma {
if( m_permanentUrl.isEmpty() )
m_permanentUrl = track->uidUrl();
- SqlStorage *sql = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sql = StorageManager::instance()->sqlStorage();
if( !sql )
{
warning() << __PRETTY_FUNCTION__ << "could not get SqlStorage, aborting";
@@ -51,7 +51,7 @@ UrlStatisticsStore::UrlStatisticsStore( Meta::Track *track, const \
QString &perma void
UrlStatisticsStore::save()
{
- SqlStorage *sql = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sql = StorageManager::instance()->sqlStorage();
if( !sql )
{
warning() << __PRETTY_FUNCTION__ << "could not get SqlStorage, aborting";
diff --git a/src/core/storage/SqlStorage.h b/src/core/storage/SqlStorage.h
new file mode 100644
index 0000000..02e538b
--- /dev/null
+++ b/src/core/storage/SqlStorage.h
@@ -0,0 +1,71 @@
+/****************************************************************************************
+ * Copyright (c) 2007 Maximilian Kossick <maximilian.kossick@googlemail.com> \
* + * \
* + * This program is free software; you can redistribute it and/or modify it under \
* + * the terms of the GNU General Public License as published by the Free Software \
* + * Foundation; either version 2 of the License, or (at your option) any later \
* + * version. \
* + * \
* + * This program is distributed in the hope that it will be useful, but WITHOUT ANY \
* + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A \
* + * PARTICULAR PURPOSE. See the GNU General Public License for more details. \
* + * \
* + * You should have received a copy of the GNU General Public License along with \
* + * this program. If not, see <http://www.gnu.org/licenses/>. \
* + ****************************************************************************************/
+
+#ifndef AMAROK_SQLSTORAGE_H
+#define AMAROK_SQLSTORAGE_H
+
+#include "core/amarokcore_export.h"
+
+#include <QMetaType>
+#include <QString>
+#include <QStringList>
+
+/** The abstract SqlStorage engine
+ Only current implementations are in core-impl/collections/db/sql
+*/
+class SqlStorage
+{
+public:
+ SqlStorage() {}
+ virtual ~SqlStorage() {}
+
+ /** Returns e.g. MySQLe */
+ virtual QString type() const = 0;
+
+ virtual QString escape( const QString &text ) const = 0;
+
+ virtual QStringList query( const QString &query ) = 0;
+ virtual int insert( const QString &statement, const QString &table ) = 0;
+
+ virtual QString boolTrue() const = 0;
+ virtual QString boolFalse() const = 0;
+
+ /**
+ use this type for auto incrementing integer primary keys.
+ */
+ virtual QString idType() const = 0;
+
+ virtual QString textColumnType( int length = 255 ) const = 0;
+ virtual QString exactTextColumnType( int length = 1000 ) const = 0;
+ //the below value may have to be decreased even more for different indexes; only \
time will tell + virtual QString exactIndexableTextColumnType( int length = 324 ) \
const = 0; + virtual QString longTextColumnType() const = 0;
+ virtual QString randomFunc() const = 0;
+
+ /** Returns a list of the last sql errors.
+ The list might not include every one error if the number
+ is beyond a sensible limit.
+ */
+ virtual QStringList getLastErrors() const = 0;
+
+ /** Clears the list of the last errors. */
+ virtual void clearLastErrors() = 0;
+
+};
+
+Q_DECLARE_METATYPE( SqlStorage * )
+
+#endif
diff --git a/src/playlistmanager/sql/SqlPlaylist.cpp \
b/src/playlistmanager/sql/SqlPlaylist.cpp index 6dfd0d1..4cca330 100644
--- a/src/playlistmanager/sql/SqlPlaylist.cpp
+++ b/src/playlistmanager/sql/SqlPlaylist.cpp
@@ -16,9 +16,9 @@
#include "SqlPlaylist.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include "core/support/Debug.h"
-#include "core-impl/collections/support/CollectionManager.h"
+#include "core-impl/storage/StorageManager.h"
#include "core-impl/meta/proxy/MetaProxy.h"
#include "core-impl/meta/stream/Stream.h"
#include "core-impl/meta/timecode/TimecodeMeta.h"
@@ -102,7 +102,7 @@ SqlPlaylist::saveToDb( bool tracks )
if( m_parent )
parentId = m_parent->id();
- SqlStorage *sql = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sql = StorageManager::instance()->sqlStorage();
//figure out if we have a urlId and if this id is already in the db, if so, \
update it instead of creating a new one. if( !m_urlId.isEmpty() )
@@ -129,14 +129,14 @@ SqlPlaylist::saveToDb( bool tracks )
query = query.arg( QString::number( parentId ) )
.arg( sql->escape( m_name ) )
.arg( QString::number( m_dbId ) );
- CollectionManager::instance()->sqlStorage()->query( query );
+ StorageManager::instance()->sqlStorage()->query( query );
if( tracks )
{
//delete existing tracks and insert all
query = "DELETE FROM playlist_tracks where playlist_id=%1;";
query = query.arg( QString::number( m_dbId ) );
- CollectionManager::instance()->sqlStorage()->query( query );
+ StorageManager::instance()->sqlStorage()->query( query );
saveTracks();
}
}
@@ -148,7 +148,7 @@ SqlPlaylist::saveToDb( bool tracks )
query = query.arg( QString::number( parentId ) )
.arg( sql->escape( m_name ) )
.arg( sql->escape( m_urlId ) );
- m_dbId = CollectionManager::instance()->sqlStorage()->insert( query, \
"playlists" ); + m_dbId = StorageManager::instance()->sqlStorage()->insert( \
query, "playlists" ); if( tracks )
saveTracks();
}
@@ -173,7 +173,7 @@ void
SqlPlaylist::saveTracks()
{
int trackNum = 1;
- SqlStorage *sql = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sql = StorageManager::instance()->sqlStorage();
foreach( Meta::TrackPtr trackPtr, m_tracks )
{
@@ -256,7 +256,7 @@ SqlPlaylist::loadTracks()
"playlist_tracks WHERE playlist_id=%1 ORDER BY track_num";
query = query.arg( QString::number( m_dbId ) );
- QStringList result = CollectionManager::instance()->sqlStorage()->query( query \
); + QStringList result = StorageManager::instance()->sqlStorage()->query( query \
);
int resultRows = result.count() / 7;
@@ -288,11 +288,11 @@ SqlPlaylist::removeFromDb()
{
QString query = "DELETE FROM playlist_tracks WHERE playlist_id=%1";
query = query.arg( QString::number( m_dbId ) );
- CollectionManager::instance()->sqlStorage()->query( query );
+ StorageManager::instance()->sqlStorage()->query( query );
query = "DELETE FROM playlists WHERE id=%1";
query = query.arg( QString::number( m_dbId ) );
- CollectionManager::instance()->sqlStorage()->query( query );
+ StorageManager::instance()->sqlStorage()->query( query );
}
} //namespace Playlists
diff --git a/src/playlistmanager/sql/SqlPlaylistGroup.cpp \
b/src/playlistmanager/sql/SqlPlaylistGroup.cpp index d22dcd2..47c6baf 100644
--- a/src/playlistmanager/sql/SqlPlaylistGroup.cpp
+++ b/src/playlistmanager/sql/SqlPlaylistGroup.cpp
@@ -16,9 +16,9 @@
#include "SqlPlaylistGroup.h"
-#include "core-impl/collections/support/CollectionManager.h"
+#include "core-impl/storage/StorageManager.h"
#include "core/support/Debug.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include <typeinfo>
@@ -62,7 +62,7 @@ SqlPlaylistGroup::save()
if ( m_parent )
parentId = m_parent->id();
- SqlStorage* sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage* sqlStorage = StorageManager::instance()->sqlStorage();
if( !sqlStorage )
return;
@@ -103,7 +103,7 @@ SqlPlaylistGroup::setDescription( const QString &description )
void
SqlPlaylistGroup::removeFromDb()
{
- SqlStorage* sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage* sqlStorage = StorageManager::instance()->sqlStorage();
if( !sqlStorage )
return;
@@ -140,7 +140,7 @@ SqlPlaylistGroup::setParent( SqlPlaylistGroupPtr parent )
SqlPlaylistGroupList
SqlPlaylistGroup::childSqlGroups() const
{
- SqlStorage* sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage* sqlStorage = StorageManager::instance()->sqlStorage();
if( !sqlStorage )
return SqlPlaylistGroupList();
@@ -172,7 +172,7 @@ SqlPlaylistGroup::childSqlGroups() const
SqlPlaylistList
SqlPlaylistGroup::childSqlPlaylists() const
{
- SqlStorage* sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage* sqlStorage = StorageManager::instance()->sqlStorage();
if( !sqlStorage )
return SqlPlaylistList();
diff --git a/src/playlistmanager/sql/SqlUserPlaylistProvider.cpp \
b/src/playlistmanager/sql/SqlUserPlaylistProvider.cpp index bfb0f85..f21d412 100644
--- a/src/playlistmanager/sql/SqlUserPlaylistProvider.cpp
+++ b/src/playlistmanager/sql/SqlUserPlaylistProvider.cpp
@@ -19,11 +19,11 @@
#include "SvgHandler.h"
#include "browsers/playlistbrowser/UserPlaylistModel.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include "core/playlists/PlaylistFormat.h"
#include "core/support/Amarok.h"
#include "core/support/Debug.h"
-#include "core-impl/collections/support/CollectionManager.h"
+#include "core-impl/storage/StorageManager.h"
#include "core-impl/playlists/types/file/m3u/M3UPlaylist.h"
#include "core-impl/playlists/types/file/pls/PLSPlaylist.h"
#include "core-impl/playlists/types/file/xspf/XSPFPlaylist.h"
@@ -188,7 +188,7 @@ SqlUserPlaylistProvider::createTables()
{
DEBUG_BLOCK
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
if( !sqlStorage )
{
debug() << "No SQL Storage available!";
@@ -229,7 +229,7 @@ SqlUserPlaylistProvider::deleteTables()
{
DEBUG_BLOCK
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
if( !sqlStorage )
{
@@ -253,7 +253,7 @@ SqlUserPlaylistProvider::checkTables()
{
DEBUG_BLOCK
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
QStringList values;
//Prevents amarok from crashing on bad DB
@@ -299,7 +299,7 @@ void
SqlUserPlaylistProvider::upgradeVersion2to3()
{
DEBUG_BLOCK
- SqlStorage *sqlStorage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlStorage = StorageManager::instance()->sqlStorage();
sqlStorage->query( "ALTER TABLE playlists DROP COLUMN description" );
}
diff --git a/src/scripting/scriptengine/AmarokCollectionScript.cpp \
b/src/scripting/scriptengine/AmarokCollectionScript.cpp index 449dda8..fee3a33 100644
--- a/src/scripting/scriptengine/AmarokCollectionScript.cpp
+++ b/src/scripting/scriptengine/AmarokCollectionScript.cpp
@@ -18,8 +18,9 @@
#include "amarokconfig.h"
#include "App.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include "core-impl/collections/support/CollectionManager.h"
+#include "core-impl/storage/StorageManager.h"
#include "core/collections/Collection.h"
#include "core-impl/collections/db/sql/SqlCollectionLocation.h"
#include "core/collections/QueryMaker.h"
@@ -118,13 +119,13 @@ AmarokCollectionScript::collectionLocation() const
QStringList
AmarokCollectionScript::query( const QString& sql ) const
{
- return CollectionManager::instance()->sqlStorage()->query( sql );
+ return StorageManager::instance()->sqlStorage()->query( sql );
}
QString
AmarokCollectionScript::escape( const QString& sql ) const
{
- return CollectionManager::instance()->sqlStorage()->escape( sql );
+ return StorageManager::instance()->sqlStorage()->escape( sql );
}
void
diff --git a/src/services/ServiceSqlCollection.cpp \
b/src/services/ServiceSqlCollection.cpp index 24f187a..b8e0d77 100644
--- a/src/services/ServiceSqlCollection.cpp
+++ b/src/services/ServiceSqlCollection.cpp
@@ -17,9 +17,9 @@
#include "ServiceSqlCollection.h"
-#include "core-impl/collections/support/CollectionManager.h"
#include "ServiceSqlQueryMaker.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
+#include <core-impl/storage/StorageManager.h>
#include <klocale.h>
@@ -59,20 +59,20 @@ ServiceSqlCollection::queryMaker()
QStringList
ServiceSqlCollection::query( const QString &statement )
{
- return CollectionManager::instance()->sqlStorage()->query( statement );
+ return StorageManager::instance()->sqlStorage()->query( statement );
}
int
ServiceSqlCollection::insert( const QString &statement, const QString &table )
{
- return CollectionManager::instance()->sqlStorage()->insert( statement, table );
+ return StorageManager::instance()->sqlStorage()->insert( statement, table );
}
QString
ServiceSqlCollection::escape( QString text ) const
{
- return CollectionManager::instance()->sqlStorage()->escape( text );
+ return StorageManager::instance()->sqlStorage()->escape( text );
}
Meta::TrackPtr
@@ -88,7 +88,7 @@ ServiceSqlCollection::trackForUrl(const KUrl & url)
QString pristineUrl = url.url();
- SqlStorage *sqlDb = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlDb = StorageManager::instance()->sqlStorage();
QString from = prefix + "_tracks";
from += " LEFT JOIN " + prefix + "_albums ON " + prefix + "_tracks.album_id = " \
+ prefix + "_albums.id";
diff --git a/src/services/ServiceSqlQueryMaker.cpp \
b/src/services/ServiceSqlQueryMaker.cpp index 64cead7..cfd9377 100644
--- a/src/services/ServiceSqlQueryMaker.cpp
+++ b/src/services/ServiceSqlQueryMaker.cpp
@@ -19,10 +19,10 @@
#include "ServiceSqlQueryMaker.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
#include "core/meta/support/MetaConstants.h"
#include "core/support/Debug.h"
-#include "core-impl/collections/support/CollectionManager.h"
+#include "core-impl/storage/StorageManager.h"
#include "ServiceSqlCollection.h"
#include <threadweaver/Job.h>
@@ -764,7 +764,7 @@ ServiceSqlQueryMaker::handleYears( const QStringList &result )
QString
ServiceSqlQueryMaker::escape( QString text ) const //krazy2:exclude=constref
{
- SqlStorage *storage = CollectionManager::instance()->sqlStorage();
+ SqlStorage *storage = StorageManager::instance()->sqlStorage();
if( storage )
return storage->escape( text );
else
diff --git a/src/services/jamendo/JamendoDatabaseHandler.cpp \
b/src/services/jamendo/JamendoDatabaseHandler.cpp index a05cfd0..b44be2c 100644
--- a/src/services/jamendo/JamendoDatabaseHandler.cpp
+++ b/src/services/jamendo/JamendoDatabaseHandler.cpp
@@ -16,9 +16,9 @@
#include "JamendoDatabaseHandler.h"
-#include "core-impl/collections/support/CollectionManager.h"
+#include "core-impl/storage/StorageManager.h"
#include "core/support/Debug.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
using namespace Meta;
@@ -34,7 +34,7 @@ void
JamendoDatabaseHandler::createDatabase( )
{
//Get database instance
- SqlStorage *db = CollectionManager::instance()->sqlStorage();
+ SqlStorage *db = StorageManager::instance()->sqlStorage();
QString autoIncrement = "AUTO_INCREMENT";
@@ -114,7 +114,7 @@ JamendoDatabaseHandler::destroyDatabase( )
{
debug() << "Destroy Jamendo database ";
- SqlStorage *db = CollectionManager::instance()->sqlStorage();
+ SqlStorage *db = StorageManager::instance()->sqlStorage();
QStringList result = db->query( "DROP INDEX jamendo_tracks_id ON \
jamendo_tracks;");
result = db->query( "DROP INDEX jamendo_tracks_artist_id ON jamendo_tracks;");
@@ -143,7 +143,7 @@ JamendoDatabaseHandler::insertTrack( ServiceTrack *track )
JamendoTrack * jTrack = static_cast<JamendoTrack *> ( track );
QString numberString;
- SqlStorage *db = CollectionManager::instance()->sqlStorage();
+ SqlStorage *db = StorageManager::instance()->sqlStorage();
QString queryString = "INSERT INTO jamendo_tracks ( id, name, track_number, \
length, " "album_id, artist_id, preview_url ) VALUES ( "
+ QString::number( jTrack->id() ) + ", '"
@@ -180,7 +180,7 @@ JamendoDatabaseHandler::insertAlbum( ServiceAlbum *album )
JamendoAlbum * jAlbum = static_cast<JamendoAlbum *> ( album );
QString queryString, popularity;
- SqlStorage *sqlDb = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlDb = StorageManager::instance()->sqlStorage();
popularity = QString::number( jAlbum->popularity() );
if( popularity == "nan" ) // sometimes this seems to happen, I don't know why
@@ -211,7 +211,7 @@ JamendoDatabaseHandler::insertArtist( ServiceArtist *artist )
{
JamendoArtist * jArtist = static_cast<JamendoArtist *> ( artist );
QString queryString;
- SqlStorage *sqlDb = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlDb = StorageManager::instance()->sqlStorage();
queryString = "INSERT INTO jamendo_artists ( id, name, description, "
"country, photo_url, jamendo_url, home_url "
") VALUES ( "
@@ -236,7 +236,7 @@ JamendoDatabaseHandler::insertArtist( ServiceArtist *artist )
int JamendoDatabaseHandler::insertGenre(ServiceGenre * genre)
{
QString queryString;
- SqlStorage *sqlDb = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlDb = StorageManager::instance()->sqlStorage();
queryString = "INSERT INTO jamendo_genre ( album_id, name "
") VALUES ( "
+ QString::number ( genre->albumId() ) + ", '"
@@ -250,7 +250,7 @@ int JamendoDatabaseHandler::insertGenre(ServiceGenre * genre)
void
JamendoDatabaseHandler::begin( )
{
- CollectionManager *mgr = CollectionManager::instance();
+ StorageManager *mgr = StorageManager::instance();
QString queryString = "BEGIN;";
mgr->sqlStorage()->query( queryString );
}
@@ -258,7 +258,7 @@ JamendoDatabaseHandler::begin( )
void
JamendoDatabaseHandler::commit( )
{
- CollectionManager *mgr = CollectionManager::instance();
+ StorageManager *mgr = StorageManager::instance();
QString queryString = "COMMIT;";
mgr->sqlStorage()->query( queryString );
}
@@ -268,7 +268,7 @@ JamendoDatabaseHandler::trimGenres( int minCount )
{
QString query = QString("delete from jamendo_genre where name IN ( SELECT name \
from jamendo_genre GROUP BY jamendo_genre.name HAVING COUNT ( jamendo_genre.name ) < \
%1 );").arg( minCount );
- SqlStorage *sqlDb = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlDb = StorageManager::instance()->sqlStorage();
sqlDb->query( query );
//also trim genre names that have only 1 or 2 chars
diff --git a/src/services/magnatune/MagnatuneDatabaseHandler.cpp \
b/src/services/magnatune/MagnatuneDatabaseHandler.cpp index dd1c75c..c5cdede 100644
--- a/src/services/magnatune/MagnatuneDatabaseHandler.cpp
+++ b/src/services/magnatune/MagnatuneDatabaseHandler.cpp
@@ -16,9 +16,9 @@
#include "MagnatuneDatabaseHandler.h"
-#include "core-impl/collections/support/CollectionManager.h"
-#include "core/support/Debug.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core-impl/storage/StorageManager.h>
+#include <core/support/Debug.h>
+#include <core/storage/SqlStorage.h>
using namespace Meta;
@@ -33,7 +33,7 @@ void
MagnatuneDatabaseHandler::createDatabase( )
{
//Get database instance
- SqlStorage *sqlDb = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlDb = StorageManager::instance()->sqlStorage();
QString autoIncrement = "AUTO_INCREMENT";
@@ -118,7 +118,7 @@ MagnatuneDatabaseHandler::createDatabase( )
void
MagnatuneDatabaseHandler::destroyDatabase( )
{
- SqlStorage *sqlDb = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlDb = StorageManager::instance()->sqlStorage();
QStringList result = sqlDb->query( "DROP TABLE IF EXISTS magnatune_tracks;" );
result = sqlDb->query( "DROP TABLE IF EXISTS magnatune_albums;" );
result = sqlDb->query( "DROP TABLE IF EXISTS magnatune_artists;" );
@@ -150,7 +150,7 @@ MagnatuneDatabaseHandler::insertTrack( ServiceTrack *track )
{
MagnatuneTrack * mTrack = static_cast<MagnatuneTrack *> ( track );
- SqlStorage *sqlDb = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlDb = StorageManager::instance()->sqlStorage();
QString queryString = "INSERT INTO magnatune_tracks ( name, track_number, \
length, "
"album_id, artist_id, preview_lofi, preview_ogg, preview_url ) VALUES ( \
'" + sqlDb->escape( mTrack->name()) + "', "
@@ -178,7 +178,7 @@ MagnatuneDatabaseHandler::insertAlbum( ServiceAlbum *album )
MagnatuneAlbum * mAlbum = static_cast<MagnatuneAlbum *> ( album );
QString queryString;
- SqlStorage *sqlDb = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlDb = StorageManager::instance()->sqlStorage();
queryString = "INSERT INTO magnatune_albums ( name, year, artist_id, "
"album_code, cover_url, description ) VALUES ( '"
+ sqlDb->escape( sqlDb->escape( mAlbum->name() ) ) + "', "
@@ -201,7 +201,7 @@ MagnatuneDatabaseHandler::insertArtist( ServiceArtist *artist )
MagnatuneArtist * mArtist = static_cast<MagnatuneArtist *> ( artist );
QString queryString;
- SqlStorage *sqlDb = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlDb = StorageManager::instance()->sqlStorage();
queryString = "INSERT INTO magnatune_artists ( name, artist_page, description, "
"photo_url ) VALUES ( '"
+ sqlDb->escape( mArtist->name() ) + "', '"
@@ -219,7 +219,7 @@ void
MagnatuneDatabaseHandler::begin( )
{
- SqlStorage *sqlDb = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlDb = StorageManager::instance()->sqlStorage();
QString queryString = "BEGIN;";
@@ -229,7 +229,7 @@ MagnatuneDatabaseHandler::begin( )
void
MagnatuneDatabaseHandler::commit( )
{
- SqlStorage *sqlDb = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlDb = StorageManager::instance()->sqlStorage();
QString queryString = "COMMIT;";
sqlDb->query( queryString );
@@ -240,7 +240,7 @@ void MagnatuneDatabaseHandler::insertMoods(int trackId, const \
QStringList &moods {
QString queryString;
- SqlStorage *sqlDb = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlDb = StorageManager::instance()->sqlStorage();
foreach( const QString &mood, moods ) {
queryString = "INSERT INTO magnatune_moods ( track_id, mood ) VALUES ( "
@@ -256,7 +256,7 @@ void MagnatuneDatabaseHandler::insertMoods(int trackId, const \
QStringList &moods int MagnatuneDatabaseHandler::getArtistIdByExactName(const \
QString & name) {
- SqlStorage *sqlDb = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlDb = StorageManager::instance()->sqlStorage();
QString queryString = "SELECT id from magnatune_artists WHERE name='" + \
sqlDb->escape( name ) + "';"; QStringList result = sqlDb->query( queryString );
@@ -274,7 +274,7 @@ int MagnatuneDatabaseHandler::getArtistIdByExactName(const \
QString & name)
int MagnatuneDatabaseHandler::getAlbumIdByAlbumCode(const QString & albumcode)
{
- SqlStorage *sqlDb = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlDb = StorageManager::instance()->sqlStorage();
QString queryString = "SELECT id from magnatune_albums WHERE album_code='" + \
sqlDb->escape( albumcode ) + "';"; QStringList result = sqlDb->query( queryString );
@@ -292,7 +292,7 @@ int MagnatuneDatabaseHandler::getAlbumIdByAlbumCode(const QString \
& albumcode) int MagnatuneDatabaseHandler::insertGenre(ServiceGenre * genre)
{
QString queryString;
- SqlStorage *sqlDb = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlDb = StorageManager::instance()->sqlStorage();
queryString = "INSERT INTO magnatune_genre ( album_id, name "
") VALUES ( "
+ QString::number ( genre->albumId() ) + ", '"
diff --git a/src/services/magnatune/MagnatuneDatabaseWorker.cpp \
b/src/services/magnatune/MagnatuneDatabaseWorker.cpp index 47c672d..f01ac97 100644
--- a/src/services/magnatune/MagnatuneDatabaseWorker.cpp
+++ b/src/services/magnatune/MagnatuneDatabaseWorker.cpp
@@ -16,8 +16,8 @@
#include "MagnatuneDatabaseWorker.h"
-#include "core-impl/collections/support/CollectionManager.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core-impl/storage/StorageManager.h>
+#include <core/storage/SqlStorage.h>
MagnatuneDatabaseWorker::MagnatuneDatabaseWorker()
: ThreadWeaver::Job()
@@ -101,7 +101,7 @@ void MagnatuneDatabaseWorker::fetchAlbumBySku( const QString & \
sku, ServiceSqlRe
void MagnatuneDatabaseWorker::doFetchMoodMap()
{
- SqlStorage *sqlDb = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlDb = StorageManager::instance()->sqlStorage();
QString queryString = "select count( mood ), mood from magnatune_moods GROUP BY \
mood;"; debug() << "Querying for moods: " << queryString;
QStringList result = sqlDb->query( queryString );
@@ -117,7 +117,7 @@ void MagnatuneDatabaseWorker::doFetchMoodMap()
void MagnatuneDatabaseWorker::doFetchTrackswithMood()
{
- SqlStorage *sqlDb = CollectionManager::instance()->sqlStorage();
+ SqlStorage *sqlDb = StorageManager::instance()->sqlStorage();
@@ -177,8 +177,8 @@ void MagnatuneDatabaseWorker::doFetchAlbumBySku()
QString rows = metaFactory->getAlbumSqlRows()
+ ','
+ metaFactory->getArtistSqlRows();
-
- SqlStorage *sqlDb = CollectionManager::instance()->sqlStorage();
+
+ SqlStorage *sqlDb = StorageManager::instance()->sqlStorage();
QString queryString = "SELECT " + rows + " FROM magnatune_albums LEFT JOIN \
magnatune_artists ON magnatune_albums.artist_id = magnatune_artists.id WHERE \
album_code = '" + m_sku + "';"; debug() << "Querying for album: " << queryString;
QStringList result = sqlDb->query( queryString );
diff --git a/src/services/opmldirectory/OpmlDirectoryDatabaseHandler.cpp \
b/src/services/opmldirectory/OpmlDirectoryDatabaseHandler.cpp index 7e66fc8..194291b \
100644
--- a/src/services/opmldirectory/OpmlDirectoryDatabaseHandler.cpp
+++ b/src/services/opmldirectory/OpmlDirectoryDatabaseHandler.cpp
@@ -18,7 +18,7 @@
#include "core-impl/collections/support/CollectionManager.h"
#include "core/support/Debug.h"
-#include "core/collections/support/SqlStorage.h"
+#include <core/storage/SqlStorage.h>
using namespace Meta;
diff --git a/tests/core-impl/collections/db/sql/CMakeLists.txt \
b/tests/core-impl/collections/db/sql/CMakeLists.txt index 6f27513..8b3b465 100644
--- a/tests/core-impl/collections/db/sql/CMakeLists.txt
+++ b/tests/core-impl/collections/db/sql/CMakeLists.txt
@@ -5,8 +5,8 @@ macro(add_database_test test_target test_sources)
#one cannot link to plugins on OS X. As a workaround, add anything relevant that \
goes into the mysqle plugin to each test set( test_sources_internal
${test_sources}
- ${AMAROK_SOURCE_TREE}/core-impl/collections/db/sql/mysql-shared/MySqlStorage.cpp
- ${AMAROK_SOURCE_TREE}/core-impl/collections/db/sql/mysqlecollection/MySqlEmbeddedStorage.cpp \
) + ${AMAROK_SOURCE_TREE}/core-impl/storage/MySqlStorage.cpp
+ ${AMAROK_SOURCE_TREE}/core-impl/storage/MySqlEmbeddedStorage.cpp )
endif(APPLE)
diff --git a/tests/core-impl/collections/db/sql/TestDatabaseUpdater.cpp \
b/tests/core-impl/collections/db/sql/TestDatabaseUpdater.cpp index ce1e5e4..c1339a1 \
100644
--- a/tests/core-impl/collections/db/sql/TestDatabaseUpdater.cpp
+++ b/tests/core-impl/collections/db/sql/TestDatabaseUpdater.cpp
@@ -18,7 +18,7 @@
#include "SqlCollection.h"
#include "DatabaseUpdater.h"
-#include "mysqlecollection/MySqlEmbeddedStorage.h"
+#include "core-impl/storage/MySqlEmbeddedStorage.h"
#include <KTempDir>
diff --git a/tests/core-impl/collections/db/sql/TestSqlAlbum.cpp \
b/tests/core-impl/collections/db/sql/TestSqlAlbum.cpp index 607d921..84ed57e 100644
--- a/tests/core-impl/collections/db/sql/TestSqlAlbum.cpp
+++ b/tests/core-impl/collections/db/sql/TestSqlAlbum.cpp
@@ -18,7 +18,7 @@
#include "TestSqlAlbum.h"
#include "core/meta/Meta.h"
-#include "mysqlecollection/MySqlEmbeddedStorage.h"
+#include "core-impl/storage/MySqlEmbeddedStorage.h"
#include "SqlCollection.h"
#include "SqlMountPointManagerMock.h"
diff --git a/tests/core-impl/collections/db/sql/TestSqlArtist.cpp \
b/tests/core-impl/collections/db/sql/TestSqlArtist.cpp index faa5699..aee6444 100644
--- a/tests/core-impl/collections/db/sql/TestSqlArtist.cpp
+++ b/tests/core-impl/collections/db/sql/TestSqlArtist.cpp
@@ -16,13 +16,11 @@
#include "TestSqlArtist.h"
-#include "core/support/Debug.h"
#include "DefaultSqlQueryMakerFactory.h"
#include "core/meta/Meta.h"
-#include "mysqlecollection/MySqlEmbeddedStorage.h"
+#include "core-impl/storage/MySqlEmbeddedStorage.h"
#include "SqlCollection.h"
#include "SqlMountPointManagerMock.h"
-// #include "SqlMeta.h"
#include <qtest_kde.h>
diff --git a/tests/core-impl/collections/db/sql/TestSqlCollection.cpp \
b/tests/core-impl/collections/db/sql/TestSqlCollection.cpp index 8930102..9a353eb \
100644
--- a/tests/core-impl/collections/db/sql/TestSqlCollection.cpp
+++ b/tests/core-impl/collections/db/sql/TestSqlCollection.cpp
@@ -19,7 +19,7 @@
#include <core/collections/Collection.h>
#include <core-impl/collections/db/sql/SqlCollection.h>
#include <core-impl/collections/db/sql/DatabaseUpdater.h>
-#include <core-impl/collections/db/sql/mysqlecollection/MySqlEmbeddedStorage.h>
+#include <core-impl/storage/MySqlEmbeddedStorage.h>
#include "SqlMountPointManagerMock.h"
diff --git a/tests/core-impl/collections/db/sql/TestSqlCollectionLocation.cpp \
b/tests/core-impl/collections/db/sql/TestSqlCollectionLocation.cpp index \
4dd28c7..e565d3e 100644
--- a/tests/core-impl/collections/db/sql/TestSqlCollectionLocation.cpp
+++ b/tests/core-impl/collections/db/sql/TestSqlCollectionLocation.cpp
@@ -22,7 +22,7 @@
#include "core-impl/logger/ProxyLogger.h"
#include "DefaultSqlQueryMakerFactory.h"
#include "core/meta/Meta.h"
-#include "mysqlecollection/MySqlEmbeddedStorage.h"
+#include "core-impl/storage/MySqlEmbeddedStorage.h"
#include "SqlCollection.h"
#include "SqlCollectionLocation.h"
#include "SqlRegistry.h"
diff --git a/tests/core-impl/collections/db/sql/TestSqlQueryMaker.cpp \
b/tests/core-impl/collections/db/sql/TestSqlQueryMaker.cpp index 6ce41df..bb0cbba \
100644
--- a/tests/core-impl/collections/db/sql/TestSqlQueryMaker.cpp
+++ b/tests/core-impl/collections/db/sql/TestSqlQueryMaker.cpp
@@ -22,7 +22,7 @@
#include "SqlCollection.h"
#include "SqlQueryMaker.h"
#include "SqlRegistry.h"
-#include "mysqlecollection/MySqlEmbeddedStorage.h"
+#include "core-impl/storage/MySqlEmbeddedStorage.h"
#include "SqlMountPointManagerMock.h"
diff --git a/tests/core-impl/collections/db/sql/TestSqlScanManager.cpp \
b/tests/core-impl/collections/db/sql/TestSqlScanManager.cpp index 506285d..7b81868 \
100644
--- a/tests/core-impl/collections/db/sql/TestSqlScanManager.cpp
+++ b/tests/core-impl/collections/db/sql/TestSqlScanManager.cpp
@@ -23,7 +23,7 @@
#include "core-impl/collections/db/sql/SqlCollection.h"
#include "core-impl/collections/db/sql/SqlQueryMaker.h"
#include "core-impl/collections/db/sql/SqlRegistry.h"
-#include "core-impl/collections/db/sql/mysqlecollection/MySqlEmbeddedStorage.h"
+#include "core-impl/storage/MySqlEmbeddedStorage.h"
#include "config-amarok-test.h"
#include "SqlMountPointManagerMock.h"
diff --git a/tests/core-impl/collections/db/sql/TestSqlTrack.cpp \
b/tests/core-impl/collections/db/sql/TestSqlTrack.cpp index c2b9cea..e6b1160 100644
--- a/tests/core-impl/collections/db/sql/TestSqlTrack.cpp
+++ b/tests/core-impl/collections/db/sql/TestSqlTrack.cpp
@@ -16,10 +16,9 @@
#include "TestSqlTrack.h"
-#include "core/support/Debug.h"
#include "DefaultSqlQueryMakerFactory.h"
#include "core/meta/Meta.h"
-#include "mysqlecollection/MySqlEmbeddedStorage.h"
+#include "core-impl/storage/MySqlEmbeddedStorage.h"
#include "SqlCollection.h"
#include "SqlMeta.h"
diff --git a/tests/mocks/SqlStorageMock.h b/tests/mocks/SqlStorageMock.h
index db27e2c..bf70eff 100644
--- a/tests/mocks/SqlStorageMock.h
+++ b/tests/mocks/SqlStorageMock.h
@@ -17,7 +17,7 @@
#ifndef SQLSTORAGEMOCK_H
#define SQLSTORAGEMOCK_H
-#include "core/collections/support/SqlStorage.h"
+#include "core/storage/SqlStorage.h"
#include <QList>
#include <QPair>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic