//----------------------------------------------------------------------------
//
// Copyright (c) Intel Corporation, 2008 - 2009 All Rights Reserved.
//
// File: ICimData.cs
//
// Contents: ICimData is a part of the CimFramework project.
// It defines an interface for CIM data.
//
//----------------------------------------------------------------------------
namespace Intel.Manageability.Cim.Untyped
{
///
/// Interface that defines the CIM data methods.
///
public interface ICimData
{
///
/// Get/Set the CIM Field value
///
/// CIM Field name
/// The field's values
string[] this[string name]{get; set;}
///
/// Get the CIM Field value
///
/// CIM Field name
/// The field's values
string[] GetField(string name);
///
/// Copy CIM data
///
/// CIM data to be copied
void Copy(ICimData other);
///
/// Add a new CIM Field
///
/// Field Name
/// Field values
void AddField(string name, string[] values);
///
/// Set the values of a CIM Field
///
/// CIM Field name
/// Field values
void SetField(string name, string[] values);
///
/// Set or add a CIM Field
/// If the field does not exist, the function adds it, otherwise the function sets its value.
///
/// CIM Field name
/// Field values
void SetOrAddField(string name, string[] values);
///
/// Set or add a CIM Field
/// If the field does not exist, the function adds it, otherwise the function sets its value.
///
/// CIM Field name
/// Field value
void SetOrAddField(string name, string value);
///
/// Remove a Cim Field
///
/// CIM Field name
void RemoveField(string name);
///
/// Try to get a CIM Field
///
/// CIM Field name
/// Field values
/// True if the field exists, otherwise false
bool TryGetValue(string name, out string[] values);
///
/// Check if a given field exists in the current object
///
/// Field name
/// True if the given field exists in the current object
bool ContainsField(string name);
///
/// Serialize CIM object to XML
///
/// XML that represents the CIM object
string Serialize();
///
/// Deserialize CIM object from XML
///
/// XML that represents the CIM object
void Deserialize(string xml);
}
}