X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvpp-api%2Fvapi%2Fvapi.hpp;h=a1e33a93fd4f9fd06c729ca00f15a340c914e72d;hb=53fffa1;hp=e0fd2e5051c41223a58bc1f93b305d2fbcf230e8;hpb=812ed39f9da336310e815c361ab5a9f118657d94;p=vpp.git diff --git a/src/vpp-api/vapi/vapi.hpp b/src/vpp-api/vapi/vapi.hpp index e0fd2e5051c..a1e33a93fd4 100644 --- a/src/vpp-api/vapi/vapi.hpp +++ b/src/vpp-api/vapi/vapi.hpp @@ -105,7 +105,8 @@ public: private: Connection &con; - Common_req (Connection &con) : con (con), response_state{RESPONSE_NOT_READY} + Common_req (Connection &con) + : con (con), context{0}, response_state{RESPONSE_NOT_READY} { } @@ -194,15 +195,17 @@ public: * @param name application name * @param chroot_prefix shared memory prefix * @param max_queued_request max number of outstanding requests queued + * @param handle_keepalives handle memclnt_keepalive automatically * * @return VAPI_OK on success, other error code on error */ vapi_error_e connect (const char *name, const char *chroot_prefix, - int max_outstanding_requests, int response_queue_size) + int max_outstanding_requests, int response_queue_size, + bool handle_keepalives = true) { return vapi_connect (vapi_ctx, name, chroot_prefix, max_outstanding_requests, response_queue_size, - VAPI_MODE_BLOCKING); + VAPI_MODE_BLOCKING, handle_keepalives); } /** @@ -244,7 +247,7 @@ public: * * @return VAPI_OK on success, other error code on error */ - vapi_error_e dispatch (const Common_req *limit = nullptr) + vapi_error_e dispatch (const Common_req *limit = nullptr, u32 time = 5) { std::lock_guard lock (dispatch_mutex); vapi_error_e rv = VAPI_OK; @@ -253,7 +256,8 @@ public: { void *shm_data; size_t shm_data_size; - rv = vapi_recv (vapi_ctx, &shm_data, &shm_data_size); + rv = vapi_recv (vapi_ctx, &shm_data, &shm_data_size, SVM_Q_TIMEDWAIT, + time); if (VAPI_OK != rv) { return rv; @@ -577,13 +581,14 @@ private: static void set_msg_id (vapi_msg_id_t id) { - assert ((~0 == *msg_id_holder ()) || (id == *msg_id_holder ())); + assert ((VAPI_INVALID_MSG_ID == *msg_id_holder ()) || + (id == *msg_id_holder ())); *msg_id_holder () = id; } static vapi_msg_id_t *msg_id_holder () { - static vapi_msg_id_t my_id{~0}; + static vapi_msg_id_t my_id{VAPI_INVALID_MSG_ID}; return &my_id; }