diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2012-11-15 10:40:06 -0600 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2012-11-16 22:03:16 -0600 |
commit | d33218560b7b2bf2ebc4b5a33fed8aa77b8793e6 (patch) | |
tree | 7fff02186430b3d6c87b1238311e217b9cf6e37c /src/usr/diag/prdf/common/framework/resolution/iipCallResolutionTemplate.h | |
parent | 9342e9d7df794e5bcb352799a989d5a9f40e4ca0 (diff) | |
download | talos-hostboot-d33218560b7b2bf2ebc4b5a33fed8aa77b8793e6.tar.gz talos-hostboot-d33218560b7b2bf2ebc4b5a33fed8aa77b8793e6.zip |
Merged common FSP and HB PRD code to prdf/common/
Change-Id: Iac94c3690598b7263de230934b911bb4ced34557
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/2350
Tested-by: Jenkins Server
Reviewed-by: Bradley W. Bishop <bradleyb@us.ibm.com>
Reviewed-by: Zane Shelley <zshelle@us.ibm.com>
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/2368
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/common/framework/resolution/iipCallResolutionTemplate.h')
-rwxr-xr-x | src/usr/diag/prdf/common/framework/resolution/iipCallResolutionTemplate.h | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/src/usr/diag/prdf/common/framework/resolution/iipCallResolutionTemplate.h b/src/usr/diag/prdf/common/framework/resolution/iipCallResolutionTemplate.h new file mode 100755 index 000000000..ac25b5f11 --- /dev/null +++ b/src/usr/diag/prdf/common/framework/resolution/iipCallResolutionTemplate.h @@ -0,0 +1,115 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/usr/diag/prdf/common/framework/resolution/iipCallResolutionTemplate.h $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* */ +/* p1 */ +/* */ +/* Object Code Only (OCO) source materials */ +/* Licensed Internal Code Source Materials */ +/* IBM HostBoot Licensed Internal Code */ +/* */ +/* The source code for this program is not published or otherwise */ +/* divested of its trade secrets, irrespective of what has been */ +/* deposited with the U.S. Copyright Office. */ +/* */ +/* Origin: 30 */ +/* */ +/* IBM_PROLOG_END_TAG */ + +#ifndef iipCallResolutionTemplate_h +#define iipCallResolutionTemplate_h + +// Class Description ************************************************* +// +// Name: CallResolutionTemplate +// Base class: Resolution +// +// Description: Call a specified member function on object of type class T +// function signature: int32_t functname(STEP_CODE_DATA_STRUCT & error); +// Usage: +// +// CallResolutionTemplate<SixDamain> rd(&SixDomain,&SixDomain::Analyze); +// ResolutionMap rm(...); +// rm.Add(BIT_LIST_STRING_16,rd); +// +// Resolution &r = rm.LookUp(BIT_LIST_CLASS(BIT_LIST_STRING_16)); +// r->Resolve(error); // calls SixDomain::Analyze(error); +// +// End Class Description ********************************************* +//-------------------------------------------------------------------- +// Includes +//-------------------------------------------------------------------- +#ifndef iipResolution_h +#include <iipResolution.h> +#endif + +//-------------------------------------------------------------------- +// Forward References +//-------------------------------------------------------------------- + +template<class T> +class CallResolutionTemplate : public Resolution +{ +public: + typedef int32_t (T::*FUNCT) (STEP_CODE_DATA_STRUCT &); + + CallResolutionTemplate(T *obj, FUNCT pf) + : Resolution(),object(obj),pFunction(pf) {} + // Function Specification ******************************************** + // + // Purpose: Constructor + // Parameters: None + // Returns: Nothing + // Requirements: None + // Promises: Object created + // Exceptions: None + // Concurrency: synchronous + // Notes: + // + // End Function Specification **************************************** + + //~CallResolutionTemplate(); + // Function Specification ******************************************** + // + // Purpose: Destruction + // Parameters: None. + // Returns: No value returned + // Requirements: None. + // Promises: None. + // Exceptions: None. + // Concurrency: Reentrant + // Notes: Compiler default is sufficent + // + // End Function Specification **************************************** + + virtual int32_t Resolve(STEP_CODE_DATA_STRUCT & error) + { + return((object->*pFunction)(error)); + } + // See Resolution.h + +private: // functions + CallResolutionTemplate(const CallResolutionTemplate<T>&); // not allowed + CallResolutionTemplate<T>& operator=(const CallResolutionTemplate<T>&); +private: // Data + + T * object; + FUNCT pFunction; + +}; + + +#endif /* iipCallResolutionTemplate_h */ + +// Change Log ********************************************************* +// +// Flag Reason Vers Date Coder Description +// ---- -------- ---- -------- ----- ------------------------------- +// DRG Initial Creation +// +// End Change Log ***************************************************** |