Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.1:Update
soprano-backend-sesame
2_7_BRANCH.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 2_7_BRANCH.diff of Package soprano-backend-sesame
diff --git a/CMakeLists.txt b/CMakeLists.txt index c3c440f..eb80bba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/mod ################## Soprano version ################################ set(CMAKE_SOPRANO_VERSION_MAJOR 2) set(CMAKE_SOPRANO_VERSION_MINOR 7) -set(CMAKE_SOPRANO_VERSION_RELEASE 1) +set(CMAKE_SOPRANO_VERSION_RELEASE 3) set(CMAKE_SOPRANO_VERSION_STRING "${CMAKE_SOPRANO_VERSION_MAJOR}.${CMAKE_SOPRANO_VERSION_MINOR}.${CMAKE_SOPRANO_VERSION_RELEASE}") diff --git a/ChangeLog b/ChangeLog index 383fbea..00eec79 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +2.7.3 + * Added new signal in the Virtuoso backend which signals when the server goes down. + 2.7.2 * Reverted a change which was introduced in 2.7.1 to use a separate QDBusConnection for the DBusExportModel. It made things worse. diff --git a/backends/virtuoso/Virtuoso.dox b/backends/virtuoso/Virtuoso.dox index c62d6f9..7bd0e73 100644 --- a/backends/virtuoso/Virtuoso.dox +++ b/backends/virtuoso/Virtuoso.dox @@ -60,6 +60,19 @@ * \li Soprano::BackendOptionPassword - Set the password to connect to the Virtuoso server. * * + * \section soprano_backend_vituoso_additions Additional Features + * + * Models created by the Virtuoso backend emit a non-standard signal which informs the client that the Virtuoso server went down. + * This signal is only emitted for Virtuoso instances that were started by the backend and has the following signature: + * + * \code + * void virtuosoStopped(bool normalExit); + * \endcode + * + * The parameter \p normalExit is \p true if the instance went down as scheduled (deletion of the model) and \p false if the + * Virtuoso instance crashed or was killed by a third party. Typically a client would connect to the signal to properly re-create the model. + * + * * \section soprano_backend_vituoso_specialities Virtuoso Specialities * * Since Virtuoso is an SQL server and, thus, does store all RDF data in SQL tables it diff --git a/backends/virtuoso/virtuosobackend.cpp b/backends/virtuoso/virtuosobackend.cpp index c83605d..aab1881 100644 --- a/backends/virtuoso/virtuosobackend.cpp +++ b/backends/virtuoso/virtuosobackend.cpp @@ -1,7 +1,7 @@ /* * This file is part of Soprano Project * - * Copyright (C) 2008-2010 Sebastian Trueg <trueg@kde.org> + * Copyright (C) 2008-2011 Sebastian Trueg <trueg@kde.org> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -115,8 +115,10 @@ Soprano::StorageModel* Soprano::Virtuoso::BackendPlugin::createModel( const Back VirtuosoModel* model = new VirtuosoModel( connectionPool, this ); // mem mangement the ugly way // FIXME: improve - if ( controller ) + if ( controller ) { controller->setParent( model ); + connect(controller, SIGNAL(stopped(Soprano::VirtuosoController::ExitStatus)), model, SLOT(slotVirtuosoStopped(Soprano::VirtuosoController::ExitStatus))); + } return model; } diff --git a/backends/virtuoso/virtuosocontroller.h b/backends/virtuoso/virtuosocontroller.h index 713d5cc..0f772d4 100644 --- a/backends/virtuoso/virtuosocontroller.h +++ b/backends/virtuoso/virtuosocontroller.h @@ -74,7 +74,7 @@ namespace Soprano { Q_SIGNALS: void started(); - void stopped( ExitStatus status ); + void stopped( Soprano::VirtuosoController::ExitStatus status ); private Q_SLOTS: void slotProcessFinished( int exitCode, QProcess::ExitStatus exitStatus ); diff --git a/backends/virtuoso/virtuosomodel.cpp b/backends/virtuoso/virtuosomodel.cpp index 9b9aa5d..5b04c4e 100644 --- a/backends/virtuoso/virtuosomodel.cpp +++ b/backends/virtuoso/virtuosomodel.cpp @@ -1,7 +1,7 @@ /* * This file is part of Soprano Project * - * Copyright (C) 2008-2010 Sebastian Trueg <trueg@kde.org> + * Copyright (C) 2008-2011 Sebastian Trueg <trueg@kde.org> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -449,4 +449,17 @@ Soprano::QueryResultIterator Soprano::VirtuosoModel::executeQuery( const QString return d->sparqlQuery( d->replaceFakeTypesInQuery( query ) ); } + +void Soprano::VirtuosoModel::slotVirtuosoStopped(VirtuosoController::ExitStatus status) +{ + // inform clients about a non-scheduled exit of the server so they can act accordingly + // typically this would mean to re-create the model from the backend + // We do this async in case clients react by directly deleting us + QMetaObject::invokeMethod(this, + "virtuosoStopped", + Qt::QueuedConnection, + Q_ARG(bool, (!(status == VirtuosoController::CrashExit || + status == VirtuosoController::ThirdPartyExit)))); +} + #include "virtuosomodel.moc" diff --git a/backends/virtuoso/virtuosomodel.h b/backends/virtuoso/virtuosomodel.h index ba1a344..7ad70a3 100644 --- a/backends/virtuoso/virtuosomodel.h +++ b/backends/virtuoso/virtuosomodel.h @@ -1,7 +1,7 @@ /* * This file is part of Soprano Project * - * Copyright (C) 2008-2010 Sebastian Trueg <trueg@kde.org> + * Copyright (C) 2008-2011 Sebastian Trueg <trueg@kde.org> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -19,10 +19,11 @@ * Boston, MA 02110-1301, USA. */ -#ifndef _SOPRANO_IODBC_MODEL_H_ -#define _SOPRANO_IODBC_MODEL_H_ +#ifndef _SOPRANO_VIRTUOSO_MODEL_H_ +#define _SOPRANO_VIRTUOSO_MODEL_H_ #include "storagemodel.h" +#include "virtuosocontroller.h" namespace Soprano { namespace ODBC { @@ -55,6 +56,14 @@ namespace Soprano { Query::QueryLanguage language = Query::QueryLanguageSparql, const QString& userQueryLanguage = QString() ) const; + public Q_SLOTS: + /// a public slot since it is connected from the backend on creation time + void slotVirtuosoStopped(Soprano::VirtuosoController::ExitStatus status); + + Q_SIGNALS: + /// \param normalExit \p true if the shutdown of Virtuoso was initialized by deleting the model + void virtuosoStopped(bool normalExit); + private: VirtuosoModelPrivate* const d;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor