Explorar o código

Provide a qDebug() streaming operator for ctkCmdLineModuleResult.

Sascha Zelzer %!s(int64=13) %!d(string=hai) anos
pai
achega
d580cf8e57

+ 1 - 1
Libs/CommandLineModules/Core/CMakeLists.txt

@@ -36,7 +36,7 @@ set(KIT_SRCS
   ctkCmdLineModuleParameterGroup_p.h
   ctkCmdLineModuleParameterParsers_p.h
   ctkCmdLineModulePathBuilder.cpp
-  ctkCmdLineModuleResult.h
+  ctkCmdLineModuleResult.cpp
   ctkCmdLineModuleXmlProgressWatcher.cpp
   ctkCmdLineModuleReference.cpp
   ctkCmdLineModuleRunException.cpp

+ 79 - 0
Libs/CommandLineModules/Core/ctkCmdLineModuleResult.cpp

@@ -0,0 +1,79 @@
+/*=============================================================================
+
+  Library: CTK
+
+  Copyright (c) German Cancer Research Center,
+    Division of Medical and Biological Informatics
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+=============================================================================*/
+
+#include "ctkCmdLineModuleResult.h"
+
+#include <QDebug>
+
+struct ctkCmdLineModuleResultPrivate : public QSharedData
+{
+  QString Parameter;
+  QVariant Value;
+};
+
+ctkCmdLineModuleResult::ctkCmdLineModuleResult()
+  : d(new ctkCmdLineModuleResultPrivate)
+{}
+
+ctkCmdLineModuleResult::~ctkCmdLineModuleResult()
+{
+}
+
+ctkCmdLineModuleResult::ctkCmdLineModuleResult(const ctkCmdLineModuleResult &other)
+  : d(other.d)
+{
+}
+
+ctkCmdLineModuleResult::ctkCmdLineModuleResult(const QString& parameter, const QVariant& value)
+  : d(new ctkCmdLineModuleResultPrivate)
+{
+  d->Parameter = parameter;
+  d->Value = value;
+}
+
+bool ctkCmdLineModuleResult::operator==(const ctkCmdLineModuleResult& other) const
+{
+  return d->Parameter == other.d->Parameter && d->Value == other.d->Value;
+}
+
+QString ctkCmdLineModuleResult::parameter() const
+{
+  return d->Parameter;
+}
+
+QVariant ctkCmdLineModuleResult::value() const
+{
+  return d->Value;
+}
+
+QDebug operator<<(QDebug debug, const ctkCmdLineModuleResult& result)
+{
+  debug.nospace() << result.parameter() << "=" << result.value();
+  return debug;
+}
+
+
+ctkCmdLineModuleResult &ctkCmdLineModuleResult::operator =(const ctkCmdLineModuleResult &other)
+{
+  d->Parameter = other.d->Parameter;
+  d->Value = other.d->Value;
+  return *this;
+}

+ 16 - 13
Libs/CommandLineModules/Core/ctkCmdLineModuleResult.h

@@ -22,8 +22,11 @@
 #ifndef CTKCMDLINEMODULERESULT_H
 #define CTKCMDLINEMODULERESULT_H
 
-#include <QString>
-#include <QVariant>
+#include "ctkCommandLineModulesCoreExport.h"
+
+#include <QSharedPointer>
+
+struct ctkCmdLineModuleResultPrivate;
 
 /**
  * @ingroup CommandLineModulesCore_API
@@ -36,20 +39,19 @@
  * @see ctkCmdLineModuleFuture
  * @see ctkCmdLineModuleFutureWatcher
  */
-class ctkCmdLineModuleResult
+class CTK_CMDLINEMODULECORE_EXPORT ctkCmdLineModuleResult
 {
 public:
 
-  ctkCmdLineModuleResult() {}
+  ctkCmdLineModuleResult();
+  ~ctkCmdLineModuleResult();
 
-  ctkCmdLineModuleResult(const QString& parameter, const QVariant& value)
-    : Parameter(parameter), Value(value)
-  {}
+  ctkCmdLineModuleResult(const ctkCmdLineModuleResult& other);
+  ctkCmdLineModuleResult& operator=(const ctkCmdLineModuleResult& other);
 
-  bool operator==(const ctkCmdLineModuleResult& other) const
-  {
-    return Parameter == other.Parameter && Value == other.Value;
-  }
+  ctkCmdLineModuleResult(const QString& parameter, const QVariant& value);
+
+  bool operator==(const ctkCmdLineModuleResult& other) const;
 
   /**
    * @brief Get the name of the output parameter for which this result was reported.
@@ -65,8 +67,9 @@ public:
 
 private:
 
-  QString Parameter;
-  QVariant Value;
+  QSharedPointer<ctkCmdLineModuleResultPrivate> d;
 };
 
+CTK_CMDLINEMODULECORE_EXPORT QDebug operator<<(QDebug debug, const ctkCmdLineModuleResult& result);
+
 #endif // CTKCMDLINEMODULERESULT_H