PureMVC PureMVC
|
00001 // IFacade.hpp 00002 // PureMVC_C++ 00003 // 00004 // PureMVC Port to C++ by Tang Khai Phuong <phuong.tang@puremvc.org> 00005 // PureMVC - Copyright(c) 2006-2011 Futurescale, Inc., Some rights reserved. 00006 // Your reuse is governed by the Creative Commons Attribution 3.0 License 00007 // 00008 00009 #if !defined(__PUREMVC_INTERFACES_IFACADE_HPP__) 00010 #define __PUREMVC_INTERFACES_IFACADE_HPP__ 00011 00012 // STL include 00013 #include <string> 00014 // PureMVC include 00015 #if !defined(__PUREMVC_HPP__) 00016 #define __PUREMVC_INCLUDE__ 00017 #include "../PureMVC.hpp" 00018 #endif /* __PUREMVC_HPP__ */ 00019 00020 #include "INotifier.hpp" 00021 #include "ICommand.hpp" 00022 #include "IMediator.hpp" 00023 00024 namespace PureMVC 00025 { 00026 namespace Interfaces 00027 { 00047 struct PUREMVC_API IFacade : public virtual INotifier 00048 { 00054 virtual void registerProxy(IProxy* proxy) = 0; 00055 00062 virtual IProxy const& retrieveProxy(std::string const& proxy_name) const = 0; 00063 00070 virtual IProxy& retrieveProxy(std::string const& proxy_name) = 0; 00071 00078 virtual IProxy* removeProxy(std::string const& proxy_name) = 0; 00079 00086 virtual bool hasProxy(std::string const& proxy_name) const = 0; 00087 00094 virtual void registerCommand(std::string const& notification_name, ICommand* command) = 0; 00095 00102 virtual ICommand const& retrieveCommand(std::string const& notification_name) const = 0; 00103 00110 virtual ICommand& retrieveCommand(std::string const& notification_name) = 0; 00111 00118 virtual ICommand* removeCommand(std::string const& notification_name) = 0; 00119 00126 virtual bool hasCommand(std::string const& notification_name) const = 0; 00127 00133 virtual void registerMediator(IMediator* mediator) = 0; 00134 00141 virtual IMediator const& retrieveMediator(std::string const& mediator_name) const = 0; 00142 00149 virtual IMediator& retrieveMediator(std::string const& mediator_name) = 0; 00150 00157 virtual IMediator* removeMediator(std::string const& mediator_name) = 0; 00158 00165 virtual bool hasMediator(std::string const& mediator_name) const = 0; 00166 00180 virtual void notifyObservers(INotification const& notification) = 0; 00181 00185 virtual ~IFacade(void); 00186 }; 00187 } 00188 } 00189 00190 #endif /* __PUREMVC_INTERFACES_IFACADE_HPP__ */