> On Nov. 22, 2013, 12:04 a.m., Mark Michelson wrote:
> > branches/12/res/res_stasis_device_state.c, lines 142-149
> > <https://reviewboard.asterisk.org/r/3025/diff/1/?file=48549#file48549line142>
> >
> > Instead of constructing a device_state_subscription and searching by
> > OBJ_SEARCH_OBJECT, just use the name that was passed in and search by
> > OBJ_SEARCH_KEY. That way, you save the overhead of the creation and
> > destruction of an ao2_object whenever this function is called.
>
> Kevin Harwell wrote:
> I need to search by the app name and device name in order to find the
> device subscribed to and OBJ_SEARCH_KEY only allows me to search using a
> single string field, so I create the object and search on that instead.
This is not true. The OBJ_SEARCH_KEY could be anything you setup the container
callbacks to take as the key. The template code on the wiki assumes the key is
a simple string.
In this case you could pass a struct pointer that contains two string pointers.
struct device_container_key {
const char *app_name;
const char *device_name;
}
- rmudgett
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/3025/#review10260
-----------------------------------------------------------
On Nov. 22, 2013, 12:25 a.m., Kevin Harwell wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/3025/
> -----------------------------------------------------------
>
> (Updated Nov. 22, 2013, 12:25 a.m.)
>
>
> Review request for Asterisk Developers, David Lee and Matt Jordan.
>
>
> Bugs: ASTERISK-22838
> https://issues.asterisk.org/jira/browse/ASTERISK-22838
>
>
> Repository: Asterisk
>
>
> Description
> -------
>
> Created a data model and implemented functionality for an ARI device state
> resource. The following operations have been added that allow a user to
> manipulate an ARI controlled device:
>
> PUT /device-states/{deviceName}&{deviceState} - Create/Change the state of
> an ARI controlled device
> GET /device-states/{deviceName} - Retrieve the current state of a device
> DELETE /device-states/{deviceName} - Destroy a device-state controlled by ARI
>
> The ARI controlled device must begin with 'Stasis:'. An example controlled
> device name would be Stasis:Example.
>
> A 'DeviceStateChanged' event has also been added so that an application can
> subscribe and receive device change events. Any device state, ARI controlled
> or not, can be subscribed to.
>
> While adding the event, the underlying subscription control mechanism was
> refactored so that all current and future resource subscriptions would be the
> same. Each event resource must now register itself in order to be able to
> properly handle [un]subscribes.
>
>
> Diffs
> -----
>
> branches/12/rest-api/resources.json 402993
> branches/12/rest-api/api-docs/events.json 402993
> branches/12/rest-api/api-docs/deviceStates.json PRE-CREATION
> branches/12/rest-api/api-docs/applications.json 402993
> branches/12/rest-api-templates/ari.make.mustache 402993
> branches/12/res/stasis/app.c 402993
> branches/12/res/stasis/app.h 402993
> branches/12/res/res_stasis_device_state.exports.in PRE-CREATION
> branches/12/res/res_stasis_device_state.c PRE-CREATION
> branches/12/res/res_stasis.c 402993
> branches/12/res/res_ari_device_states.c PRE-CREATION
> branches/12/res/ari/resource_device_states.c PRE-CREATION
> branches/12/res/ari/resource_device_states.h PRE-CREATION
> branches/12/res/ari/resource_applications.h 402993
> branches/12/res/ari/ari_model_validators.c 402993
> branches/12/res/ari/ari_model_validators.h 402993
> branches/12/res/ari.make 402993
> branches/12/main/devicestate.c 402993
> branches/12/include/asterisk/stasis_app_device_state.h PRE-CREATION
> branches/12/include/asterisk/stasis_app.h 402993
> branches/12/include/asterisk/devicestate.h 402993
>
> Diff: https://reviewboard.asterisk.org/r/3025/diff/
>
>
> Testing
> -------
>
> Some basic testing done using the swagger framework and a websocket
> connection. Testing adding, changing, and removing device state with regards
> to an ARI controlled device were successful. Also tested [un]subscribing to
> the events from device with success. Planning on writing some testsuite test
> cases as well.
>
>
> Thanks,
>
> Kevin Harwell
>
>
--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-dev