00001 00006 #ifndef _FunctionDecorator_h 00007 #define _FunctionDecorator_h 00008 00009 00010 // SYSTEM INCLUDES 00011 // 00012 00013 // PROJECT INCLUDES 00014 // 00015 00016 // LOCAL INCLUDES 00017 // 00018 #include "CountedPtr.h" 00019 #include "FunctionBase.h" 00020 00021 // FORWARD REFERENCES 00022 // 00023 00024 class FunctionDecorator 00025 { 00026 public: 00027 // LIFECYCLE 00028 00031 FunctionDecorator(void); 00032 00037 FunctionDecorator(CountedPtr<const FunctionBase> cpFunction); 00038 00043 FunctionDecorator(const FunctionDecorator& from); 00044 00047 ~FunctionDecorator(void); 00048 00049 00050 // OPERATORS 00051 // OPERATIONS 00052 00055 void SetInnerFunction(CountedPtr<const FunctionBase> cpFunction); 00056 00059 const FunctionBase& InnerFunction() const; 00060 00061 // ACCESS 00062 // INQUIRY 00063 00064 protected: 00065 private: 00066 CountedPtr<const FunctionBase> mcpFunction; 00067 }; 00068 00069 // INLINE METHODS 00070 // 00071 00072 // EXTERNAL REFERENCES 00073 // 00074 00075 #endif // _FunctionDecorator_h