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:
		| @@ -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 | ||||
|   | ||||
| @@ -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) | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -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 */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user