Review Request 351: Indication manager [1/1] Indication manager
Jan Safranek
reviewboard at gallagherhome.com
Mon May 27 11:23:32 UTC 2013
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard-openlmi.rhcloud.com/r/351/#review492
-----------------------------------------------------------
Ship it!
src/indmanager/README
<http://reviewboard-openlmi.rhcloud.com/r/351/#comment300>
I would emphasize that the callback *should* be blocking (otherwise there is busy loop).
- Jan Safranek
On May 27, 2013, 1:11 p.m., Roman Rakus wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviewboard-openlmi.rhcloud.com/r/351/
> -----------------------------------------------------------
>
> (Updated May 27, 2013, 1:11 p.m.)
>
>
> Review request for OpenLMI Developers.
>
>
> Repository: openlmi-providers
>
>
> Description
> -------
>
> Indication manager
>
> Signed-off-by: Roman Rakus <rrakus at redhat.com>
>
>
> Diffs
> -----
>
> CMakeLists.txt f25850e1640f52aed9f18c3bd343d41f7f5f21a4
> src/CMakeLists.txt 9f714d080d8541c368dedc235996e7a790930fff
> src/indmanager/CMakeLists.txt PRE-CREATION
> src/indmanager/README PRE-CREATION
> src/indmanager/ind_manager.h PRE-CREATION
> src/indmanager/ind_manager.c PRE-CREATION
> src/indmanager/openlmiindmanager.pc.in PRE-CREATION
>
> Diff: http://reviewboard-openlmi.rhcloud.com/r/351/diff/
>
>
> Testing
> -------
>
> 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")
>
>
> Thanks,
>
> Roman Rakus
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.fedorahosted.org/pipermail/openlmi-devel/attachments/20130527/b9d39af3/attachment.html>
More information about the openlmi-devel
mailing list