summaryrefslogtreecommitdiffstats
path: root/src/libs/kdtools/kdupdaterupdateoperationfactory.cpp
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@nokia.com>2012-03-15 14:53:47 +0100
committerKarsten Heimrich <karsten.heimrich@nokia.com>2012-03-19 16:14:04 +0100
commitbe3b47d0d504a3409ce66bd77bb8c0acff87c4f5 (patch)
tree09dfb02d484a4f395991972b828da71400fb761a /src/libs/kdtools/kdupdaterupdateoperationfactory.cpp
parent9fd62353cf7f973d78cd2093328ac15b5c4980b6 (diff)
Reorganize the tree, have better ifw.pri. Shadow build support.
Change-Id: I01fb12537f863ed0744979973c7e4153889cc5cb Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com>
Diffstat (limited to 'src/libs/kdtools/kdupdaterupdateoperationfactory.cpp')
-rw-r--r--src/libs/kdtools/kdupdaterupdateoperationfactory.cpp74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/libs/kdtools/kdupdaterupdateoperationfactory.cpp b/src/libs/kdtools/kdupdaterupdateoperationfactory.cpp
new file mode 100644
index 000000000..aab8f6c2d
--- /dev/null
+++ b/src/libs/kdtools/kdupdaterupdateoperationfactory.cpp
@@ -0,0 +1,74 @@
+/****************************************************************************
+** Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. All rights reserved.
+**
+** This file is part of the KD Tools library.
+**
+** Licensees holding valid commercial KD Tools licenses may use this file in
+** accordance with the KD Tools Commercial License Agreement provided with
+** the Software.
+**
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU Lesser General Public License version 2 and version 3 as published by the
+** Free Software Foundation and appearing in the file LICENSE.LGPL included.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+** Contact info@kdab.com if any conditions of this licensing are not
+** clear to you.
+**
+**********************************************************************/
+
+#include "kdupdaterupdateoperationfactory.h"
+#include "kdupdaterupdateoperations.h"
+
+#include <QHash>
+
+/*!
+ \ingroup kdupdater
+ \class KDUpdater::UpdateOperationFactory kdupdaterupdateoperationfactory.h KDUpdaterUpdateOperationFactory
+ \brief Factory for \ref KDUpdater::UpdateOperation
+
+ This class acts as a factory for \ref KDUpdater::UpdateOperation. You can register
+ one or more update operations with this factory and query operations based on their name.
+
+ This class follows the singleton design pattern. Only one instance of this class can
+ be created and its reference can be fetched from the \ref instance() method.
+*/
+
+/*!
+ \fn KDUpdater::UpdateOperationFactory::registerUpdateOperation( const QString& name )
+
+ Registers T as new UpdateOperation with \a name. When create() is called with that \a name,
+ T is constructed using its default constructor.
+*/
+
+using namespace KDUpdater;
+
+/*!
+ Returns the UpdateOperationFactory instance. The instance is created if needed.
+*/
+UpdateOperationFactory &UpdateOperationFactory::instance()
+{
+ static UpdateOperationFactory theFactory;
+ return theFactory;
+}
+
+/*!
+ Constructor
+*/
+UpdateOperationFactory::UpdateOperationFactory()
+{
+ // Register the default update operation set
+ registerUpdateOperation<CopyOperation>(QLatin1String("Copy"));
+ registerUpdateOperation<MoveOperation>(QLatin1String("Move"));
+ registerUpdateOperation<DeleteOperation>(QLatin1String("Delete"));
+ registerUpdateOperation<MkdirOperation>(QLatin1String("Mkdir"));
+ registerUpdateOperation<RmdirOperation>(QLatin1String("Rmdir"));
+ registerUpdateOperation<AppendFileOperation>(QLatin1String("AppendFile"));
+ registerUpdateOperation<PrependFileOperation>(QLatin1String("PrependFile"));
+ registerUpdateOperation<ExecuteOperation>(QLatin1String("Execute"));
+ registerUpdateOperation<UpdatePackageOperation>(QLatin1String("UpdatePackage"));
+ registerUpdateOperation<UpdateCompatOperation>(QLatin1String("UpdateCompat"));
+}