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