This commit is contained in:
Rongsong Shen 2026-07-23 12:35:10 +08:00
commit ff1be48001
38 changed files with 2292 additions and 35 deletions

View file

@ -122,4 +122,7 @@ extern int xcecli_jobinfo(xcecli_ctx_t, uint64_t, xce_job_t**);
#define xce_free_ctrlstatus(s) free_CtrlStatus_ptr(&(s))
#define xcecli_free_ctrlstatus(s) xce_free_ctrlstatus(s)
extern int xcecli_reply_fetchfile(xcecli_ctx_t, xce_request_t*, xce_fetchfile_reply_t*);
extern int xcecli_fetchfile(xcecli_ctx_t, xce_fetchfile_t*, xce_fetchfile_reply_t**);
#endif

View file

@ -36,4 +36,5 @@ extern int cbuf_put(cbuf_t*, void*);
extern int cbuf_tryput(cbuf_t*, void*);
extern int cbuf_get(cbuf_t*, void*);
extern int cbuf_tryget(cbuf_t*, void*);
extern int cbuf_timedget(cbuf_t*, void*, const struct timespec*);
#endif

View file

@ -69,6 +69,7 @@ extern int xce_hostctrl_req(endpoint_t*, xce_hostctrl_t*);
extern int xce_runtask_req(endpoint_t*, xce_taskrun_t*);
extern int xce_set_pend_reason_req(endpoint_t*, xce_preason_set_t*);
extern int xce_clear_reason_req(endpoint_t*, xce_clear_reason_t*);
extern int xce_fetchfile_req(endpoint_t*, xce_fetchfile_t*);
/*
* xce_replconfigpush_req_raw: send OP_replConfigPush carrying raw byte arrays.

View file

@ -264,6 +264,7 @@ typedef struct {
state_report_t* state_report;
wal_ack_reply_t* walackreplymsg;
xce_ctrlstatus_t* ctrlstatus;
xce_fetchfile_reply_t* fetchfilereply;
} data;
/* Req 7: standby redirect fields — populated when status == XCE_ERR_STANDBY */
char *redirect_host;
@ -302,6 +303,7 @@ typedef struct {
request_vote_req_t* requestvotemsg;
wal_catchup_entry_t* walcatchupentrymsg;
snapshot_transfer_t* snapshottransfermsg;
xce_fetchfile_t* fetchfilemsg;
} body;
} xce_request_t;

View file

@ -784,4 +784,19 @@ typedef struct {
xce_limit_t* limit;
} xce_vres_t;
typedef struct {
uint64_t jobid;
char* filepath;
uint64_t offset;
uint32_t max_bytes;
} xce_fetchfile_t;
typedef struct {
int32_t error;
uint8_t* content;
uint64_t file_size;
uint32_t bytes_read;
uint64_t jobid; /* echoed from request for pending-request matching */
} xce_fetchfile_reply_t;
#endif

View file

@ -34,5 +34,6 @@ extern int xce_update_jusage(xce_ctx_t*, uint64_t, int, int*, int, int*, int,
extern int xce_set_pend_reason(xce_ctx_t*, xce_preason_set_t*);
extern int xce_clear_reason(xce_ctx_t*, xce_clear_reason_t*);
extern int xce_jobinfo(xce_ctx_t*, uint64_t, xce_job_t**);
extern int xce_fetchfile(xce_ctx_t*, xce_fetchfile_t*, xce_fetchfile_reply_t**);
#endif

View file

@ -40,11 +40,12 @@ typedef struct {
struct {
union {
char* debugmsg;
dataset_t* get;
uint64_t jobid;
xce_clusterconf_t* clusterconf;
xce_ctrlstatus_t* ctrlstatus;
char* debugmsg;
dataset_t* get;
uint64_t jobid;
xce_clusterconf_t* clusterconf;
xce_ctrlstatus_t* ctrlstatus;
xce_fetchfile_reply_t* fetchfilereply;
} u;
} reply;
} xce_ctx_t;