#include <Soprano/Server/ServerCore>
Public Member Functions | |
ServerCore (QObject *parent=0) | |
virtual | ~ServerCore () |
void | setBackend (const Backend *backend) |
const Backend * | backend () const |
void | setBackendSettings (const QList< BackendSetting > &settings) |
QList< BackendSetting > | backendSettings () const |
virtual Model * | model (const QString &name) |
virtual void | removeModel (const QString &name) |
virtual QStringList | allModels () const |
bool | start (const QString &socketPath=QString()) |
bool | listen (quint16 port=DEFAULT_PORT) |
quint16 | serverPort () const |
void | registerAsDBusObject (const QString &objectPath=QString()) |
Static Public Attributes | |
static const quint16 | DEFAULT_PORT |
Protected Member Functions | |
virtual Model * | createModel (const QList< BackendSetting > &settings) |
The ServerCore provides a Soprano server which maintains a set of named Model instances that can be accessed by clients over a tcp connection through Server::BackendPlugin.
Creating a server is very simple: Either derive from ServerCore or create an instance and then call start() to make the server listen for incoming connections.
Soprano::Server::ServerCore core; core.start();
Optionally ServerCore can be configured using normal BackendSetting settings through setBackendSettings().
Be aware the ServerCode supports multiple ways of communication. start() opens a TCP socket to accept new connections, registerAsDBusObject() registers a DBus interface on the DBus session bus. Both ways of communication can be used simultaneously.
ServerCore is designed for single-threaded usage. Thus, model() uses Util::AsyncModel to protect against deadlocks. This behaviour can of course be changed by reimplementing model().
Definition at line 70 of file servercore.h.
Soprano::Server::ServerCore::ServerCore | ( | QObject * | parent = 0 |
) |
virtual Soprano::Server::ServerCore::~ServerCore | ( | ) | [virtual] |
void Soprano::Server::ServerCore::setBackend | ( | const Backend * | backend | ) |
const Backend* Soprano::Server::ServerCore::backend | ( | ) | const |
void Soprano::Server::ServerCore::setBackendSettings | ( | const QList< BackendSetting > & | settings | ) |
Set the settings that are to be used by createModel() to create new Model instances. Be aware that Soprano::BackendOptionStorageDir will be changed to include a subdir which is the Model's name.
settings | The settings to use for new Models. |
QList<BackendSetting> Soprano::Server::ServerCore::backendSettings | ( | ) | const |
Retrieve the backend settings configured via setBackendSettings().
Get or create Model with the specific name. The default implementation will use createModel() to create a new Model if none with the specified name exists and protect it against deadlocks with a Util::AsyncModel.
name | The name of the requested Model. |
virtual void Soprano::Server::ServerCore::removeModel | ( | const QString & | name | ) | [virtual] |
Remove a model and delete all data in it. Use with care.
Be aware that the Model instance will also be deleted.
Should be reimplemented if model() is reimplemented.
name | The name of the requested Model. |
virtual QStringList Soprano::Server::ServerCore::allModels | ( | ) | const [virtual] |
Start the core on a local socket. On Windows this is a named pipe and on Unix this this is a local domain socket.
Use Client::LocalSocketClient to connect.
true
if the local socket could be successfully opened. false
on error. See ErrorCache::lastError() for details. bool Soprano::Server::ServerCore::listen | ( | quint16 | port = DEFAULT_PORT |
) |
Start the Server. Calling this method will make the Server listen on the specified port for incoming client connections.
port | The port to listen on for client connections. |
true
if the server was successfully started, false
otherwise. quint16 Soprano::Server::ServerCore::serverPort | ( | ) | const |
Register the ServerCore as a DBus object. The process needs to be registered as a DBus service before (QDBusConnection::registerService()).
objectPath | The DBus object path to register the server as. If empty the default path will be used (/org/soprano/Server). |
virtual Model* Soprano::Server::ServerCore::createModel | ( | const QList< BackendSetting > & | settings | ) | [protected, virtual] |
Create a new Model. The default implementation uses the configured Backend with the configured settings to create a new Model. This method can be reimplemented to create specialized Model, for example in combination with some FilterModel.
settings | The settings to use (a reimplementation may choose to ignore the settings.) |
const quint16 Soprano::Server::ServerCore::DEFAULT_PORT [static] |
The default Soprano server port: 5000
Definition at line 81 of file servercore.h.