Skip to content

Commit 833a41c

Browse files
Update myshell.h
1 parent 04694d8 commit 833a41c

File tree

1 file changed

+106
-1
lines changed

1 file changed

+106
-1
lines changed

code/logic/fossil/crabdb/myshell.h

Lines changed: 106 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -506,7 +506,6 @@ int64_t
506506
fossil_bluecrab_myshell_parse_duration_seconds(const char *duration_str,
507507
fossil_bluecrab_myshell_error_t *out_err);
508508

509-
510509
// -------------------------------
511510
// Bootstrapping utilities (schema / builtins)
512511
// -------------------------------
@@ -519,6 +518,112 @@ fossil_bluecrab_myshell_load_datafile(fossil_bluecrab_myshell_t *db,
519518
const char *datafile_path,
520519
fossil_bluecrab_myshell_error_t *out_err);
521520

521+
// -------------------------------
522+
// Commit history iteration
523+
// -------------------------------
524+
525+
/** Iterate commits in a branch (newest → oldest). */
526+
typedef bool (*fossil_bluecrab_myshell_commit_iter_cb)(
527+
const fossil_bluecrab_myshell_commit_t *commit, void *user);
528+
529+
fossil_bluecrab_myshell_error_t
530+
fossil_bluecrab_myshell_iter_commits(fossil_bluecrab_myshell_t *db,
531+
const char *branch_name,
532+
fossil_bluecrab_myshell_commit_iter_cb cb,
533+
void *user);
534+
535+
// -------------------------------
536+
// Replication / sync
537+
// -------------------------------
538+
539+
/** Push local commits to a remote (URL or path). */
540+
fossil_bluecrab_myshell_error_t
541+
fossil_bluecrab_myshell_sync_push(fossil_bluecrab_myshell_t *db,
542+
const char *remote_url);
543+
544+
/** Pull commits from a remote into local. */
545+
fossil_bluecrab_myshell_error_t
546+
fossil_bluecrab_myshell_sync_pull(fossil_bluecrab_myshell_t *db,
547+
const char *remote_url);
548+
549+
// -------------------------------
550+
// Schema inspection
551+
// -------------------------------
552+
553+
/** List table names. Caller frees array. */
554+
char **
555+
fossil_bluecrab_myshell_list_tables(fossil_bluecrab_myshell_t *db,
556+
size_t *out_count);
557+
558+
/** List index names. Caller frees array. */
559+
char **
560+
fossil_bluecrab_myshell_list_indexes(fossil_bluecrab_myshell_t *db,
561+
size_t *out_count);
562+
563+
564+
// -------------------------------
565+
// Streaming API for large data
566+
// -------------------------------
567+
568+
/** Streaming handle (opaque). */
569+
typedef struct fossil_bluecrab_myshell_stream_t fossil_bluecrab_myshell_stream_t;
570+
571+
/** Open a stream for a large blob or FSON field. Mode = "r" or "w". */
572+
fossil_bluecrab_myshell_stream_t *
573+
fossil_bluecrab_myshell_stream_open(fossil_bluecrab_myshell_t *db,
574+
const char *key,
575+
const char *mode,
576+
fossil_bluecrab_myshell_error_t *out_err);
577+
578+
/** Read from stream. */
579+
size_t
580+
fossil_bluecrab_myshell_stream_read(fossil_bluecrab_myshell_stream_t *s,
581+
void *buf,
582+
size_t n,
583+
fossil_bluecrab_myshell_error_t *out_err);
584+
585+
/** Write to stream. */
586+
size_t
587+
fossil_bluecrab_myshell_stream_write(fossil_bluecrab_myshell_stream_t *s,
588+
const void *buf,
589+
size_t n,
590+
fossil_bluecrab_myshell_error_t *out_err);
591+
592+
/** Close and free stream. */
593+
fossil_bluecrab_myshell_error_t
594+
fossil_bluecrab_myshell_stream_close(fossil_bluecrab_myshell_stream_t *s);
595+
596+
597+
// -------------------------------
598+
// Savepoints / checkpoints
599+
// -------------------------------
600+
601+
/** Lightweight savepoints (nested transactions). */
602+
fossil_bluecrab_myshell_error_t
603+
fossil_bluecrab_myshell_savepoint(fossil_bluecrab_myshell_txn_t *txn,
604+
const char *name);
605+
606+
fossil_bluecrab_myshell_error_t
607+
fossil_bluecrab_myshell_release_savepoint(fossil_bluecrab_myshell_txn_t *txn,
608+
const char *name);
609+
610+
fossil_bluecrab_myshell_error_t
611+
fossil_bluecrab_myshell_rollback_to_savepoint(fossil_bluecrab_myshell_txn_t *txn,
612+
const char *name);
613+
614+
615+
// -------------------------------
616+
// Event hooks / callbacks
617+
// -------------------------------
618+
619+
/** Event callback signature (event string, e.g. "commit", "merge", "record.put"). */
620+
typedef void (*fossil_bluecrab_myshell_event_cb)(const char *event, void *user);
621+
622+
/** Install an event callback. */
623+
void
624+
fossil_bluecrab_myshell_set_event_callback(fossil_bluecrab_myshell_t *db,
625+
fossil_bluecrab_myshell_event_cb cb,
626+
void *user);
522627

523628
// -------------------------------
524629
// Debug / introspection

0 commit comments

Comments
 (0)