Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mpd
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Иван Мажукин
mpd
Commits
dea46e8d
Commit
dea46e8d
authored
Oct 28, 2016
by
Max Kellermann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
db/Plugin: migrate from class Error to C++ exceptions
parent
7e5ce623
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
31 additions
and
61 deletions
+31
-61
DatabaseGlue.cxx
src/db/DatabaseGlue.cxx
+1
-1
DatabasePlugin.hxx
src/db/DatabasePlugin.hxx
+3
-3
ProxyDatabasePlugin.cxx
src/db/plugins/ProxyDatabasePlugin.cxx
+21
-28
SimpleDatabasePlugin.cxx
src/db/plugins/simple/SimpleDatabasePlugin.cxx
+1
-1
SimpleDatabasePlugin.hxx
src/db/plugins/simple/SimpleDatabasePlugin.hxx
+1
-2
UpnpDatabasePlugin.cxx
src/db/plugins/upnp/UpnpDatabasePlugin.cxx
+3
-19
DumpDatabase.cxx
test/DumpDatabase.cxx
+1
-7
No files found.
src/db/DatabaseGlue.cxx
View file @
dea46e8d
...
...
@@ -39,5 +39,5 @@ DatabaseGlobalInit(EventLoop &loop, DatabaseListener &listener,
return
nullptr
;
}
return
plugin
->
create
(
loop
,
listener
,
block
,
error
);
return
plugin
->
create
(
loop
,
listener
,
block
);
}
src/db/DatabasePlugin.hxx
View file @
dea46e8d
...
...
@@ -27,7 +27,6 @@
#define MPD_DATABASE_PLUGIN_HXX
struct
ConfigBlock
;
class
Error
;
class
EventLoop
;
class
DatabaseListener
;
class
Database
;
...
...
@@ -45,10 +44,11 @@ struct DatabasePlugin {
/**
* Allocates and configures a database.
*
* Throws #std::runtime_error on error.
*/
Database
*
(
*
create
)(
EventLoop
&
loop
,
DatabaseListener
&
listener
,
const
ConfigBlock
&
block
,
Error
&
error
);
const
ConfigBlock
&
block
);
constexpr
bool
RequireStorage
()
const
{
return
flags
&
FLAG_REQUIRE_STORAGE
;
...
...
src/db/plugins/ProxyDatabasePlugin.cxx
View file @
dea46e8d
...
...
@@ -82,9 +82,9 @@ public:
class
ProxyDatabase
final
:
public
Database
,
SocketMonitor
,
IdleMonitor
{
DatabaseListener
&
listener
;
std
::
string
host
;
unsigned
port
;
bool
keepalive
;
const
std
::
string
host
;
const
unsigned
port
;
const
bool
keepalive
;
struct
mpd_connection
*
connection
;
...
...
@@ -104,14 +104,11 @@ class ProxyDatabase final : public Database, SocketMonitor, IdleMonitor {
bool
is_idle
;
public
:
ProxyDatabase
(
EventLoop
&
_loop
,
DatabaseListener
&
_listener
)
:
Database
(
proxy_db_plugin
),
SocketMonitor
(
_loop
),
IdleMonitor
(
_loop
),
listener
(
_listener
)
{}
ProxyDatabase
(
EventLoop
&
_loop
,
DatabaseListener
&
_listener
,
const
ConfigBlock
&
block
);
static
Database
*
Create
(
EventLoop
&
loop
,
DatabaseListener
&
listener
,
const
ConfigBlock
&
block
,
Error
&
error
);
const
ConfigBlock
&
block
);
virtual
void
Open
()
override
;
virtual
void
Close
()
override
;
...
...
@@ -141,8 +138,6 @@ public:
}
private
:
bool
Configure
(
const
ConfigBlock
&
block
,
Error
&
error
);
void
Connect
();
void
CheckConnection
();
void
EnsureConnected
();
...
...
@@ -338,27 +333,22 @@ SendConstraints(mpd_connection *connection, const DatabaseSelection &selection)
return
true
;
}
Database
*
ProxyDatabase
::
Create
(
EventLoop
&
loop
,
DatabaseListener
&
listener
,
const
ConfigBlock
&
block
,
Error
&
error
)
ProxyDatabase
::
ProxyDatabase
(
EventLoop
&
_loop
,
DatabaseListener
&
_listener
,
const
ConfigBlock
&
block
)
:
Database
(
proxy_db_plugin
),
SocketMonitor
(
_loop
),
IdleMonitor
(
_loop
),
listener
(
_listener
),
host
(
block
.
GetBlockValue
(
"host"
,
""
)),
port
(
block
.
GetBlockValue
(
"port"
,
0u
)),
keepalive
(
block
.
GetBlockValue
(
"keepalive"
,
false
))
{
ProxyDatabase
*
db
=
new
ProxyDatabase
(
loop
,
listener
);
if
(
!
db
->
Configure
(
block
,
error
))
{
delete
db
;
db
=
nullptr
;
}
return
db
;
}
bool
ProxyDatabase
::
Configure
(
const
ConfigBlock
&
block
,
gcc_unused
Error
&
error
)
Database
*
ProxyDatabase
::
Create
(
EventLoop
&
loop
,
DatabaseListener
&
listener
,
const
ConfigBlock
&
block
)
{
host
=
block
.
GetBlockValue
(
"host"
,
""
);
port
=
block
.
GetBlockValue
(
"port"
,
0u
);
keepalive
=
block
.
GetBlockValue
(
"keepalive"
,
false
);
return
true
;
return
new
ProxyDatabase
(
loop
,
listener
,
block
);
}
void
...
...
@@ -395,6 +385,9 @@ ProxyDatabase::Connect()
#if LIBMPDCLIENT_CHECK_VERSION(2, 10, 0)
mpd_connection_set_keepalive
(
connection
,
keepalive
);
#else
// suppress -Wunused-private-field
(
void
)
keepalive
;
#endif
idle_received
=
unsigned
(
-
1
);
...
...
src/db/plugins/simple/SimpleDatabasePlugin.cxx
View file @
dea46e8d
...
...
@@ -84,7 +84,7 @@ inline SimpleDatabase::SimpleDatabase(AllocatedPath &&_path,
Database
*
SimpleDatabase
::
Create
(
gcc_unused
EventLoop
&
loop
,
gcc_unused
DatabaseListener
&
listener
,
const
ConfigBlock
&
block
,
Error
&
)
const
ConfigBlock
&
block
)
{
return
new
SimpleDatabase
(
block
);
}
...
...
src/db/plugins/simple/SimpleDatabasePlugin.hxx
View file @
dea46e8d
...
...
@@ -73,8 +73,7 @@ class SimpleDatabase : public Database {
public
:
static
Database
*
Create
(
EventLoop
&
loop
,
DatabaseListener
&
listener
,
const
ConfigBlock
&
block
,
Error
&
error
);
const
ConfigBlock
&
block
);
gcc_pure
Directory
&
GetRoot
()
{
...
...
src/db/plugins/upnp/UpnpDatabasePlugin.cxx
View file @
dea46e8d
...
...
@@ -77,8 +77,7 @@ public:
UpnpDatabase
()
:
Database
(
upnp_db_plugin
)
{}
static
Database
*
Create
(
EventLoop
&
loop
,
DatabaseListener
&
listener
,
const
ConfigBlock
&
block
,
Error
&
error
);
const
ConfigBlock
&
block
);
virtual
void
Open
()
override
;
virtual
void
Close
()
override
;
...
...
@@ -103,9 +102,6 @@ public:
return
0
;
}
protected
:
bool
Configure
(
const
ConfigBlock
&
block
,
Error
&
error
);
private
:
bool
VisitServer
(
const
ContentDirectoryService
&
server
,
const
std
::
list
<
std
::
string
>
&
vpath
,
...
...
@@ -150,21 +146,9 @@ private:
Database
*
UpnpDatabase
::
Create
(
gcc_unused
EventLoop
&
loop
,
gcc_unused
DatabaseListener
&
listener
,
const
ConfigBlock
&
block
,
Error
&
error
)
const
ConfigBlock
&
)
{
UpnpDatabase
*
db
=
new
UpnpDatabase
();
if
(
!
db
->
Configure
(
block
,
error
))
{
delete
db
;
return
nullptr
;
}
return
db
;
}
inline
bool
UpnpDatabase
::
Configure
(
const
ConfigBlock
&
,
Error
&
)
{
return
true
;
return
new
UpnpDatabase
();
}
void
...
...
test/DumpDatabase.cxx
View file @
dea46e8d
...
...
@@ -127,13 +127,7 @@ try {
if
(
path
!=
nullptr
)
block
.
AddBlockParam
(
"path"
,
path
->
value
.
c_str
(),
path
->
line
);
Database
*
db
=
plugin
->
create
(
event_loop
,
database_listener
,
block
,
error
);
if
(
db
==
nullptr
)
{
cerr
<<
error
.
GetMessage
()
<<
endl
;
return
EXIT_FAILURE
;
}
Database
*
db
=
plugin
->
create
(
event_loop
,
database_listener
,
block
);
AtScopeExit
(
db
)
{
delete
db
;
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment