logger: add get size request 82/166082/5
authorMichal Bloch <m.bloch@samsung.com>
Fri, 5 Jan 2018 16:17:48 +0000 (17:17 +0100)
committerMichal Bloch <m.bloch@samsung.com>
Wed, 17 Jan 2018 17:34:16 +0000 (18:34 +0100)
Change-Id: I082213f0b46d24583d3cd0ae9208e32001552246
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
include/logpipe.h
src/logger/logger.c

index ea68e83..7f29fe8 100644 (file)
@@ -33,6 +33,7 @@ enum {
        DLOG_REQ_PIPE           = 1 << 1,
        DLOG_REQ_CLEAR          = 1 << 2,
        DLOG_REQ_HANDLE_LOGUTIL = 1 << 3,
+       DLOG_REQ_GETSIZE        = 1 << 4,
 };
 
 enum {
index dd94fa0..1447f39 100755 (executable)
@@ -1381,6 +1381,18 @@ static void apply_reader_clear(void *ptr, void *user_data)
        reader->bytes_to_read = 0;
 }
 
+static int service_writer_handle_req_getsize(struct logger *server, struct writer *wr, struct dlog_control_msg *msg)
+{
+       assert(server);
+       assert(wr);
+       assert(msg);
+       assert(msg->request == DLOG_REQ_GETSIZE);
+
+       unsigned buf_size = wr->buf_ptr->size;
+
+       return send_dlog_reply(wr->fd_entity.fd, DLOG_REQ_GETSIZE, DLOG_REQ_RESULT_OK, &buf_size, sizeof buf_size);
+}
+
 /**
  * @brief Service clear request
  * @details Handle a clear-buffer request
@@ -1436,10 +1448,10 @@ static int service_writer_handle_req_ctrl(struct logger *server, struct writer *
        switch (msg->request) {
        case DLOG_REQ_CLEAR:
                return service_writer_handle_req_clear(server, wr, msg);
-               break;
        case DLOG_REQ_HANDLE_LOGUTIL:
                return service_writer_handle_req_util(server, wr, msg);
-               break;
+       case DLOG_REQ_GETSIZE:
+               return service_writer_handle_req_getsize(server, wr, msg);
        default:
                return -EINVAL;
        }