Line data Source code
1 : #ifndef HEADER_fd_src_discof_restore_utils_fd_ssmanifest_parser_h 2 : #define HEADER_fd_src_discof_restore_utils_fd_ssmanifest_parser_h 3 : 4 : #include "fd_ssmsg.h" 5 : #include "fd_ssparse.h" 6 : #include "../../../flamenco/runtime/program/vote/fd_vote_codec.h" 7 : 8 : struct fd_ssmanifest_parser_private; 9 : typedef struct fd_ssmanifest_parser_private fd_ssmanifest_parser_t; 10 : 11 : FD_PROTOTYPES_BEGIN 12 : 13 : FD_FN_CONST ulong 14 : fd_ssmanifest_parser_align( void ); 15 : 16 : FD_FN_CONST ulong 17 : fd_ssmanifest_parser_footprint( void ); 18 : 19 : void * 20 : fd_ssmanifest_parser_new( void * shmem ); 21 : 22 : fd_ssmanifest_parser_t * 23 : fd_ssmanifest_parser_join( void * shmem ); 24 : 25 : void 26 : fd_ssmanifest_parser_init( fd_ssmanifest_parser_t * parser, 27 : fd_snapshot_manifest_t * manifest ); 28 : 29 0 : #define FD_SSMANIFEST_PARSER_ADVANCE_ERROR (-1) 30 0 : #define FD_SSMANIFEST_PARSER_ADVANCE_AGAIN ( 0) 31 0 : #define FD_SSMANIFEST_PARSER_ADVANCE_DONE ( 1) 32 : int 33 : fd_ssmanifest_parser_consume( fd_ssmanifest_parser_t * parser, 34 : uchar const * buf, 35 : ulong bufsz ); 36 : 37 : /* Indicate to the parser that there are no more bytes coming. 38 : Returns DONE if the parser was at a point in the state machine 39 : where it is legal to finish, or ERROR otherwise. 40 : Must be called after the last consume(). */ 41 : int 42 : fd_ssmanifest_parser_fini( fd_ssmanifest_parser_t * parser ); 43 : 44 : int 45 : fd_ssmanifest_vote_stakes_from_v5( fd_snapshot_manifest_vote_stakes_t * out, 46 : fd_vote_state_v5_t const * v5 ); 47 : 48 : FD_PROTOTYPES_END 49 : 50 : #endif /* HEADER_fd_src_discof_restore_utils_fd_ssmanifest_parser_h */