<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="http://reviewboard-openlmi.rhcloud.com/r/351/">http://reviewboard-openlmi.rhcloud.com/r/351/</a>
</td>
</tr>
</table>
<br />
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://reviewboard-openlmi.rhcloud.com/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
<tr>
<td>
<div>Review request for OpenLMI Developers.</div>
<div>By Roman Rakus.</div>
<p style="color: grey;"><i>Updated May 16, 2013, 11:59 a.m.</i></p>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
openlmi-providers
</div>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Indication manager
Signed-off-by: Roman Rakus <rrakus@redhat.com>
</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">For testing purposes I used the following provider:
#include <konkret/konkret.h>
#include "LMI_AccountInstCreationIndication.h"
#include "ind_manager.h"
#include <stdbool.h>
static const CMPIBroker* _cb = NULL;
static IMManager *im = NULL;
IMError im_err = IM_ERR_OK;
static bool filter_checker(const CMPISelectExp *filter)
{
//TODO - true checking
return true;
}
// TODO - remove !
#include <unistd.h>
static bool spawner(void *data)
{
//TODO - true checking
return true;
}
// TODO - remove !
#include <unistd.h>
static bool spawner(void *data)
{
//TODO - inotify
sleep(10);
return true;
}
static void LMI_AccountInstCreationIndicationInitialize()
{
// startup indication manager
im = im_create_manager(NULL, filter_checker, true, spawner,
IM_IND_CREATION, (CMPIBroker *)_cb, &im_err);
}
static CMPIStatus LMI_AccountInstCreationIndicationIndicationCleanup(
CMPIIndicationMI* mi,
const CMPIContext* cc,
CMPIBoolean term)
{
// destroy indication manager
im_destroy_manager(im, cc, &im_err);
CMReturn(CMPI_RC_OK);
}
static CMPIStatus LMI_AccountInstCreationIndicationAuthorizeFilter(
CMPIIndicationMI* mi,
const CMPIContext* cc,
const CMPISelectExp* se,
const char* ns,
const CMPIObjectPath* op,
const char* user)
{
// verify filter
im_verify_filter(im, se, cc, &im_err);
CMReturn(CMPI_RC_OK);
}
static CMPIStatus LMI_AccountInstCreationIndicationMustPoll(
CMPIIndicationMI* mi,
const CMPIContext* cc,
const CMPISelectExp* se,
const char* ns,
const CMPIObjectPath* op)
{
// yes, this is not supported :(
CMReturn(CMPI_RC_ERR_NOT_SUPPORTED);
}
static CMPIStatus LMI_AccountInstCreationIndicationActivateFilter(
CMPIIndicationMI* mi,
const CMPIContext* cc,
const CMPISelectExp* se,
const char* ns,
const CMPIObjectPath* op,
CMPIBoolean firstActivation)
{
// verify filter and add it via indication manager
im_verify_filter(im, se, cc, &im_err);
im_add_filter(im, (CMPISelectExp*)se, cc, &im_err);
CMReturn(CMPI_RC_OK);
}
static CMPIStatus LMI_AccountInstCreationIndicationDeActivateFilter(
CMPIIndicationMI* mi,
const CMPIContext* cc,
const CMPISelectExp* se,
const char* ns,
const CMPIObjectPath* op,
CMPIBoolean lastActivation)
{
// remove filter from indication manager
im_remove_filter(im, se, cc, &im_err);
CMReturn(CMPI_RC_OK);
}
static CMPIStatus LMI_AccountInstCreationIndicationEnableIndications(
CMPIIndicationMI* mi,
const CMPIContext* cc)
{
// start indications
im_start_ind(im, cc, &im_err);
CMReturn(CMPI_RC_OK);
}
static CMPIStatus LMI_AccountInstCreationIndicationDisableIndications(
CMPIIndicationMI* mi,
const CMPIContext* cc)
{
// stop indications
im_stop_ind(im, cc, &im_err);
CMReturn(CMPI_RC_OK);
}
CMIndicationMIStub(
LMI_AccountInstCreationIndication,
LMI_AccountInstCreationIndication,
_cb,
LMI_AccountInstCreationIndicationInitialize())
KONKRET_REGISTRATION(
"root/cimv2",
"LMI_AccountInstCreationIndication",
"LMI_AccountInstCreationIndication",
"indication")
</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> (updated)</h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>CMakeLists.txt <span style="color: grey">(f25850e1640f52aed9f18c3bd343d41f7f5f21a4)</span></li>
<li>src/CMakeLists.txt <span style="color: grey">(9f714d080d8541c368dedc235996e7a790930fff)</span></li>
<li>src/indmanager/CMakeLists.txt <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/indmanager/ind_manager.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/indmanager/ind_manager.c <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/indmanager/openlmiindmanager.pc.in <span style="color: grey">(PRE-CREATION)</span></li>
</ul>
<p><a href="http://reviewboard-openlmi.rhcloud.com/r/351/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>