PureMVC PureMVC

include/PureMVC/Interfaces/IFacade.hpp

Go to the documentation of this file.
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__ */