Storage: tree timestamps (#1971)
* Storage: tree timestamps * Rpc: add storage timestamp * Storage: correct timestamp owner * Storage: update timestamp at sd mount Co-authored-by: SG <who.just.the.doctor@gmail.com>
This commit is contained in:
@@ -138,6 +138,41 @@ static void rpc_system_storage_info_process(const PB_Main* request, void* contex
|
||||
furi_record_close(RECORD_STORAGE);
|
||||
}
|
||||
|
||||
static void rpc_system_storage_timestamp_process(const PB_Main* request, void* context) {
|
||||
furi_assert(request);
|
||||
furi_assert(context);
|
||||
furi_assert(request->which_content == PB_Main_storage_timestamp_request_tag);
|
||||
|
||||
FURI_LOG_D(TAG, "Timestamp");
|
||||
|
||||
RpcStorageSystem* rpc_storage = context;
|
||||
RpcSession* session = rpc_storage->session;
|
||||
furi_assert(session);
|
||||
|
||||
rpc_system_storage_reset_state(rpc_storage, session, true);
|
||||
|
||||
PB_Main* response = malloc(sizeof(PB_Main));
|
||||
response->command_id = request->command_id;
|
||||
|
||||
Storage* fs_api = furi_record_open(RECORD_STORAGE);
|
||||
|
||||
const char* path = request->content.storage_timestamp_request.path;
|
||||
uint32_t timestamp = 0;
|
||||
FS_Error error = storage_common_timestamp(fs_api, path, ×tamp);
|
||||
|
||||
response->command_status = rpc_system_storage_get_error(error);
|
||||
response->which_content = PB_Main_empty_tag;
|
||||
|
||||
if(error == FSE_OK) {
|
||||
response->which_content = PB_Main_storage_timestamp_response_tag;
|
||||
response->content.storage_timestamp_response.timestamp = timestamp;
|
||||
}
|
||||
|
||||
rpc_send_and_release(session, response);
|
||||
free(response);
|
||||
furi_record_close(RECORD_STORAGE);
|
||||
}
|
||||
|
||||
static void rpc_system_storage_stat_process(const PB_Main* request, void* context) {
|
||||
furi_assert(request);
|
||||
furi_assert(context);
|
||||
@@ -672,6 +707,9 @@ void* rpc_system_storage_alloc(RpcSession* session) {
|
||||
rpc_handler.message_handler = rpc_system_storage_info_process;
|
||||
rpc_add_handler(session, PB_Main_storage_info_request_tag, &rpc_handler);
|
||||
|
||||
rpc_handler.message_handler = rpc_system_storage_timestamp_process;
|
||||
rpc_add_handler(session, PB_Main_storage_timestamp_request_tag, &rpc_handler);
|
||||
|
||||
rpc_handler.message_handler = rpc_system_storage_stat_process;
|
||||
rpc_add_handler(session, PB_Main_storage_stat_request_tag, &rpc_handler);
|
||||
|
||||
|
Reference in New Issue
Block a user