CMPI 2.1.0 API
|
Function table of CMPIInstanceMI object. More...
#include <cmpift.h>
Data Fields | |
CMPIVersion | ftVersion |
CMPI version supported by the MI for this function table. More... | |
int | miVersion |
Informal MI-specific version number for this MI. | |
const char * | miName |
Informal MI-specific name for this MI. | |
CMPIStatus(* | cleanup )(CMPIInstanceMI *mi, const CMPIContext *ctx, CMPIBoolean terminating) |
Perform cleanup for an Instance MI. More... | |
CMPIStatus(* | enumerateInstanceNames )(CMPIInstanceMI *mi, const CMPIContext *ctx, const CMPIResult *rslt, const CMPIObjectPath *classPath) |
Enumerate instance paths of instances of a given class serviced by this MI. More... | |
CMPIStatus(* | enumerateInstances )(CMPIInstanceMI *mi, const CMPIContext *ctx, const CMPIResult *rslt, const CMPIObjectPath *classPath, const char **properties) |
Enumerate the instances of a given class that are serviced by this MI. More... | |
CMPIStatus(* | getInstance )(CMPIInstanceMI *mi, const CMPIContext *ctx, const CMPIResult *rslt, const CMPIObjectPath *instPath, const char **properties) |
Get an existing instance. More... | |
CMPIStatus(* | createInstance )(CMPIInstanceMI *mi, const CMPIContext *ctx, const CMPIResult *rslt, const CMPIObjectPath *classPath, const CMPIInstance *inst) |
Create an instance of a given class. More... | |
CMPIStatus(* | modifyInstance )(CMPIInstanceMI *mi, const CMPIContext *ctx, const CMPIResult *rslt, const CMPIObjectPath *instPath, const CMPIInstance *modInst, const char **properties) |
Modify property values of an existing instance. More... | |
CMPIStatus(* | deleteInstance )(CMPIInstanceMI *mi, const CMPIContext *ctx, const CMPIResult *rslt, const CMPIObjectPath *op) |
Delete an existing instance. More... | |
CMPIStatus(* | execQuery )(CMPIInstanceMI *mi, const CMPIContext *ctx, const CMPIResult *rslt, const CMPIObjectPath *classPath, const char *query, const char *lang) |
Execute a query on a given class and return the query result. More... | |
CMPIStatus(* | enumerateInstancesFiltered )(CMPIInstanceMI *mi, const CMPIContext *ctx, const CMPIResult *rslt, const CMPIObjectPath *classPath, const char **properties, const char *filterQuerylanguage, const char *filterQuery, CMPIStatus *rc) |
Enumerate the instances of a given class that are serviced by this MI, returning only those that match a given query filter. More... | |
Function table of CMPIInstanceMI object.
CMPIVersion CMPIInstanceMIFT::ftVersion |
CMPI version supported by the MI for this function table.
Any later CMPI versions are implicitly also supported.
See CMPIVersion<NNN> for valid CMPI version numbers.
CMPIStatus(* CMPIInstanceMIFT::cleanup)(CMPIInstanceMI *mi, const CMPIContext *ctx, CMPIBoolean terminating) |
Perform cleanup for an Instance MI.
CMPIInstanceMIFT.cleanup() shall perform any necessary cleanup for the Instance MI identified by mi
, unless the MI postpones the cleanup.
While this function executes, the MB will not call any other MI functions for this MI. This function will be called once for a specific MI (unless the MI postpones the cleanup), even if that MI services more than one namespace. After this function returns, the MB may unload the load library this MI is part of, unless the MI postpones the cleanup.
mi | Points to a CMPIInstanceMI structure. |
ctx | Points to a CMPIContext object containing the context data for the invocation. The context data entries are MB implementation-specific. |
terminating | Indicates whether the MB is in the process of shutting down and thus cannot tolerate postponing of the cleanup, as follows: When True, the MB is in the process of shutting down. The MI shall perform any necessary cleanup and shall not postpone the cleanup. After this function returns (successful or in error), the MB will consider this MI to be uninitialized and will not call further MI functions for this MI. When False, the MI can choose to perform or postpone the cleanup, by performing one of these actions:
|
CMPI_RC_OK
- Function successful. CMPI_RC_DO_NOT_UNLOAD
- Function successful, do not unload now; the MB may retry an unload later. CMPI_RC_NEVER_UNLOAD
- Function successful, never unload; the MB will not retry an unload later unless it shuts down. CMPI_RC_ERR_FAILED
- Other error occurred.CMPIStatus(* CMPIInstanceMIFT::enumerateInstanceNames)(CMPIInstanceMI *mi, const CMPIContext *ctx, const CMPIResult *rslt, const CMPIObjectPath *classPath) |
Enumerate instance paths of instances of a given class serviced by this MI.
CMPIInstanceMIFT.enumerateInstanceNames() shall enumerate the instance paths of instances of a given class that are serviced by this MI, by accessing the underlying managed elements.
This function is provided by the MI in context of a particular MI name. The class of classPath
for which this function will be called by the MB depends on the specifics of how the MB relates classes and MI names, which is out of scope for this standard. As a result, the MB may call this function for classes for which the MI is not responsible. In order for an MI to be portable across MB implementations with different approaches to relate MI names and classes, the MI must check whether it services the class specified in classPath
.
mi | Points to a CMPIInstanceMI structure. |
ctx | Points to a CMPIContext object containing the context data for the invocation. |
rslt | Points to a CMPIResult object that is the result data container. Upon successful return, the MI shall have put all instance paths representing the result set into this container. |
classPath | Points to a CMPIObjectPath object that references the given class and that contains the namespace and class name components. The hostname and key components, if present, have no meaning and should be ignored. |
CMPIRCCode | CMPIErrorMsg | Description |
---|---|---|
CMPI_RC_OK | N/A | Function Successful. |
CMPI_RC_ERR_NOT_SUPPORTED | WIPG0228 | Function is not supported by the MB. |
CMPI_RC_ERR_ACCESS_DENIED | WIPG0201 | Not authorized. |
CMPI_RC_ERR_NOT_FOUND | N/A | No instances found. (Deprecated) |
CMPI_RC_ERR_SERVER_LIMITS_EXCEEDED | WIPG0240 | Limits exceeded. |
CMPI_RC_ERR_FAILED | WIPG0243 | Timeout occurred. |
CMPI_RC_ERR_FAILED | WIPG0227 + implementation-specific message | Other error occurred. |
CMPI_RC_ERR_SERVER_LIMITS_EXCEEDED
. CMPI_RC_ERR_NOT_FOUND
of this function is deprecated since CMPI 2.1. Instead of using this return code if no instances are found, the MI should return success with an empty result data container. The MB shall treat this return code as a successful return of an empty result set. CMPIStatus(* CMPIInstanceMIFT::enumerateInstances)(CMPIInstanceMI *mi, const CMPIContext *ctx, const CMPIResult *rslt, const CMPIObjectPath *classPath, const char **properties) |
Enumerate the instances of a given class that are serviced by this MI.
CMPIInstanceMIFT.enumerateInstances() shall enumerate the instances of a given class that are serviced by this MI, by accessing the underlying managed elements.
This function is provided by the MI in context of a particular MI name. The class of classPath
for which this function will be called by the MB depends on the specifics of how the MB relates classes and MI names, which is out of scope for this standard. As a result, the MB may call this function for classes for which the MI is not responsible. In order for an MI to be portable across MB implementations with different approaches to relate MI names and classes, the MI must check whether it services the class specified in classPath
.
mi | Points to a CMPIInstanceMI structure. |
ctx | Points to a CMPIContext object containing the context data for the invocation. |
rslt | Points to a CMPIResult object that is the result data container. Upon successful return, the MI shall have put all instances representing the result set into this container. |
classPath | Points to a CMPIObjectPath object that references the given class and that contains the namespace and class name components. The hostname and key components, if present, have no meaning and should be ignored. |
properties | If not NULL, is an array of zero or more pointers to strings, each specifying a property name. This set of property names will reflect the effects of any invocation flags specified in the CMPIInvocationFlags entry of ctx . The end of the array is identified by a NULL pointer. Each returned object shall not include elements for any properties missing from this list. If the properties argument is NULL, this indicates that all properties shall be included in each returned object. |
CMPIRCCode | CMPIErrorMsg | Description |
---|---|---|
CMPI_RC_OK | N/A | Function Successful. |
CMPI_RC_ERR_NOT_SUPPORTED | WIPG0228 | Function is not supported by the MB. |
CMPI_RC_ERR_ACCESS_DENIED | WIPG0201 | Not authorized. |
CMPI_RC_ERR_NOT_FOUND | N/A | No instances found. (Deprecated) |
CMPI_RC_ERR_SERVER_LIMITS_EXCEEDED | WIPG0240 | Limits exceeded. |
CMPI_RC_ERR_FAILED | WIPG0243 | Timeout occurred. |
CMPI_RC_ERR_FAILED | WIPG0227 + implementation-specific message | Other error occurred. |
CMPI_RC_ERR_SERVER_LIMITS_EXCEEDED
. CMPI_RC_ERR_NOT_FOUND
of this function is deprecated since CMPI 2.1. Instead of using this return code if no instances are found, the MI should return success with an empty result data container. The MB shall treat this return code as a successful return of an empty result set. CMPIStatus(* CMPIInstanceMIFT::getInstance)(CMPIInstanceMI *mi, const CMPIContext *ctx, const CMPIResult *rslt, const CMPIObjectPath *instPath, const char **properties) |
Get an existing instance.
CMPIInstanceMIFT.getInstance() shall get an existing instance, by accessing the underlying managed elements.
This function is provided by the MI in context of a particular MI name. The class of the instPath
argument for which this function will be called by the MB depends on the specifics of how the MB relates classes and MI names, which is out of scope for this standard. As a result, the MB may call this function for classes for which the MI is not responsible. In order for an MI to be portable across MB implementations with different approaches to relate MI names and classes, the MI must check whether it services the class specified in the instPath
argument.
mi | Points to a CMPIInstanceMI structure. |
ctx | Points to a CMPIContext object containing the context data for the invocation. |
rslt | Points to a CMPIResult object that is the result data container. Upon successful return, the MI shall have put the retrieved instance into this container. |
instPath | Points to a CMPIObjectPath object that references the instance to be retrieved and that contains the namespace, class name, and key components. The hostname component, if present, has no meaning and should be ignored. |
properties | If not NULL, is an array of zero or more pointers to strings, each specifying a property name. The end of the array is identified by a NULL pointer. This set of property names will reflect the effects of any invocation flags specified in the CMPIInvocationFlags entry of ctx . The returned instance shall not include elements for any properties missing from this list. If properties is NULL, this indicates that all properties shall be included in the returned instance. |
CMPIRCCode | CMPIErrorMsg | Description |
---|---|---|
CMPI_RC_OK | N/A | Function Successful. |
CMPI_RC_ERR_NOT_SUPPORTED | WIPG0228 | Function is not supported by this MI |
CMPI_RC_ERR_ACCESS_DENIED | WIPG0201 | Not authorized. |
CMPI_RC_ERR_NOT_FOUND | WIPG0213 | Instance not found. |
CMPI_RC_ERR_SERVER_LIMITS_EXCEEDED | WIPG0240 | Limits exceeded. |
CMPI_RC_ERR_FAILED | WIPG0243 | Timeout occurred. |
CMPI_RC_ERR_FAILED | WIPG0227 + implementation-specific message | Other error occurred. |
CMPIStatus(* CMPIInstanceMIFT::createInstance)(CMPIInstanceMI *mi, const CMPIContext *ctx, const CMPIResult *rslt, const CMPIObjectPath *classPath, const CMPIInstance *inst) |
Create an instance of a given class.
CMPIInstanceMIFT.createInstance() shall create an instance of a given class in the namespace of that class, by creating the underlying managed elements.
This function is provided by the MI in context of a particular MI name. The class of classPath
for which this function will be called by the MB depends on the specifics of how the MB relates classes and MI names, which is out of scope for this standard. As a result, the MB may call this function for classes for which the MI is not responsible. In order for an MI to be portable across MB implementations with different approaches to relate MI names and classes, the MI must check whether it services the class specified in classPath
.
mi | Points to a CMPIInstanceMI structure. |
ctx | Points to a CMPIContext object containing the context data for the invocation. |
rslt | Points to a CMPIResult object that is the result data container. Upon successful return, the MI shall have put the instance path of the created instance into this container. |
classPath | Points to a CMPIObjectPath object that references the given class. The hostname and key components, if present, have no meaning and should be ignored. |
inst | Points to a CMPIInstance object specifying property values for the new instance. The object path component within this CMPIInstance object has no meaning; it should not be provided by MBs and should not be used by MIs. |
CMPIRCCode | CMPIErrorMsg | Description |
---|---|---|
CMPI_RC_OK | N/A | Function Successful. |
CMPI_RC_ERR_NOT_SUPPORTED | WIPG0228 | Function is not supported by the MB. |
CMPI_RC_ERR_ACCESS_DENIED | WIPG0228 | Not authorized. |
CMPI_RC_ERR_INVALID_PARAMETER | WIPG0249 | Invalid filter parameters. |
CMPI_RC_ERR_ALREADY_EXISTS | WIPG0213 | Instance already exists. |
CMPI_RC_ERR_SERVER_LIMITS_EXCEEDED | WIPG0240 | Limits exceeded. |
CMPI_RC_ERR_FAILED | WIPG0243 | Timeout occurred. |
CMPI_RC_ERR_FAILED | WIPG0227 + implementation-specific message | Other error occurred. |
CMPI_RC_ERR_ACCESS_DENIED
. classPath
is deprecated since CMPI 2.1; the key component should not be provided by MBs and should not be used by MIs. CMPIStatus(* CMPIInstanceMIFT::modifyInstance)(CMPIInstanceMI *mi, const CMPIContext *ctx, const CMPIResult *rslt, const CMPIObjectPath *instPath, const CMPIInstance *modInst, const char **properties) |
Modify property values of an existing instance.
CMPIInstanceMIFT.modifyInstance() shall modify property values of an existing instance, by accessing the underlying managed elements.
This function is provided by the MI in context of a particular MI name. The class in instPath
for which this function will be called by the MB depends on the specifics of how the MB relates classes and MI names, which is out of scope for this standard. As a result, the MB may call this function for classes for which the MI is not responsible. In order for an MI to be portable across MB implementations with different approaches to relate MI names and classes, the MI must check whether it services the class specified in instPath
.
mi | Points to a CMPIInstanceMI structure. |
ctx | Points to a CMPIContext object containing the context data for the invocation. |
rslt | Points to a CMPIResult object that is the result data container. Upon successful return, the MI shall have left this container empty. |
instPath | Points to a CMPIObjectPath object that references the instance to be modified and that contains the namespace, class name, and key components. The hostname component, if present, has no meaning and should be ignored. |
modInst | Points to a CMIPInstance object specifying new values for the properties to be modified. The object path component within this CMPIInstance object has no meaning; it should not be provided by MBs and should not be used by MIs. |
properties | If not NULL, is an array of zero or more pointers to strings, each specifying a property name. The end of the array is identified by a NULL pointer. The invocation flags specified in the CMPIInvocationFlags entry of ctx have no meaning for this function. The function shall not modify elements for any properties missing from this list. If properties is NULL, this indicates that all properties specified in modInst are modified. |
CMPIRCCode | CMPIErrorMsg | Description |
---|---|---|
CMPI_RC_OK | N/A | Function Successful. |
CMPI_RC_ERR_NOT_SUPPORTED | WIPG0228 | Function is not supported by the MB. |
CMPI_RC_ERR_ACCESS_DENIED | WIPG0228 | Not authorized. |
CMPI_RC_ERR_INVALID_PARAMETER | WIPG0249 | Invalid filter parameters. |
CMPI_RC_ERR_NOT_FOUND | WIPG0213 | Instance not found. |
CMPI_RC_ERR_NO_SUCH_PROPERTY | WIPG0220 | No such property. |
CMPI_RC_ERR_FAILED | WIPG0243 | Timeout occurred. |
CMPI_RC_ERR_FAILED | WIPG0227 + implementation-specific message | Other error occurred. |
CMPI_RC_ERR_NO_SUCH_PROPERTY
. CMPIStatus(* CMPIInstanceMIFT::deleteInstance)(CMPIInstanceMI *mi, const CMPIContext *ctx, const CMPIResult *rslt, const CMPIObjectPath *op) |
Delete an existing instance.
CMPIInstanceMIFT.deleteInstance() shall delete an existing instance, by deleting the underlying managed elements.
This function is provided by the MI in context of a particular MI name. The class in instPath
for which this function will be called by the MB depends on the specifics of how the MB relates classes and MI names, which is out of scope for this standard. As a result, the MB may call this function for classes for which the MI is not responsible. In order for an MI to be portable across MB implementations with different approaches to relate MI names and classes, the MI must check whether it services the class specified in instPath
.
mi | Points to a CMPIInstanceMI structure. |
ctx | Points to a CMPIContext object containing the context data for the invocation. |
rslt | Points to a CMPIResult object that is the result data container. Upon successful return, the MI shall have left this container empty. |
instPath | Points to a CMPIObjectPath object that references the instance to be deleted and that contains the namespace, class name, and key components. The hostname component, if present, has no meaning and should be ignored. |
CMPIRCCode | CMPIErrorMsg | Description |
---|---|---|
CMPI_RC_OK | N/A | Function Successful. |
CMPI_RC_ERR_NOT_SUPPORTED | WIPG0228 | Function is not supported by the MB. |
CMPI_RC_ERR_ACCESS_DENIED | WIPG0228 | Not authorized. |
CMPI_RC_ERR_NOT_FOUND | WIPG0213 | Instance not found. |
CMPI_RC_ERR_FAILED | WIPG0243 | Timeout occurred. |
CMPI_RC_ERR_FAILED | WIPG0227 + implementation-specific message | Other error occurred. |
CMPIStatus(* CMPIInstanceMIFT::execQuery)(CMPIInstanceMI *mi, const CMPIContext *ctx, const CMPIResult *rslt, const CMPIObjectPath *classPath, const char *query, const char *lang) |
Execute a query on a given class and return the query result.
CMPIInstanceMIFT.execQuery() shall execute a query on a given class and return the query result, by accessing the underlying managed elements.
This function is provided by the MI in context of a particular MI name. The class in classPath
for which this function will be called by the MB depends on the specifics of how the MB relates classes and MI names, which is out of scope for this standard. As a result, the MB may call this function for classes for which the MI is not responsible. In order for an MI to be portable across MB implementations with different approaches to relate MI names and classes, the MI must check whether it services the class specified in classPath
.
mi | Points to a CMPIInstanceMI structure. |
ctx | Points to a CMPIContext object containing the context data for the invocation. |
rslt | Points to a CMPIResult object that is the result data container. Upon successful return, the MI shall have left this container empty. |
classPath | Points to a CMPIObjectPath object that references the given class and that contains the namespace and class name components. The hostname and key components, if present, have no meaning and should be ignored. |
query | Select expression. |
lang | Query language (case-sensitive). |
CMPIRCCode | CMPIErrorMsg | Description |
---|---|---|
CMPI_RC_OK | N/A | Function Successful. |
CMPI_RC_ERR_NOT_SUPPORTED | WIPG0228 | Function is not supported by the MB. |
CMPI_RC_ERR_ACCESS_DENIED | WIPG0201 | Not authorized. |
CMPI_RC_ERR_QUERY_LANGUAGE_NOT_SUPPORTED | WIPG0221 | Query language not supported. |
CMPI_RC_ERR_QUERY_FEATURE_NOT_SUPPORTED | WIPG0222 | A feature of the query language is not supported. |
CMPI_RC_ERR_INVALID_QUERY | WIPG02223 | Invalid Query. |
CMPI_RC_ERR_NOT_FOUND | WIPG0213 | Instance not found. (Deprecated) |
CMPI_RC_ERR_SERVER_LIMITS_EXCEEDED | WIPG0240 | Limits exceeded. |
CMPI_RC_ERR_FAILED | WIPG0243 | Timeout occurred. |
CMPI_RC_ERR_FAILED | WIPG0227 + implementation-specific message | Other error occurred. |
CMPI_RC_ERR_QUERY_FEATURE_NOT_SUPPORTED
and CMPI_RC_ERR_SERVER_LIMITS_EXCEEDED
. CMPI_RC_ERR_NOT_FOUND
of this function is deprecated since CMPI 2.1. Instead of using this return code if no instances are found, the MI should return success with an empty result data container. The MB shall treat this return code as a successful return of an empty result set. CMPIStatus(* CMPIInstanceMIFT::enumerateInstancesFiltered)(CMPIInstanceMI *mi, const CMPIContext *ctx, const CMPIResult *rslt, const CMPIObjectPath *classPath, const char **properties, const char *filterQuerylanguage, const char *filterQuery, CMPIStatus *rc) |
Enumerate the instances of a given class that are serviced by this MI, returning only those that match a given query filter.
CMPIInstanceMIFT.enumerateInstancesFiltered() shall enumerate the instances of a given class that are serviced by this MI, returning only those instances that match a given query filter, by enumerating the underlying managed elements. The returned instances shall have their instance paths set. If no such instances are found, the function shall return success with an empty result data container.
mi | Points to a CMPIInstanceMI structure. |
ctx | Points to a CMPIContext object containing the context data for the invocation. |
rslt | Points to a CMPIResult object that is the result data container. Upon successful return the MI shall have put all instances representing the result set into this container. |
classPath | Points to a CMPIObjectPath object that references the given class and that contains namespace and class name components. The hostname and key components, if present, have no meaning and should be ignored. |
properties | If not NULL, is an array of zero or more pointers to strings, each specifying a property name. The end of the array is identified by a NULL pointer. This set of property names will reflect the effects of any invocation flags specified in the CMPIInvocationFlags entry of ctx . Each returned instance shall not include elements for any properties missing from this list. If properties is NULL, this indicates that all properties shall be included in each returned instance. |
filterQueryLanguage | Query language used by filterQuery . If NULL, no filtering is performed. Note that FQL (see DSP0212) is required to be supported by MIs as a query language; see Subclause 4.5 in the CMPI Standard. |
filterQuery | Query in the query language defined by filterQueryLanguage . If NULL, no filtering is performed. A request that specifies a filter through valid and non-NULL filterQueryLanguage and filterQuery arguments shall return only instances that match that filter as defined in the filter specification. |
continueOnError | Defines whether this operation may continue to return objects after it returns an error. If false, the MI shall terminate after returning an error to the result data container. If true, the MI may continue to return data (objects and subsequent errors) to the result data container after returning an error. An MI that cannot continue after returning an error shall ignore the value of continueOnError and shall behave as if it was specified as false. |
CMPIRCCode | CMPIErrorMsg | Description |
---|---|---|
CMPI_RC_OK | N/A | Function Successful. |
CMPI_RC_ERR_NOT_SUPPORTED | WIPG0228 | Function is not supported by the MB. |
CMPI_RC_ERR_ACCESS_DENIED | WIPG0201 | Not authorized. |
CMPI_RC_ERR_SERVER_LIMITS_EXCEEDED | WIPG0240 | Limits exceeded. |
CMPI_RC_ERR_QUERY_LANGUAGE_NOT_SUPPORTED | WIPG0221 | Query language not supported. |
CMPI_RC_ERR_QUERY_FEATURE_NOT_SUPPORTED | WIPG0222 | A feature of the query language is not supported. |
CMPI_RC_ERR_INVALID_QUERY | WIPG0223 | Invalid query. |
CMPI_RC_ERR_FAILED | WIPG0243 | Timeout occurred. |
CMPI_RC_ERR_FAILED | WIPG0227 + implementation-specific message | Other error occurred. |