⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 associationclient.cpp

📁 Pegasus is an open-source implementationof the DMTF CIM and WBEM standards. It is designed to be por
💻 CPP
📖 第 1 页 / 共 2 页
字号:
                                    assocClass,                                    resultClass,                                     invalidRole,                                     resultRole);        }        catch(CIMException& e)        {            if (e.getCode() == CIM_ERR_INVALID_PARAMETER)            {                gotException = true;                if (verbose)                {                    cout << "Test role parameter syntax: " << e.getMessage() << endl;                }            }            else            {                throw;            }        }        PEGASUS_TEST_ASSERT(gotException);        // invalid resultRole parameter syntax        gotException = false;        try        {            resultObjectPaths = client.associatorNames(                                    NAMESPACE,                                     instancePath,                                     assocClass,                                    resultClass,                                     role,                                     invalidResultRole);        }        catch(CIMException& e)        {            if (e.getCode() == CIM_ERR_INVALID_PARAMETER)            {                gotException = true;                if (verbose)                {                    cout << "Test resultRole parameter syntax: " << e.getMessage() << endl;                }            }            else            {                throw;            }        }        PEGASUS_TEST_ASSERT(gotException);        // ===================================================================        // references        //        // Get the association instances (Sample_TeacherStudent instances) that        // refer to the specified target CIM instance (Sample_Teacher.Name =        // "Teacher1").        // ===================================================================        resultObjects = client.references(                                NAMESPACE,                                 instancePath,                                 resultClass,                                role);         // verify result        numObjects = resultObjects.size();        if (_verifyResult(numObjects, 5) != 0)            return -1;             // display result        // cout << "Number of reference objects = " << numObjects << endl;        _displayResult(resultObjects, verbose);        // ===================================================================        // references        //        // Validate role parameter syntax.        // ===================================================================        // invalid role parameter syntax        gotException = false;        try        {            resultObjects = client.references(                                    NAMESPACE,                                     instancePath,                                     resultClass,                                    invalidRole);         }        catch(CIMException& e)        {            if (e.getCode() == CIM_ERR_INVALID_PARAMETER)            {                gotException = true;                if (verbose)                {                    cout << "Test role parameter syntax: " << e.getMessage() << endl;                }            }            else            {                throw;            }        }        PEGASUS_TEST_ASSERT(gotException);        // ===================================================================        // referenceNames        //        // Get the names of the association instances (Sample_TeacherStudent         // instances) that refer to the specified target CIM instance         // (Sample_Teacher.Name = "Teacher1").        // ===================================================================        resultObjectPaths = client.referenceNames(                                NAMESPACE,                                 instancePath,                                 resultClass,                                role);         // verify result        numObjects = resultObjectPaths.size();        if (_verifyResult(numObjects, 5) != 0)            return -1;             // display result        // cout << "Number of reference name objects = " << numObjects << endl;        _displayResult(resultObjectPaths, verbose);        // ===================================================================        // referenceNames        //        // Validate role parameter syntax.        // ===================================================================        // invalid role parameter syntax        gotException = false;        try        {            resultObjectPaths = client.referenceNames(                                        NAMESPACE,                                         instancePath,                                         resultClass,                                        invalidRole);         }        catch(CIMException& e)        {            if (e.getCode() == CIM_ERR_INVALID_PARAMETER)            {                gotException = true;                if (verbose)                {                    cout << "Test role parameter syntax: " << e.getMessage() << endl;                }            }            else            {                throw;            }        }        PEGASUS_TEST_ASSERT(gotException);        // ===================================================================        // Call the association methods with different filters specified.        // Filters used are: role, resultClass, resultRole, assocClass.        // ===================================================================        //         // get all the students who are taught by 'Teacher1'         //        role = "Teaches";        resultRole = "TaughtBy";        resultClass = CIMName("Sample_Student");        assocClass = SAMPLE_TEACHERSTUDENT;        resultObjects = client.associators(                                NAMESPACE,                                 instancePath,                                 assocClass,                                resultClass,                                 role,                                 resultRole);        // verify result        numObjects = resultObjects.size();        if (_verifyResult(numObjects, 3) != 0)            return -1;        // display result        // cout << "Number of associator objects = " << numObjects << endl;        _displayResult(resultObjects, verbose);        //        // get all the students who have 'Teacher1' as an advisor        //        role = "Advises";        resultRole = "AdvisedBy";        resultClass = CIMName("Sample_Student");        assocClass = SAMPLE_ADVISORSTUDENT;        resultObjectPaths = client.associatorNames(                                NAMESPACE,                                 instancePath,                                 assocClass,                                resultClass,                                 role,                                 resultRole);        // verify result        numObjects = resultObjectPaths.size();        if (_verifyResult(numObjects, 2) != 0)            return -1;        // display result        // cout << "Number of associator name objects = " << numObjects << endl;        _displayResult(resultObjectPaths, verbose);        //        // get all the TeacherStudent association instances in which 'Teacher1'        // plays the role of a teacher.        //        role = "Teaches";        resultClass = CIMName("Sample_TeacherStudent");        resultObjects = client.references(                                NAMESPACE,                                 instancePath,                                 resultClass,                                role);         // verify result        numObjects = resultObjects.size();        if (_verifyResult(numObjects, 3) != 0)            return -1;             // display result        // cout << "Number of reference objects = " << numObjects << endl;        _displayResult(resultObjects, verbose);        //        // get all the AdvisorStudent association instances in which 'Teacher1'        // plays the role of an advisor.        //        role = "Advises";        resultClass = CIMName("Sample_AdvisorStudent");        resultObjectPaths = client.referenceNames(                                NAMESPACE,                                 instancePath,                                 resultClass,                                role);         // verify result        numObjects = resultObjectPaths.size();        if (_verifyResult(numObjects, 2) != 0)            return -1;             // display result        // cout << "Number of reference objects = " << numObjects << endl;        _displayResult(resultObjectPaths, verbose);        // ===================================================================        // Pass Class object to the Association Methods        // ===================================================================        //        // get the CIM classes that are associated with the Sample_Teacher class        //        CIMObjectPath classPath("Sample_Teacher");        assocClass = CIMName();        resultClass = CIMName();        role = String::EMPTY;        resultRole = String::EMPTY;        resultObjects = client.associators(                                NAMESPACE,                                 classPath,                                 assocClass,                                resultClass,                                 role,                                 resultRole);        // verify result        numObjects  = resultObjects.size();        if (_verifyResult(numObjects, 1) != 0)            return -1;        // display result        // cout << "Number of associated class objects = " << numObjects << endl;        _displayResult(resultObjects, verbose);        //        // get the association classes that refer to the Sample_Teacher class        //        resultObjects = client.references(                                NAMESPACE,                                 classPath,                                 resultClass,                                role);         // verify result        numObjects  = resultObjects.size();        if (_verifyResult(numObjects, 2) != 0)            return -1;        // display result        // cout << "Number of association class objects = " << numObjects << endl;        _displayResult(resultObjects, verbose);    }    catch(Exception& e)    {        cerr << "Error: " << e.getMessage() << endl;        return -1;    }    cout << "AssociationClient +++++ passed all tests" << endl;    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -