Hello community, here is the log from the commit of package soprano for openSUSE:Factory checked in at 2013-05-03 07:40:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/soprano (Old) and /work/SRC/openSUSE:Factory/.soprano.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "soprano" Changes: -------- --- /work/SRC/openSUSE:Factory/soprano/soprano-backend-sesame.changes 2013-01-04 11:38:46.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.soprano.new/soprano-backend-sesame.changes 2013-05-03 07:40:47.000000000 +0200 @@ -1,0 +2,8 @@ +Thu May 2 10:57:17 UTC 2013 - [email protected] + +- Update to 2.9.1 + * Faster streaming for datetime literals + * Add a stop method in the LocalServer + * Fixed bugs in LocalSocket and AsyncQuery + +------------------------------------------------------------------- soprano-backend-virtuoso.changes: same change soprano.changes: same change Old: ---- soprano-2.9.0.tar.bz2 New: ---- soprano-2.9.1.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ soprano-backend-sesame.spec ++++++ --- /var/tmp/diff_new_pack.jryzmZ/_old 2013-05-03 07:40:49.000000000 +0200 +++ /var/tmp/diff_new_pack.jryzmZ/_new 2013-05-03 07:40:49.000000000 +0200 @@ -22,7 +22,7 @@ Group: System/Libraries # COMMON1-BEGIN # COMMON1-BEGIN -Version: 2.9.0 +Version: 2.9.1 Release: 0 Url: http://soprano.sourceforge.net/ Source0: http://downloads.sourceforge.net/soprano/soprano-%{version}.tar.bz2 soprano-backend-virtuoso.spec: same change ++++++ soprano.spec ++++++ --- /var/tmp/diff_new_pack.jryzmZ/_old 2013-05-03 07:40:49.000000000 +0200 +++ /var/tmp/diff_new_pack.jryzmZ/_new 2013-05-03 07:40:49.000000000 +0200 @@ -21,7 +21,7 @@ License: LGPL-2.1+ and GPL-2.0+ Group: System/Libraries # COMMON1-BEGIN -Version: 2.9.0 +Version: 2.9.1 Release: 0 Url: http://soprano.sourceforge.net/ Source0: http://downloads.sourceforge.net/soprano/soprano-%{version}.tar.bz2 ++++++ soprano-2.9.0.tar.bz2 -> soprano-2.9.1.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.9.0/CMakeLists.txt new/soprano-2.9.1/CMakeLists.txt --- old/soprano-2.9.0/CMakeLists.txt 2013-01-02 13:35:41.000000000 +0100 +++ new/soprano-2.9.1/CMakeLists.txt 2013-05-02 11:32:15.000000000 +0200 @@ -14,7 +14,7 @@ ################## Soprano version ################################ set(CMAKE_SOPRANO_VERSION_MAJOR 2) set(CMAKE_SOPRANO_VERSION_MINOR 9) -set(CMAKE_SOPRANO_VERSION_RELEASE 0) +set(CMAKE_SOPRANO_VERSION_RELEASE 1) set(CMAKE_SOPRANO_VERSION_STRING "${CMAKE_SOPRANO_VERSION_MAJOR}.${CMAKE_SOPRANO_VERSION_MINOR}.${CMAKE_SOPRANO_VERSION_RELEASE}") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.9.0/ChangeLog new/soprano-2.9.1/ChangeLog --- old/soprano-2.9.0/ChangeLog 2013-01-02 13:35:41.000000000 +0100 +++ new/soprano-2.9.1/ChangeLog 2013-05-02 11:32:15.000000000 +0200 @@ -1,3 +1,8 @@ +2.9.1 + * Faster streaming for datetime literals + * Add a stop method in the LocalServer + * Fix bugs in LocalSocket and AsyncQuery + 2.9.0 * Better error handling on the Client::LocalSocketClient * New DataStream class which shares code between the server and client diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.9.0/client/socket.cpp new/soprano-2.9.1/client/socket.cpp --- old/soprano-2.9.0/client/socket.cpp 2013-01-02 13:35:41.000000000 +0100 +++ new/soprano-2.9.1/client/socket.cpp 2013-05-02 11:32:15.000000000 +0200 @@ -196,6 +196,8 @@ bool Soprano::LocalSocket::open() { + clearError(); + // create a socket m_handle = ::socket( AF_UNIX, SOCK_STREAM, 0 ); if ( m_handle < 0 ) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.9.0/server/commands.h new/soprano-2.9.1/server/commands.h --- old/soprano-2.9.0/server/commands.h 2013-01-02 13:35:41.000000000 +0100 +++ new/soprano-2.9.1/server/commands.h 2013-05-02 11:32:15.000000000 +0200 @@ -32,7 +32,10 @@ // Protocol version 4: // Soprano 2.3 // literal language is now stored in LiteralValue -#define PROTOCOL_VERSION 4 +// Protocol version 5: +// Soprano 2.9 +// Literal values are now sent in their native types +#define PROTOCOL_VERSION 5 namespace Soprano { namespace Server { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.9.0/server/serverconnection.cpp new/soprano-2.9.1/server/serverconnection.cpp --- old/soprano-2.9.0/server/serverconnection.cpp 2013-01-02 13:35:41.000000000 +0100 +++ new/soprano-2.9.1/server/serverconnection.cpp 2013-05-02 11:32:15.000000000 +0200 @@ -146,6 +146,8 @@ // quit() emits the signal finished() when the thread is finished connect( d->socket, SIGNAL( disconnected() ), this, SLOT( quit() ) ); + connect( this, SIGNAL(finished()), + this, SLOT(deleteLater()) ); // start the event loop exec(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.9.0/server/servercore.cpp new/soprano-2.9.1/server/servercore.cpp --- old/soprano-2.9.0/server/servercore.cpp 2013-01-02 13:35:41.000000000 +0100 +++ new/soprano-2.9.1/server/servercore.cpp 2013-05-02 11:32:15.000000000 +0200 @@ -50,7 +50,7 @@ void Soprano::Server::ServerCorePrivate::addConnection( ServerConnection* conn ) { connections.append( conn ); - QObject::connect( conn, SIGNAL(finished()), q, SLOT(serverConnectionFinished())); + QObject::connect( conn, SIGNAL(destroyed(QObject*)), q, SLOT(serverConnectionFinished(QObject*)) ); conn->start(); qDebug() << Q_FUNC_INFO << "New connection. New count:" << connections.count(); } @@ -179,6 +179,24 @@ } } +void Soprano::Server::ServerCore::stop() +{ + qDeleteAll( d->connections ); + qDeleteAll( d->models ); + + delete d->tcpServer; + d->tcpServer = 0; + + delete d->socketServer; + d->socketServer = 0; + +#ifdef BUILD_DBUS_SUPPORT + delete d->dbusController; + d->dbusController = 0; +#endif +} + + quint16 Soprano::Server::ServerCore::serverPort() const { @@ -229,12 +247,12 @@ } -void Soprano::Server::ServerCore::serverConnectionFinished() +void Soprano::Server::ServerCore::serverConnectionFinished(QObject* obj) { - qDebug() << Q_FUNC_INFO; - ServerConnection* conn = qobject_cast<ServerConnection*>( sender() ); + qDebug() << Q_FUNC_INFO << d->connections.count(); + // We use static_cast cause qobject_case will fail since the object has been destroyed + ServerConnection* conn = static_cast<ServerConnection*>( obj ); d->connections.removeAll( conn ); - delete conn; qDebug() << Q_FUNC_INFO << "Connection removed. Current count:" << d->connections.count(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.9.0/server/servercore.h new/soprano-2.9.1/server/servercore.h --- old/soprano-2.9.0/server/servercore.h 2013-01-02 13:35:41.000000000 +0100 +++ new/soprano-2.9.1/server/servercore.h 2013-05-02 11:32:15.000000000 +0200 @@ -201,6 +201,14 @@ bool listen( quint16 port = DEFAULT_PORT ); /** + * Stops listening on all connections. This includes the local socket + * connection, the tcp connection and dbus, depending on which all are listening. + * + * This does not destroy the internal model + */ + void stop(); + + /** * \return The port this server is listening on or 0 if listen has not * been called successfully. * @@ -224,7 +232,7 @@ void registerAsDBusObject( const QString& objectPath = QString() ); private Q_SLOTS: - void serverConnectionFinished(); + void serverConnectionFinished(QObject* obj); protected: /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.9.0/soprano/datastream.cpp new/soprano-2.9.1/soprano/datastream.cpp --- old/soprano-2.9.0/soprano/datastream.cpp 2013-01-02 13:35:41.000000000 +0100 +++ new/soprano-2.9.1/soprano/datastream.cpp 2013-05-02 11:32:15.000000000 +0200 @@ -30,6 +30,7 @@ #include "languagetag.h" #include <QtCore/QIODevice> +#include <QtCore/QDateTime> Soprano::DataStream::DataStream() @@ -187,6 +188,9 @@ case QVariant::ByteArray: status &= writeByteArray( var.toByteArray() ); break; + case QVariant::DateTime : + status &= writeUnsignedInt32( var.toDateTime().toTime_t() ); + break; default: status &= writeString( value.toString() ); status &= writeUrl( value.dataTypeUri() ); @@ -486,6 +490,12 @@ val = LiteralValue( array ); break; } + case QVariant::DateTime : { + quint32 timet; + status &= readUnsignedInt32( timet ); + val = LiteralValue( QDateTime::fromTime_t(timet) ); + break; + } default: { QString str; QUrl dt; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.9.0/soprano/util/asyncquery.cpp new/soprano-2.9.1/soprano/util/asyncquery.cpp --- old/soprano-2.9.0/soprano/util/asyncquery.cpp 2013-01-02 13:35:41.000000000 +0100 +++ new/soprano-2.9.1/soprano/util/asyncquery.cpp 2013-05-02 11:32:15.000000000 +0200 @@ -89,7 +89,6 @@ m_type = GraphResult; else if( it.isBinding() ) { m_type = BindingResult; - m_bindingNames = it.bindingNames(); } else { m_type = BooleanResult; @@ -106,8 +105,11 @@ // cache the next result if( m_type == GraphResult ) m_currentStatement = it.currentStatement(); - else + else { m_currentBindings = it.currentBindings(); + if( m_bindingNames.isEmpty() ) + m_bindingNames = it.bindingNames(); + } // inform the client QMetaObject::invokeMethod( q, "_s_emitNextReady", Qt::QueuedConnection ); -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
