Compare commits
No commits in common. "8c3ee80b21278eaa6fb29f73b79c16d443923dfa" and "4ba28c6ed3b952a06aba8ae96220c429d4d02365" have entirely different histories.
8c3ee80b21
...
4ba28c6ed3
26
xC-proto
26
xC-proto
@ -8,12 +8,11 @@ struct CommandMessage {
|
||||
u32 command_seq;
|
||||
union CommandData switch (enum Command {
|
||||
HELLO,
|
||||
PING,
|
||||
ACTIVE,
|
||||
BUFFER_COMPLETE,
|
||||
BUFFER_INPUT,
|
||||
BUFFER_ACTIVATE,
|
||||
PING_RESPONSE,
|
||||
PING,
|
||||
BUFFER_COMPLETE,
|
||||
BUFFER_LOG,
|
||||
} command) {
|
||||
case HELLO:
|
||||
@ -21,24 +20,19 @@ struct CommandMessage {
|
||||
// If the version check succeeds, the client will receive
|
||||
// an initial stream of BUFFER_UPDATE, BUFFER_LINE,
|
||||
// and finally a BUFFER_ACTIVATE message.
|
||||
case ACTIVE:
|
||||
void;
|
||||
case BUFFER_INPUT:
|
||||
string buffer_name;
|
||||
string text;
|
||||
case BUFFER_ACTIVATE:
|
||||
string buffer_name;
|
||||
case PING_RESPONSE:
|
||||
u32 event_seq;
|
||||
|
||||
// Only these commands may produce Event.RESPONSE, as below,
|
||||
// but any command may produce an error.
|
||||
case PING:
|
||||
void;
|
||||
case ACTIVE:
|
||||
void;
|
||||
case BUFFER_COMPLETE:
|
||||
string buffer_name;
|
||||
string text;
|
||||
u32 position;
|
||||
case BUFFER_INPUT:
|
||||
string buffer_name;
|
||||
string text;
|
||||
case BUFFER_ACTIVATE:
|
||||
string buffer_name;
|
||||
case BUFFER_LOG:
|
||||
string buffer_name;
|
||||
} data;
|
||||
@ -135,8 +129,6 @@ struct EventMessage {
|
||||
case RESPONSE:
|
||||
u32 command_seq;
|
||||
union ResponseData switch (Command command) {
|
||||
case PING:
|
||||
void;
|
||||
case BUFFER_COMPLETE:
|
||||
u32 start;
|
||||
string completions<>;
|
||||
|
24
xC.c
24
xC.c
@ -3189,16 +3189,6 @@ relay_prepare_error (struct app_context *ctx, uint32_t seq, const char *message)
|
||||
e->error = str_from_cstr (message);
|
||||
}
|
||||
|
||||
static struct relay_event_data_response *
|
||||
relay_prepare_response (struct app_context *ctx, uint32_t seq)
|
||||
{
|
||||
struct relay_event_message *m = relay_prepare (ctx);
|
||||
struct relay_event_data_response *e = &m->data.response;
|
||||
e->event = RELAY_EVENT_RESPONSE;
|
||||
e->command_seq = seq;
|
||||
return e;
|
||||
}
|
||||
|
||||
// --- Terminal output ---------------------------------------------------------
|
||||
|
||||
/// Default colour pair
|
||||
@ -15277,8 +15267,12 @@ client_process_buffer_complete (struct client *c, uint32_t seq,
|
||||
goto out_internal;
|
||||
}
|
||||
|
||||
struct relay_event_data_response *e = relay_prepare_response (c->ctx, seq);
|
||||
struct relay_event_data_response *e =
|
||||
&relay_prepare (c->ctx)->data.response;
|
||||
e->event = RELAY_EVENT_RESPONSE;
|
||||
e->command_seq = seq;
|
||||
e->data.command = RELAY_COMMAND_BUFFER_COMPLETE;
|
||||
|
||||
struct relay_response_data_buffer_complete *resp =
|
||||
&e->data.buffer_complete;
|
||||
resp->start = start;
|
||||
@ -15297,7 +15291,10 @@ static void
|
||||
client_process_buffer_log
|
||||
(struct client *c, uint32_t seq, struct buffer *buffer)
|
||||
{
|
||||
struct relay_event_data_response *e = relay_prepare_response (c->ctx, seq);
|
||||
struct relay_event_data_response *e =
|
||||
&relay_prepare (c->ctx)->data.response;
|
||||
e->event = RELAY_EVENT_RESPONSE;
|
||||
e->command_seq = seq;
|
||||
e->data.command = RELAY_COMMAND_BUFFER_LOG;
|
||||
|
||||
char *path = buffer_get_log_path (buffer);
|
||||
@ -15360,8 +15357,7 @@ client_process_message (struct client *c,
|
||||
client_resync (c);
|
||||
break;
|
||||
case RELAY_COMMAND_PING:
|
||||
relay_prepare_response (c->ctx, m->command_seq)
|
||||
->data.command = RELAY_COMMAND_PING;
|
||||
relay_prepare_ping (c->ctx);
|
||||
relay_send (c);
|
||||
break;
|
||||
case RELAY_COMMAND_ACTIVE:
|
||||
|
@ -85,8 +85,7 @@ class RelayRpc extends EventTarget {
|
||||
if (typeof e.event !== 'string')
|
||||
throw "Invalid event tag"
|
||||
|
||||
this.dispatchEvent(new CustomEvent(
|
||||
e.event, {detail: {eventSeq: message.eventSeq, ...e}}))
|
||||
this.dispatchEvent(new CustomEvent(e.event, {detail: e}))
|
||||
|
||||
// Minor abstraction layering violation.
|
||||
m.redraw()
|
||||
@ -154,10 +153,6 @@ rpc.addEventListener('close', event => {
|
||||
m.redraw()
|
||||
})
|
||||
|
||||
rpc.addEventListener('Ping', event => {
|
||||
rpc.send({command: 'PingResponse', eventSeq: event.detail.eventSeq})
|
||||
})
|
||||
|
||||
rpc.addEventListener('BufferUpdate', event => {
|
||||
let e = event.detail, b = buffers.get(e.bufferName)
|
||||
if (b === undefined) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user