LCOV - code coverage report
Current view: top level - discof/restore/utils - fd_ssresolve.h (source / functions) Hit Total Coverage
Test: cov.lcov Lines: 0 5 0.0 %
Date: 2025-10-13 04:42:14 Functions: 0 0 -

          Line data    Source code
       1             : #ifndef HEADER_fd_src_discof_restore_utils_fd_ssresolve_h
       2             : #define HEADER_fd_src_discof_restore_utils_fd_ssresolve_h
       3             : 
       4             : #include "../../../util/fd_util_base.h"
       5             : #include "../../../util/net/fd_net_headers.h"
       6             : 
       7           0 : #define FD_SSRESOLVE_MAGIC (0xF17EDA2CE55E510) /* FIREDANCER HTTP RESOLVE V0 */
       8           0 : #define FD_SSRESOLVE_ALIGN (8UL)
       9             : 
      10             : struct fd_ssresolve_result {
      11             :   ulong     slot;      /* slot of the snapshot */
      12             :   ulong     base_slot; /* base slot of incremental snapshot or ULONG_MAX */
      13             : };
      14             : 
      15             : typedef struct fd_ssresolve_result fd_ssresolve_result_t;
      16             : 
      17             : /* fd_ssresolve is responsible for resolving snapshots from a given
      18             :    peer by sending http requests and parsing http redirect responses.
      19             : 
      20             :    It is used by fd_http_resolver_t to resolve snapshots slots for each
      21             :    peer. */
      22             : struct fd_ssresolve_private;
      23             : typedef struct fd_ssresolve_private fd_ssresolve_t;
      24             : 
      25             : FD_PROTOTYPES_BEGIN
      26             : 
      27             : FD_FN_CONST ulong
      28             : fd_ssresolve_align( void );
      29             : 
      30             : FD_FN_CONST ulong
      31             : fd_ssresolve_footprint( void );
      32             : 
      33             : void *
      34             : fd_ssresolve_new( void * shmem );
      35             : 
      36             : fd_ssresolve_t *
      37             : fd_ssresolve_join( void * ssresolve );
      38             : 
      39             : void
      40             : fd_ssresolve_init( fd_ssresolve_t * ssresolve,
      41             :                    fd_ip4_port_t    addr,
      42             :                    int              sockfd,
      43             :                    int              full );
      44             : 
      45           0 : #define FD_SSRESOLVE_ADVANCE_ERROR   (-1) /* fatal error */
      46           0 : #define FD_SSRESOLVE_ADVANCE_AGAIN   ( 0) /* try again */
      47           0 : #define FD_SSRESOLVE_ADVANCE_SUCCESS ( 1) /* success */
      48             : 
      49             : /* fd_ssresolve_advance_poll_out advances the ssresolve state machine
      50             :    when its socket file descriptor is ready for sending data. */
      51             : int
      52             : fd_ssresolve_advance_poll_out( fd_ssresolve_t * ssresolve );
      53             : 
      54             : /* fd_ssresolve_advance_poll_in advances the ssresolve state machine
      55             :    when its socket file descriptor is ready for receiving data. */
      56             : int
      57             : fd_ssresolve_advance_poll_in( fd_ssresolve_t *        ssresolve,
      58             :                               fd_ssresolve_result_t * result );
      59             : 
      60             : /* fd_ssresolve_is_done returns whether the ssresolve state machine
      61             :    is completed.  Once the state machine is completed, it must be
      62             :    reinitialized by fd_ssresolve_init. */
      63             : int
      64             : fd_ssresolve_is_done( fd_ssresolve_t * ssresolve );
      65             : 
      66             : FD_PROTOTYPES_END
      67             : 
      68             : #endif /* HEADER_fd_src_discof_restore_utils_fd_ssresolve_h */

Generated by: LCOV version 1.14