RPC: Implement storage_stat_request (#800)

* RPC: Update protobuf sources
* RPC: Implement storage_stat_request
* RPC: Test storage_stat_request
* FuriRecord: fix use after free in destroy method.
* Furi: refactor PubSub and it's usage. Fix allocation in RPC.
* FuriCore: fix memory leak in pubsub
* FuriCore: update unsubscribe method signature in pubsub, make subscription structure lighter.
* FuriCore: remove dead code

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
This commit is contained in:
Anna Prosvetova
2021-11-01 23:35:54 +03:00
committed by GitHub
parent b397442d89
commit e9e76e144c
37 changed files with 350 additions and 214 deletions

View File

@@ -78,6 +78,8 @@ typedef struct _PB_Main {
PB_Gui_StopScreenStreamRequest gui_stop_screen_stream_request;
PB_Gui_ScreenStreamFrame gui_screen_stream_frame;
PB_Gui_SendInputEventRequest gui_send_input_event_request;
PB_Storage_StatRequest storage_stat_request;
PB_Storage_StatResponse storage_stat_response;
} content;
} PB_Main;
@@ -124,6 +126,8 @@ extern "C" {
#define PB_Main_gui_stop_screen_stream_request_tag 21
#define PB_Main_gui_screen_stream_frame_tag 22
#define PB_Main_gui_send_input_event_request_tag 23
#define PB_Main_storage_stat_request_tag 24
#define PB_Main_storage_stat_response_tag 25
/* Struct field encoding specification for nanopb */
#define PB_Empty_FIELDLIST(X, a) \
@@ -159,7 +163,9 @@ X(a, STATIC, ONEOF, MSG_W_CB, (content,stop_session,content.stop_session),
X(a, STATIC, ONEOF, MSG_W_CB, (content,gui_start_screen_stream_request,content.gui_start_screen_stream_request), 20) \
X(a, STATIC, ONEOF, MSG_W_CB, (content,gui_stop_screen_stream_request,content.gui_stop_screen_stream_request), 21) \
X(a, STATIC, ONEOF, MSG_W_CB, (content,gui_screen_stream_frame,content.gui_screen_stream_frame), 22) \
X(a, STATIC, ONEOF, MSG_W_CB, (content,gui_send_input_event_request,content.gui_send_input_event_request), 23)
X(a, STATIC, ONEOF, MSG_W_CB, (content,gui_send_input_event_request,content.gui_send_input_event_request), 23) \
X(a, STATIC, ONEOF, MSG_W_CB, (content,storage_stat_request,content.storage_stat_request), 24) \
X(a, STATIC, ONEOF, MSG_W_CB, (content,storage_stat_response,content.storage_stat_response), 25)
#define PB_Main_CALLBACK NULL
#define PB_Main_DEFAULT NULL
#define PB_Main_content_empty_MSGTYPE PB_Empty
@@ -182,6 +188,8 @@ X(a, STATIC, ONEOF, MSG_W_CB, (content,gui_send_input_event_request,content
#define PB_Main_content_gui_stop_screen_stream_request_MSGTYPE PB_Gui_StopScreenStreamRequest
#define PB_Main_content_gui_screen_stream_frame_MSGTYPE PB_Gui_ScreenStreamFrame
#define PB_Main_content_gui_send_input_event_request_MSGTYPE PB_Gui_SendInputEventRequest
#define PB_Main_content_storage_stat_request_MSGTYPE PB_Storage_StatRequest
#define PB_Main_content_storage_stat_response_MSGTYPE PB_Storage_StatResponse
extern const pb_msgdesc_t PB_Empty_msg;
extern const pb_msgdesc_t PB_StopSession_msg;
@@ -195,9 +203,9 @@ extern const pb_msgdesc_t PB_Main_msg;
/* Maximum encoded size of messages (where known) */
#define PB_Empty_size 0
#define PB_StopSession_size 0
#if defined(PB_Storage_ListRequest_size) && defined(PB_Storage_ListResponse_size) && defined(PB_Storage_ReadRequest_size) && defined(PB_Storage_ReadResponse_size) && defined(PB_Storage_WriteRequest_size) && defined(PB_Storage_DeleteRequest_size) && defined(PB_Storage_MkdirRequest_size) && defined(PB_Storage_Md5sumRequest_size) && defined(PB_App_StartRequest_size) && defined(PB_Gui_ScreenStreamFrame_size)
#if defined(PB_Storage_ListRequest_size) && defined(PB_Storage_ListResponse_size) && defined(PB_Storage_ReadRequest_size) && defined(PB_Storage_ReadResponse_size) && defined(PB_Storage_WriteRequest_size) && defined(PB_Storage_DeleteRequest_size) && defined(PB_Storage_MkdirRequest_size) && defined(PB_Storage_Md5sumRequest_size) && defined(PB_App_StartRequest_size) && defined(PB_Gui_ScreenStreamFrame_size) && defined(PB_Storage_StatRequest_size) && defined(PB_Storage_StatResponse_size)
#define PB_Main_size (10 + sizeof(union PB_Main_content_size_union))
union PB_Main_content_size_union {char f7[(6 + PB_Storage_ListRequest_size)]; char f8[(6 + PB_Storage_ListResponse_size)]; char f9[(6 + PB_Storage_ReadRequest_size)]; char f10[(6 + PB_Storage_ReadResponse_size)]; char f11[(6 + PB_Storage_WriteRequest_size)]; char f12[(6 + PB_Storage_DeleteRequest_size)]; char f13[(6 + PB_Storage_MkdirRequest_size)]; char f14[(6 + PB_Storage_Md5sumRequest_size)]; char f16[(7 + PB_App_StartRequest_size)]; char f22[(7 + PB_Gui_ScreenStreamFrame_size)]; char f0[36];};
union PB_Main_content_size_union {char f7[(6 + PB_Storage_ListRequest_size)]; char f8[(6 + PB_Storage_ListResponse_size)]; char f9[(6 + PB_Storage_ReadRequest_size)]; char f10[(6 + PB_Storage_ReadResponse_size)]; char f11[(6 + PB_Storage_WriteRequest_size)]; char f12[(6 + PB_Storage_DeleteRequest_size)]; char f13[(6 + PB_Storage_MkdirRequest_size)]; char f14[(6 + PB_Storage_Md5sumRequest_size)]; char f16[(7 + PB_App_StartRequest_size)]; char f22[(7 + PB_Gui_ScreenStreamFrame_size)]; char f24[(7 + PB_Storage_StatRequest_size)]; char f25[(7 + PB_Storage_StatResponse_size)]; char f0[36];};
#endif
#ifdef __cplusplus

View File

@@ -9,6 +9,12 @@
PB_BIND(PB_Storage_File, PB_Storage_File, AUTO)
PB_BIND(PB_Storage_StatRequest, PB_Storage_StatRequest, AUTO)
PB_BIND(PB_Storage_StatResponse, PB_Storage_StatResponse, AUTO)
PB_BIND(PB_Storage_ListRequest, PB_Storage_ListRequest, AUTO)

View File

@@ -32,6 +32,10 @@ typedef struct _PB_Storage_ReadRequest {
char *path;
} PB_Storage_ReadRequest;
typedef struct _PB_Storage_StatRequest {
char *path;
} PB_Storage_StatRequest;
typedef struct _PB_Storage_DeleteRequest {
char *path;
bool recursive;
@@ -58,6 +62,11 @@ typedef struct _PB_Storage_ReadResponse {
PB_Storage_File file;
} PB_Storage_ReadResponse;
typedef struct _PB_Storage_StatResponse {
bool has_file;
PB_Storage_File file;
} PB_Storage_StatResponse;
typedef struct _PB_Storage_WriteRequest {
char *path;
bool has_file;
@@ -77,6 +86,8 @@ extern "C" {
/* Initializer values for message structs */
#define PB_Storage_File_init_default {_PB_Storage_File_FileType_MIN, NULL, 0, NULL}
#define PB_Storage_StatRequest_init_default {NULL}
#define PB_Storage_StatResponse_init_default {false, PB_Storage_File_init_default}
#define PB_Storage_ListRequest_init_default {NULL}
#define PB_Storage_ListResponse_init_default {0, {PB_Storage_File_init_default, PB_Storage_File_init_default, PB_Storage_File_init_default, PB_Storage_File_init_default, PB_Storage_File_init_default, PB_Storage_File_init_default, PB_Storage_File_init_default, PB_Storage_File_init_default}}
#define PB_Storage_ReadRequest_init_default {NULL}
@@ -87,6 +98,8 @@ extern "C" {
#define PB_Storage_Md5sumRequest_init_default {NULL}
#define PB_Storage_Md5sumResponse_init_default {""}
#define PB_Storage_File_init_zero {_PB_Storage_File_FileType_MIN, NULL, 0, NULL}
#define PB_Storage_StatRequest_init_zero {NULL}
#define PB_Storage_StatResponse_init_zero {false, PB_Storage_File_init_zero}
#define PB_Storage_ListRequest_init_zero {NULL}
#define PB_Storage_ListResponse_init_zero {0, {PB_Storage_File_init_zero, PB_Storage_File_init_zero, PB_Storage_File_init_zero, PB_Storage_File_init_zero, PB_Storage_File_init_zero, PB_Storage_File_init_zero, PB_Storage_File_init_zero, PB_Storage_File_init_zero}}
#define PB_Storage_ReadRequest_init_zero {NULL}
@@ -102,6 +115,7 @@ extern "C" {
#define PB_Storage_Md5sumRequest_path_tag 1
#define PB_Storage_MkdirRequest_path_tag 1
#define PB_Storage_ReadRequest_path_tag 1
#define PB_Storage_StatRequest_path_tag 1
#define PB_Storage_DeleteRequest_path_tag 1
#define PB_Storage_DeleteRequest_recursive_tag 2
#define PB_Storage_File_type_tag 1
@@ -111,6 +125,7 @@ extern "C" {
#define PB_Storage_Md5sumResponse_md5sum_tag 1
#define PB_Storage_ListResponse_file_tag 1
#define PB_Storage_ReadResponse_file_tag 1
#define PB_Storage_StatResponse_file_tag 1
#define PB_Storage_WriteRequest_path_tag 1
#define PB_Storage_WriteRequest_file_tag 2
@@ -123,6 +138,17 @@ X(a, POINTER, SINGULAR, BYTES, data, 4)
#define PB_Storage_File_CALLBACK NULL
#define PB_Storage_File_DEFAULT NULL
#define PB_Storage_StatRequest_FIELDLIST(X, a) \
X(a, POINTER, SINGULAR, STRING, path, 1)
#define PB_Storage_StatRequest_CALLBACK NULL
#define PB_Storage_StatRequest_DEFAULT NULL
#define PB_Storage_StatResponse_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, MESSAGE, file, 1)
#define PB_Storage_StatResponse_CALLBACK NULL
#define PB_Storage_StatResponse_DEFAULT NULL
#define PB_Storage_StatResponse_file_MSGTYPE PB_Storage_File
#define PB_Storage_ListRequest_FIELDLIST(X, a) \
X(a, POINTER, SINGULAR, STRING, path, 1)
#define PB_Storage_ListRequest_CALLBACK NULL
@@ -174,6 +200,8 @@ X(a, STATIC, SINGULAR, STRING, md5sum, 1)
#define PB_Storage_Md5sumResponse_DEFAULT NULL
extern const pb_msgdesc_t PB_Storage_File_msg;
extern const pb_msgdesc_t PB_Storage_StatRequest_msg;
extern const pb_msgdesc_t PB_Storage_StatResponse_msg;
extern const pb_msgdesc_t PB_Storage_ListRequest_msg;
extern const pb_msgdesc_t PB_Storage_ListResponse_msg;
extern const pb_msgdesc_t PB_Storage_ReadRequest_msg;
@@ -186,6 +214,8 @@ extern const pb_msgdesc_t PB_Storage_Md5sumResponse_msg;
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define PB_Storage_File_fields &PB_Storage_File_msg
#define PB_Storage_StatRequest_fields &PB_Storage_StatRequest_msg
#define PB_Storage_StatResponse_fields &PB_Storage_StatResponse_msg
#define PB_Storage_ListRequest_fields &PB_Storage_ListRequest_msg
#define PB_Storage_ListResponse_fields &PB_Storage_ListResponse_msg
#define PB_Storage_ReadRequest_fields &PB_Storage_ReadRequest_msg
@@ -198,6 +228,8 @@ extern const pb_msgdesc_t PB_Storage_Md5sumResponse_msg;
/* Maximum encoded size of messages (where known) */
/* PB_Storage_File_size depends on runtime parameters */
/* PB_Storage_StatRequest_size depends on runtime parameters */
/* PB_Storage_StatResponse_size depends on runtime parameters */
/* PB_Storage_ListRequest_size depends on runtime parameters */
/* PB_Storage_ListResponse_size depends on runtime parameters */
/* PB_Storage_ReadRequest_size depends on runtime parameters */