From c8fa5fa308f6ad9be22612568ace703777fbb6d9 Mon Sep 17 00:00:00 2001 From: Ted Ross Date: Fri, 18 Sep 2009 20:15:15 +0000 Subject: Refactored the QMF engine to adhere to the following rules regarding the pimpl (Pointer to Implementation) pattern: 1) Impl classes have constructors matching the public constructors 2) Additional Impl constructors are accessed through a static factory function 3) All linkages to objects are to the public object 4) If a back-link (from Impl to public) is needed, the Impl class must be derived from boost::noncopyable 5) All public classes have non-default copy constructors that make a copy of the Impl class git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@816770 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/src/qmf/ConsoleEngine.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'qpid/cpp/src/qmf/ConsoleEngine.h') diff --git a/qpid/cpp/src/qmf/ConsoleEngine.h b/qpid/cpp/src/qmf/ConsoleEngine.h index f04bbcea47..a5aa990a76 100644 --- a/qpid/cpp/src/qmf/ConsoleEngine.h +++ b/qpid/cpp/src/qmf/ConsoleEngine.h @@ -45,7 +45,6 @@ namespace qmf { */ class MethodResponse { public: - MethodResponse(MethodResponseImpl* impl); MethodResponse(const MethodResponse& from); ~MethodResponse(); uint32_t getStatus() const; @@ -53,7 +52,9 @@ namespace qmf { const Value* getArgs() const; private: + friend class MethodResponseImpl; friend class ConsoleEngineImpl; + MethodResponse(MethodResponseImpl* impl); MethodResponseImpl* impl; }; @@ -62,7 +63,6 @@ namespace qmf { */ class QueryResponse { public: - QueryResponse(QueryResponseImpl* impl); ~QueryResponse(); uint32_t getStatus() const; const Value* getException() const; @@ -70,7 +70,9 @@ namespace qmf { const Object* getObject(uint32_t idx) const; private: + friend class QueryResponseImpl; friend class QueryContext; + QueryResponse(QueryResponseImpl* impl); QueryResponseImpl *impl; }; @@ -129,12 +131,13 @@ namespace qmf { */ class AgentProxy { public: - AgentProxy(AgentProxyImpl* impl); ~AgentProxy(); const char* getLabel() const; private: + friend class AgentProxyImpl; friend class BrokerProxyImpl; + AgentProxy(AgentProxyImpl* impl); AgentProxyImpl* impl; }; @@ -163,6 +166,7 @@ namespace qmf { private: friend class ConsoleEngineImpl; + friend class StaticContext; BrokerProxyImpl* impl; }; -- cgit v1.2.1