mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-07 02:35:33 +08:00
refs #246 refactored construction of the network context into a factory method
This commit is contained in:
27
src/blackcore/context_network.cpp
Normal file
27
src/blackcore/context_network.cpp
Normal file
@@ -0,0 +1,27 @@
|
||||
/* Copyright (C) 2013 VATSIM Community / contributors
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "context_network.h"
|
||||
#include "context_network_impl.h"
|
||||
#include "context_network_proxy.h"
|
||||
|
||||
namespace BlackCore
|
||||
{
|
||||
|
||||
IContextNetwork *IContextNetwork::create(CRuntime *parent, CRuntimeConfig::ContextMode mode, CDBusServer *server, QDBusConnection &conn)
|
||||
{
|
||||
switch (mode)
|
||||
{
|
||||
case CRuntimeConfig::Local:
|
||||
case CRuntimeConfig::LocalInDbusServer:
|
||||
return (new CContextNetwork(mode, parent))->registerWithDBus(server);
|
||||
case CRuntimeConfig::Remote:
|
||||
return new BlackCore::CContextNetworkProxy(BlackCore::CDBusServer::ServiceName, conn, mode, parent);
|
||||
default:
|
||||
return nullptr; // network not mandatory
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -46,6 +46,9 @@ namespace BlackCore
|
||||
//! \copydoc CContext::getPathAndContextId()
|
||||
virtual QString getPathAndContextId() const { return this->buildPathAndContextId(ObjectPath()); }
|
||||
|
||||
//! Factory method
|
||||
static IContextNetwork *create(CRuntime *parent, CRuntimeConfig::ContextMode mode, CDBusServer *server, QDBusConnection &conn);
|
||||
|
||||
//! Destructor
|
||||
virtual ~IContextNetwork() {}
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@ namespace BlackCore
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_CLASSINFO("D-Bus Interface", BLACKCORE_CONTEXTNETWORK_INTERFACENAME)
|
||||
friend class IContextNetwork;
|
||||
friend class CRuntime;
|
||||
|
||||
public:
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace BlackCore
|
||||
class CContextNetworkProxy : public IContextNetwork
|
||||
{
|
||||
Q_OBJECT
|
||||
friend class CRuntime;
|
||||
friend class IContextNetwork;
|
||||
|
||||
public:
|
||||
|
||||
|
||||
@@ -394,18 +394,7 @@ namespace BlackCore
|
||||
}
|
||||
times.insert("Audio", time.restart());
|
||||
|
||||
switch (config.getModeNetwork())
|
||||
{
|
||||
case CRuntimeConfig::Local:
|
||||
case CRuntimeConfig::LocalInDbusServer:
|
||||
this->m_contextNetwork = (new CContextNetwork(config.getModeNetwork(), this))->registerWithDBus(this->m_dbusServer);
|
||||
break;
|
||||
case CRuntimeConfig::Remote:
|
||||
this->m_contextNetwork = new BlackCore::CContextNetworkProxy(BlackCore::CDBusServer::ServiceName, this->m_dbusConnection, config.getModeNetwork(), this);
|
||||
break;
|
||||
default:
|
||||
break; // network not mandatory
|
||||
}
|
||||
this->m_contextNetwork = IContextNetwork::create(this, config.getModeNetwork(), this->m_dbusServer, this->m_dbusConnection);
|
||||
times.insert("Network", time.restart());
|
||||
|
||||
switch (config.getModeSimulator())
|
||||
|
||||
Reference in New Issue
Block a user