void on_invoke_timer_fire(uv_timer_t *timer) { DSLink *link = timer->data; if (count == 3) { printf("We are done.\n"); uv_timer_stop(timer); uv_close((uv_handle_t *) timer, (uv_close_cb) dslink_free); dslink_close(link); return; } json_t *params = json_object(); json_object_set_new(params, "command", json_string("ls")); configure_request(dslink_requester_invoke( link, "/downstream/System/Execute_Command", params, on_invoke_updates )); configure_request(dslink_requester_set( link, "/data/c-sdk/requester/testNumber", json_real(rand()) )); count++; }
void on_timer_fire(uv_timer_t *timer) { static int count = 0; DSLink *link = timer->data; if (count == 3) { printf("We are done.\n"); uv_timer_stop(timer); uv_close((uv_handle_t *) timer, (uv_close_cb) dslink_free); dslink_close(link); return; } // set value json_t *value = json_real(rand()); configure_request(dslink_requester_set( link, "/data/c-sdk/requester/testNumber", value )); json_decref(value); // stream invoke json_t *params = json_object(); json_object_set_new(params, "Path", json_string("/data/test_c_sdk")); json_object_set_new(params, "Value", json_integer(count)); RequestHolder *holder = streamInvokeRef->data; dslink_requester_invoke_update_params(link, holder->rid, params); json_decref(params); count++; }
void start_stream_invoke(DSLink *link) { json_t *params = json_object(); json_object_set_new(params, "Path", json_string("/data/test_c_sdk")); json_object_set_new(params, "Value", json_integer(-1)); streamInvokeRef = dslink_requester_invoke( link, "/data/publish", params, on_invoke_updates ); json_decref(params); configure_request(streamInvokeRef); }
void handle_event(xcb_generic_event_t *evt) { uint8_t resp_type = XCB_EVENT_RESPONSE_TYPE(evt); switch (resp_type) { case XCB_MAP_REQUEST: map_request(evt); break; case XCB_DESTROY_NOTIFY: destroy_notify(evt); break; case XCB_UNMAP_NOTIFY: unmap_notify(evt); break; case XCB_CLIENT_MESSAGE: client_message(evt); break; case XCB_CONFIGURE_REQUEST: configure_request(evt); break; case XCB_PROPERTY_NOTIFY: property_notify(evt); break; case XCB_ENTER_NOTIFY: enter_notify(evt); break; case XCB_MOTION_NOTIFY: motion_notify(evt); break; case XCB_FOCUS_IN: focus_in(evt); break; case 0: process_error(evt); break; default: if (randr && resp_type == randr_base + XCB_RANDR_SCREEN_CHANGE_NOTIFY) { update_monitors(); } break; } }