202 lines
5.3 KiB
C++
202 lines
5.3 KiB
C++
//----------------------------------------------------------------------------
|
||
//
|
||
// Copyright (C) 2008 Intel Corporation
|
||
//
|
||
// File: EventManagerFlow.cpp
|
||
//
|
||
// Contents: Api code for Intel(R) Active Management Technology
|
||
// (Intel<65> 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<std::tr1::shared_ptr<AMT_PETFilterSetting>> 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<std::tr1::shared_ptr<AMT_PETFilterSetting> >::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 |