/* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ /* $Source: src/usr/diag/prdf/common/framework/resolution/iipResolutionList.h $ */ /* */ /* IBM CONFIDENTIAL */ /* */ /* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* 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 iipResolutionList_h #define iipResolutionList_h // Class Description ************************************************* // // Name: ResolutionList // Base class: Resolution // // Description: A Resolution whose Resolve function calls the Resolve // function on each Resolution in a List of Resolutions. // Usage: // // MruCallout calloutList[] = {PU0,PU1}; // FinalResolution r1(calloutList,2); // CaptureResolution r2(someScanCommRegister); // // ResolutionList rl(&r1,&r2); // up to 4 resolutions // // ResolutionMap rm(...); // see iipResolutionMap.h // rm.Add(BIT_LIST_STRING_01,&rl); // When bit 1 is on perform r1 and r2 // // End Class Description ********************************************* //-------------------------------------------------------------------- // Includes //-------------------------------------------------------------------- #if !defined(iipResolution_h) #include #endif #include namespace PRDF { //-------------------------------------------------------------------- // Forward References //-------------------------------------------------------------------- class ResolutionList : public Resolution { public: ResolutionList(Resolution * r1,Resolution * r2); ResolutionList(Resolution * r1,Resolution * r2,Resolution * r3); ResolutionList(Resolution * r1,Resolution * r2,Resolution * r3,Resolution * r4); ResolutionList(Resolution * r1,Resolution * r2,Resolution * r3, Resolution * r4,Resolution * r5); ResolutionList(Resolution * r1,Resolution * r2,Resolution * r3, Resolution * r4,Resolution * r5,Resolution * r6); // Function Specification ******************************************** // // Purpose: Constructor // Parameters: r1 - r4: 2-4 Resolutions to perform as one resolution // Returns: Nothing // Requirements: None // Promises: Object created // Exceptions: None // Concurrency: synchronous // Notes: // // End Function Specification **************************************** //~ResolutionList(); // Function Specification ******************************************** // // Purpose: Destruction // Parameters: None. // Returns: No value returned // Requirements: None. // Promises: None. // Exceptions: None. // Concurrency: Reentrant // Notes: Compiler default is ok // // End Function Specification **************************************** virtual int32_t Resolve(STEP_CODE_DATA_STRUCT & error); // Function Specification ******************************************** // // Purpose: Resolve service data for a specific error bit (Pure Virtual) // Parameters: Reference to the Step code data structure // Returns: return code // Requirements: None // Promises: if rc = SUCCESS then data filled with apropriate service data // Exceptions: None // Concurrency: synchronous // Notes: if rc != SUCCESS then state of service data is unpredictable // // End Function Specification **************************************** private: // functions ResolutionList(const ResolutionList &rl); // not allowed ResolutionList & operator=(const ResolutionList &rl); // not allowed private: // Data std::vector resolutionList; // use void * to reduce template code bloat }; inline ResolutionList::ResolutionList(Resolution * r1,Resolution * r2) { resolutionList.reserve(2); resolutionList.push_back(r1); resolutionList.push_back(r2); } inline ResolutionList::ResolutionList(Resolution * r1,Resolution * r2,Resolution * r3) { resolutionList.reserve(3); resolutionList.push_back(r1); resolutionList.push_back(r2); resolutionList.push_back(r3); } inline ResolutionList::ResolutionList(Resolution * r1,Resolution * r2, Resolution * r3,Resolution * r4) { resolutionList.reserve(4); resolutionList.push_back(r1); resolutionList.push_back(r2); resolutionList.push_back(r3); resolutionList.push_back(r4); } inline ResolutionList::ResolutionList(Resolution * r1,Resolution * r2, Resolution * r3,Resolution * r4, Resolution * r5) { resolutionList.reserve(5); resolutionList.push_back(r1); resolutionList.push_back(r2); resolutionList.push_back(r3); resolutionList.push_back(r4); resolutionList.push_back(r5); } inline ResolutionList::ResolutionList(Resolution * r1,Resolution * r2, Resolution * r3,Resolution * r4, Resolution * r5,Resolution * r6) { resolutionList.reserve(6); resolutionList.push_back(r1); resolutionList.push_back(r2); resolutionList.push_back(r3); resolutionList.push_back(r4); resolutionList.push_back(r5); resolutionList.push_back(r6); } } // end namespace PRDF #endif /* iipResolutionList_h */