/*
**==============================================================================
**
** Open Management Infrastructure (OMI)
**
** Copyright (c) Microsoft Corporation
**
** Licensed under the Apache License, Version 2.0 (the "License"); you may not
** use this file except in compliance with the License. You may obtain a copy
** of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
** KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
** WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
** MERCHANTABLITY OR NON-INFRINGEMENT.
**
** See the Apache 2 License for the specific language governing permissions
** and limitations under the License.
**
**==============================================================================
*/
#include "propertyset.h"
MI_BEGIN_NAMESPACE
PropertySet::PropertySet(MI_PropertySet* propertySet) : _rep(propertySet)
{
}
MI_Uint32 PropertySet::GetSize() const
{
MI_Uint32 n;
if (MI_PropertySet_GetElementCount(_rep, &n) != MI_RESULT_OK)
return 0;
return n;
}
bool PropertySet::Contains(const String& name) const
{
MI_Boolean b;
if (MI_PropertySet_ContainsElement(_rep, name.Str(), &b) != MI_RESULT_OK)
return false;
return b ? true : false;
}
bool PropertySet::Add(const String& name)
{
if (MI_PropertySet_AddElement(_rep, name.Str()) != MI_RESULT_OK)
return false;
return true;
}
void PropertySet::Clear()
{
MI_PropertySet_Clear(_rep);
}
bool PropertySet::Get(MI_Uint32 index, String& name) const
{
const MI_Char* tmp;
if (MI_PropertySet_GetElement(_rep, index, &tmp) != MI_RESULT_OK)
return false;
name = tmp;
return true;
}
MI_END_NAMESPACE