[FL-3933] Pipe (#3996)

* feat: FuriThread stdin
* ci: fix f18
* feat: stdio callback context
* feat: FuriPipe
* POTENTIALLY EXPLOSIVE pipe welding
* fix: non-explosive welding
* Revert welding
* docs: furi_pipe
* feat: pipe event loop integration
* update f18 sdk
* f18
* docs: make doxygen happy
* fix: event loop not triggering when pipe attached to stdio
* fix: partial stdout in pipe
* allow simultaneous in and out subscription in event loop
* refactor: move pipe out of furi and decouple from event loop
* chore: api versioning
* Bump api versions
* refactor: rename pipe_set_pipe_broken_callback
* Toolbox: add missing pragma once

Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
Anna Antonenko
2024-12-24 05:58:27 +04:00
committed by GitHub
parent 519b89665f
commit 5fd423951b
9 changed files with 752 additions and 2 deletions

View File

@@ -1,5 +1,5 @@
entry,status,name,type,params
Version,+,79.1,,
Version,+,79.2,,
Header,+,applications/services/bt/bt_service/bt.h,,
Header,+,applications/services/bt/bt_service/bt_keys_storage.h,,
Header,+,applications/services/cli/cli.h,,
@@ -161,6 +161,7 @@ Header,+,lib/toolbox/manchester_encoder.h,,
Header,+,lib/toolbox/md5_calc.h,,
Header,+,lib/toolbox/name_generator.h,,
Header,+,lib/toolbox/path.h,,
Header,+,lib/toolbox/pipe.h,,
Header,+,lib/toolbox/pretty_format.h,,
Header,+,lib/toolbox/protocols/protocol_dict.h,,
Header,+,lib/toolbox/pulse_protocols/pulse_glue.h,,
@@ -1580,6 +1581,7 @@ Function,+,furi_stream_buffer_receive,size_t,"FuriStreamBuffer*, void*, size_t,
Function,+,furi_stream_buffer_reset,FuriStatus,FuriStreamBuffer*
Function,+,furi_stream_buffer_send,size_t,"FuriStreamBuffer*, const void*, size_t, uint32_t"
Function,+,furi_stream_buffer_spaces_available,size_t,FuriStreamBuffer*
Function,+,furi_stream_get_trigger_level,size_t,FuriStreamBuffer*
Function,+,furi_stream_set_trigger_level,_Bool,"FuriStreamBuffer*, size_t"
Function,+,furi_string_alloc,FuriString*,
Function,+,furi_string_alloc_move,FuriString*,FuriString*
@@ -2290,6 +2292,22 @@ Function,+,pb_skip_field,_Bool,"pb_istream_t*, pb_wire_type_t"
Function,+,pb_write,_Bool,"pb_ostream_t*, const pb_byte_t*, size_t"
Function,-,pclose,int,FILE*
Function,-,perror,void,const char*
Function,+,pipe_alloc,PipeSideBundle,"size_t, size_t"
Function,+,pipe_alloc_ex,PipeSideBundle,"PipeSideReceiveSettings, PipeSideReceiveSettings"
Function,+,pipe_attach_to_event_loop,void,"PipeSide*, FuriEventLoop*"
Function,+,pipe_bytes_available,size_t,PipeSide*
Function,+,pipe_detach_from_event_loop,void,PipeSide*
Function,+,pipe_free,void,PipeSide*
Function,+,pipe_install_as_stdio,void,PipeSide*
Function,+,pipe_receive,size_t,"PipeSide*, void*, size_t, FuriWait"
Function,+,pipe_role,PipeRole,PipeSide*
Function,+,pipe_send,size_t,"PipeSide*, const void*, size_t, FuriWait"
Function,+,pipe_set_callback_context,void,"PipeSide*, void*"
Function,+,pipe_set_data_arrived_callback,void,"PipeSide*, PipeSideDataArrivedCallback, FuriEventLoopEvent"
Function,+,pipe_set_broken_callback,void,"PipeSide*, PipeSideBrokenCallback, FuriEventLoopEvent"
Function,+,pipe_set_space_freed_callback,void,"PipeSide*, PipeSideSpaceFreedCallback, FuriEventLoopEvent"
Function,+,pipe_spaces_available,size_t,PipeSide*
Function,+,pipe_state,PipeState,PipeSide*
Function,+,plugin_manager_alloc,PluginManager*,"const char*, uint32_t, const ElfApiInterface*"
Function,+,plugin_manager_free,void,PluginManager*
Function,+,plugin_manager_get,const FlipperAppPluginDescriptor*,"PluginManager*, uint32_t"
1 entry status name type params
2 Version + 79.1 79.2
3 Header + applications/services/bt/bt_service/bt.h
4 Header + applications/services/bt/bt_service/bt_keys_storage.h
5 Header + applications/services/cli/cli.h
161 Header + lib/toolbox/md5_calc.h
162 Header + lib/toolbox/name_generator.h
163 Header + lib/toolbox/path.h
164 Header + lib/toolbox/pipe.h
165 Header + lib/toolbox/pretty_format.h
166 Header + lib/toolbox/protocols/protocol_dict.h
167 Header + lib/toolbox/pulse_protocols/pulse_glue.h
1581 Function + furi_stream_buffer_reset FuriStatus FuriStreamBuffer*
1582 Function + furi_stream_buffer_send size_t FuriStreamBuffer*, const void*, size_t, uint32_t
1583 Function + furi_stream_buffer_spaces_available size_t FuriStreamBuffer*
1584 Function + furi_stream_get_trigger_level size_t FuriStreamBuffer*
1585 Function + furi_stream_set_trigger_level _Bool FuriStreamBuffer*, size_t
1586 Function + furi_string_alloc FuriString*
1587 Function + furi_string_alloc_move FuriString* FuriString*
2292 Function + pb_write _Bool pb_ostream_t*, const pb_byte_t*, size_t
2293 Function - pclose int FILE*
2294 Function - perror void const char*
2295 Function + pipe_alloc PipeSideBundle size_t, size_t
2296 Function + pipe_alloc_ex PipeSideBundle PipeSideReceiveSettings, PipeSideReceiveSettings
2297 Function + pipe_attach_to_event_loop void PipeSide*, FuriEventLoop*
2298 Function + pipe_bytes_available size_t PipeSide*
2299 Function + pipe_detach_from_event_loop void PipeSide*
2300 Function + pipe_free void PipeSide*
2301 Function + pipe_install_as_stdio void PipeSide*
2302 Function + pipe_receive size_t PipeSide*, void*, size_t, FuriWait
2303 Function + pipe_role PipeRole PipeSide*
2304 Function + pipe_send size_t PipeSide*, const void*, size_t, FuriWait
2305 Function + pipe_set_callback_context void PipeSide*, void*
2306 Function + pipe_set_data_arrived_callback void PipeSide*, PipeSideDataArrivedCallback, FuriEventLoopEvent
2307 Function + pipe_set_broken_callback void PipeSide*, PipeSideBrokenCallback, FuriEventLoopEvent
2308 Function + pipe_set_space_freed_callback void PipeSide*, PipeSideSpaceFreedCallback, FuriEventLoopEvent
2309 Function + pipe_spaces_available size_t PipeSide*
2310 Function + pipe_state PipeState PipeSide*
2311 Function + plugin_manager_alloc PluginManager* const char*, uint32_t, const ElfApiInterface*
2312 Function + plugin_manager_free void PluginManager*
2313 Function + plugin_manager_get const FlipperAppPluginDescriptor* PluginManager*, uint32_t