00001 #if   !defined(__ACCOUNTPROXY_HPP)
00002 #define __ACCOUNTPROXY_HPP
00003 
00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022    
00023 
00024 
00025 #if   !defined(__COMMON_HPP)
00026 #include <Common.hpp>
00027 #endif
00028 
00029 #if   !defined(__PROXY_HPP)
00030 #include <Proxy.hpp>
00031 #endif
00032 
00033 #if   !defined(__ABSTRACTBANKACCOUNT_HPP)
00034 #include <AbstractBankAccount.hpp>
00035 #endif
00036 
00037 DECLARE_CLASS( AccountProxy );
00038 
00050 
00051 class AccountProxy : public AbstractBankAccount, 
00052    public CORELINUX(Proxy)<AbstractBankAccount>
00053 {
00054 public:
00055 
00056    
00057    
00058    
00059    
00061       
00062                         AccountProxy( void );
00063       
00065       
00066                         AccountProxy( AbstractBankAccountPtr );
00067       
00069       
00070                         AccountProxy( AccountProxyCref );
00071       
00073    
00074    virtual              ~AccountProxy( void );
00075    
00076    
00077    
00078    
00079    
00085    
00086             AccountProxyRef   operator=( AccountProxyCref );
00087    
00094    
00095             bool  operator==( AccountProxyCref ) const;
00096    
00097    
00098    
00099    
00104    
00105    virtual  AmountCref getBalance(void) const;
00106    
00107    
00108    
00109    
00117    
00118    virtual  void withdrawFunds(Amount) 
00119                      throw(InsufficientFundsException);
00120    
00125    
00126    virtual  void depositFunds(Amount) 
00127                      throw(InsufficientFundsException);
00128       
00129 
00130 };
00131 
00132 #endif // if   !defined(__ACCOUNTPROXY_HPP)
00133 
00134 00135 00136 00137 00138 00139 00140 
00141 
00142