//---------------------------------------------------------------------------- // // Copyright (C) 2008 Intel Corporation // // File: EventManagerFlow.cpp // // Contents: Api code for Intel(R) Active Management Technology // (Intel� AMT) EventManager Sample. // // Notes: This file contains the EventManagerFlow methods implementation. // //---------------------------------------------------------------------------- #include "EventManagerFlow.h" #include "AMT_PETFilterSetting.h" #include "CmdLineArguments.h" #pragma region MEMBERS int index = 1; CmdLineArguments::Format format; #pragma endregion #pragma region METHODS #pragma region HELP_METHODS #pragma region PRINT_MESSAGE // Print success message void DisplaySuccess() { format.SetConsoleTextColor(HGREEN); cout << "Success" << endl; format.SetConsoleTextColor(LGRAY); } // Print fail message void PrintFail() { format.SetConsoleTextColor(HRED); cout << "Failed" << endl; format.SetConsoleTextColor(LGRAY); } #pragma endregion /* * Description: Print the filter data * Arguments: * operationOnFilter - The operation name * eventFilter - The AMT_PETFilterSetting to print */ void PrintFilter(const string operationOnFilter, AMT_PETFilterSetting & eventFilter) { if(operationOnFilter != "") cout << endl << endl << operationOnFilter << " " << eventFilter.ElementName() << " :" << endl; else cout << endl << endl << "Event filter #" << index++ << " :" << endl; cout << "\tInstance ID\t\t: " << eventFilter.InstanceID() << endl; cout << "\tDevice Address\t\t: " << (unsigned short)eventFilter.DeviceAddress() << endl; cout << "\tEvent Sensor Type\t: " << (unsigned short)eventFilter.EventSensorType() << endl; cout << "\tEvent Type\t\t: " << (unsigned short)eventFilter.EventType() << endl; cout << "\tEvent Source Type\t: " << (unsigned short)eventFilter.EventSourceType() << endl; cout << "\tSensor Number\t\t: " << (unsigned short)eventFilter.SensorNumber() << endl; cout << "\tEntity\t\t\t: " << (unsigned short)eventFilter.Entity() << endl; cout << "\tEntity Instance\t\t: " << (unsigned short)eventFilter.EntityInstance() << endl; } #pragma endregion #pragma region MAIN_METHODS /* * Description: Enumerate event filters. * Arguments: * wsmanClient - The client to connect * numOfFilters - The number of existing filters * verbose - Indicates whether to print extended details about the operation */ void EnumerateEventFilter(ICimWsmanClient *wsmanClient, int &numOfFilters, bool verbose) { cout << endl << "Enumerate AMT_PETFilterSetting... "; vector> petFilterVector; try { // Enumerate AMT_PETFilterSetting instances. AMT_PETFilterSetting petFilterSetting; petFilterVector = petFilterSetting.Enumerate(wsmanClient); } catch(WSManException e) { if (verbose) cout << endl << "Error: " << e.what() << endl; else PrintFail(); cout << "Error: Error in Enumerate method." << endl; return; } numOfFilters = petFilterVector.size(); if(verbose) { // Go over the array of the filters and print the data vector >::iterator itr; for(itr = petFilterVector.begin(); itr != petFilterVector.end(); itr++) { PrintFilter("", *(*itr).get()); } } else DisplaySuccess(); } /* * Description: Create new event filter * Arguments: * petFilterObj - The AMT_PETFilterSetting object to print * verbose - Indicate whether to print extended details about the operation */ void CreateEventFilter(AMT_PETFilterSetting & petFilterObj, bool verbose) { cout << endl << "Create AMT_PETFilterSetting... "; petFilterObj.EnableFilter(DEFAULT_ENABLE_FILTER); petFilterObj.OEMFilter(DEFAULT_OEM_FILTER); petFilterObj.LogOnEvent(DEFAULT_LOG_EVENT); petFilterObj.DeviceAddress(DEFAULT_DEVICE_ADDRESS); petFilterObj.EventSensorType(DEFAULT_EVENT_SENSOR_TYPE); petFilterObj.EventType(DEFAULT_EVENT_TYPE); petFilterObj.EventOffset(DEFAULT_EVENT_OFFSET); petFilterObj.EventSourceType(DEFAULT_EVENT_SOURCE_TYPE); petFilterObj.EventSeverity(DEFAULT_EVENT_SEVERITY); petFilterObj.SensorNumber(DEFAULT_SENSOR_NUMBER); petFilterObj.Entity(DEFAULT_ENTITY); petFilterObj.EntityInstance(DEFAULT_ENTITY_INSTANCE); petFilterObj.PolicyID(DEFAULT_POLICY_ID); petFilterObj.ElementName(DEFAULT_ELEMENT_NAME); petFilterObj.InstanceID(DEFAULT_INSTACE_ID); petFilterObj.SendAlert(DEFAULT_SEND_ALERT); CimReference petReference; try { petReference = petFilterObj.Create(); DisplaySuccess(); } catch(WSManException e) { if (verbose) cout << endl << "Error: " << e.what() << endl; else PrintFail(); cout << "Error: Error in Create method." << endl; return; } petFilterObj.Get(petReference); } /* * Description: Delete a specific event filter * Arguments: * petFilterObj - The AMT_PETFilterSetting object to delete * verbose - Indicate whether to print extended details about the operation */ void DeleteEventFilter(AMT_PETFilterSetting & petFilterObj, bool verbose) { cout << endl << "Delete AMT_PETFilterSetting... "; try { petFilterObj.Delete(); } catch(WSManException e) { if (verbose) cout << endl << "Error: " << e.what() << endl; else PrintFail(); cout << "Error: Error in Delete method." << endl; return; } if(verbose) { PrintFilter("Deleting Filter", petFilterObj); } DisplaySuccess(); } #pragma endregion #pragma endregion