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
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
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
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 }