> 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

Reply via email to