WidgetProvider.c

00001 #include <konkret/konkret.h>
00002 #include "Widget.h"
00003 
00004 static const CMPIBroker* _broker = NULL;
00005 
00006 void WidgetInitialize()
00007 {
00008 }
00009 
00010 CMPIStatus WidgetCleanup(
00011     CMPIInstanceMI* mi,
00012     const CMPIContext* context,
00013     CMPIBoolean term)
00014 {
00015     CMReturn(CMPI_RC_OK);
00016 }
00017 
00018 CMPIStatus WidgetEnumInstanceNames(
00019     CMPIInstanceMI* mi,
00020     const CMPIContext* context,
00021     const CMPIResult* result,
00022     const CMPIObjectPath* cop)
00023 {
00024     return KDefaultEnumerateInstanceNames(_broker, mi, context, result, cop);
00025 }
00026 
00027 CMPIStatus WidgetEnumInstances(
00028     CMPIInstanceMI* mi,
00029     const CMPIContext* context,
00030     const CMPIResult* result,
00031     const CMPIObjectPath* cop,
00032     const char** properties)
00033 {
00034     Widget w;
00035 
00036     /* Widget.Id="1001" */
00037     Widget_Init(&w, _broker, KNameSpace(cop));
00038     Widget_Set_Id(&w, "1001");
00039     Widget_Set_Color(&w, "Red");
00040     Widget_Set_Size(&w, 1);
00041     KReturnInstance(result, w);
00042 
00043     /* Widget.Id="1002" */
00044     Widget_Init(&w, _broker, KNameSpace(cop));
00045     Widget_Set_Id(&w, "1002");
00046     Widget_Set_Color(&w, "Green");
00047     Widget_Set_Size(&w, 2);
00048     KReturnInstance(result, w);
00049 
00050     /* Widget.Id=1003 */
00051     Widget_Init(&w, _broker, KNameSpace(cop));
00052     Widget_Set_Id(&w, "1003");
00053     Widget_Set_Color(&w, "Blue");
00054     Widget_Set_Size(&w, 3);
00055     KReturnInstance(result, w);
00056 
00057     CMReturn(CMPI_RC_OK);
00058 }
00059 
00060 CMPIStatus WidgetGetInstance(
00061     CMPIInstanceMI* mi,
00062     const CMPIContext* cc,
00063     const CMPIResult* result,
00064     const CMPIObjectPath* cop,
00065     const char** properties)
00066 {
00067     return KDefaultGetInstance(_broker, mi, cc, result, cop, properties);
00068 }
00069 
00070 CMPIStatus WidgetCreateInstance(
00071     CMPIInstanceMI* mi,
00072     const CMPIContext* context,
00073     const CMPIResult* result,
00074     const CMPIObjectPath* cop,
00075     const CMPIInstance* ci)
00076 {
00077     CMReturn(CMPI_RC_ERR_NOT_SUPPORTED);
00078 }
00079 
00080 CMPIStatus WidgetModifyInstance(
00081     CMPIInstanceMI* mi,
00082     const CMPIContext* context,
00083     const CMPIResult* result,
00084     const CMPIObjectPath* cop,
00085     const CMPIInstance* ci,
00086     const char** properties)
00087 {
00088     CMReturn(CMPI_RC_ERR_NOT_SUPPORTED);
00089 }
00090 
00091 CMPIStatus WidgetDeleteInstance(
00092     CMPIInstanceMI* mi,
00093     const CMPIContext* context,
00094     const CMPIResult* result,
00095     const CMPIObjectPath* cop)
00096 {
00097     CMReturn(CMPI_RC_ERR_NOT_SUPPORTED);
00098 }
00099 
00100 CMPIStatus WidgetExecQuery(
00101     CMPIInstanceMI* mi,
00102     const CMPIContext* context,
00103     const CMPIResult* result,
00104     const CMPIObjectPath* cop,
00105     const char* lang,
00106     const char* query)
00107 {
00108     CMReturn(CMPI_RC_ERR_NOT_SUPPORTED);
00109 }
00110 
00111 CMInstanceMIStub(Widget, Widget, _broker, WidgetInitialize())
00112 
00113 CMPIStatus WidgetMethodCleanup(
00114     CMPIMethodMI* mi,
00115     const CMPIContext* context,
00116     CMPIBoolean term)
00117 {
00118     CMReturn(CMPI_RC_OK);
00119 }
00120 
00121 CMPIStatus WidgetInvokeMethod(
00122     CMPIMethodMI* mi,
00123     const CMPIContext* context,
00124     const CMPIResult* result,
00125     const CMPIObjectPath* cop,
00126     const char* meth,
00127     const CMPIArgs* in,
00128     CMPIArgs* out)
00129 {
00130     return Widget_InvokeMethod(
00131         _broker, mi, context, result, cop, meth, in, out);
00132 }
00133 
00134 CMMethodMIStub(Widget, Widget, _broker, WidgetInitialize())
00135 
00136 KUint32 Widget_Add(
00137     const CMPIBroker* cb,
00138     CMPIMethodMI* mi,
00139     const CMPIContext* context,
00140     const KUint32* X,
00141     const KUint32* Y,
00142     CMPIStatus* status)
00143 {
00144     KUint32 result = KUINT32_INIT;
00145 
00146     if (!X->exists || !Y->exists || X->null || Y->null)
00147     {
00148         KSetStatus(status, ERR_INVALID_PARAMETER);
00149         return result;
00150     }
00151 
00152     KUint32_Set(&result, X->value + Y->value);
00153     KSetStatus(status, OK);
00154     return result;
00155 }

Generated on Fri Jun 6 18:55:04 2008 by  doxygen 1.5.3