瀏覽代碼

ENH: new class ctkDicomAbstractHost which provides basic host functionality

Marco Nolden 14 年之前
父節點
當前提交
30a9d518dc

+ 1 - 0
Plugins/org.commontk.dicom.wg23.host/CMakeLists.txt

@@ -6,6 +6,7 @@ SET(PLUGIN_SRCS
   ctkDicomHostServer.cpp
   ctkDicomHostServerPrivate.cpp
   ctkDicomWG23HostPlugin.cpp
+  ctkDicomAbstractHost.cpp
 )
 
 # Files which should be processed by Qts moc

+ 25 - 0
Plugins/org.commontk.dicom.wg23.host/ctkDicomAbstractHost.cpp

@@ -0,0 +1,25 @@
+#include "ctkDicomAbstractHost.h"
+#include "ctkDicomHostServer.h"
+
+class ctkDicomAbstractHostPrivate
+{
+  public:
+  ctkDicomAbstractHostPrivate(int port) : port(port)
+  {
+    // start server
+
+  }
+
+  int port;
+
+};
+
+ctkDicomAbstractHost::ctkDicomAbstractHost(int port) : d_ptr(new ctkDicomAbstractHostPrivate(port))
+{
+}
+
+int ctkDicomAbstractHost::getPort() const
+{
+  Q_D(const ctkDicomAbstractHost);
+  return d->port;
+}

+ 33 - 0
Plugins/org.commontk.dicom.wg23.host/ctkDicomAbstractHost.h

@@ -0,0 +1,33 @@
+#ifndef CTKDICOMABSTRACTHOST_H
+#define CTKDICOMABSTRACTHOST_H
+
+#include <ctkDicomHostInterface.h>
+#include <QScopedPointer>
+
+class ctkDicomAbstractHostPrivate;
+
+/**
+  * Provide a basic implementation for an application host.
+  *
+  * It starts a http server and serves one hosted application. Multiple instances
+  * can be used for hosting multiple applications.
+  *
+  * The methods of the ctkDicomHostInterface have to be implemented for the business logic,
+  *
+  */
+class ctkDicomAbstractHost : public ctkDicomHostInterface
+{
+public:
+    /**
+      * Start the soap sever on the specified port or choose port automatically.
+      */
+    ctkDicomAbstractHost(int port = 0);
+    int getPort() const;
+
+private:
+    Q_DECLARE_PRIVATE(ctkDicomAbstractHost)
+    const QScopedPointer<ctkDicomAbstractHostPrivate> d_ptr;
+
+};
+
+#endif // CTKDICOMABSTRACTHOST_H