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; | 	u32 command_seq; | ||||||
| 	union CommandData switch (enum Command { | 	union CommandData switch (enum Command { | ||||||
| 		HELLO, | 		HELLO, | ||||||
|  | 		PING, | ||||||
| 		ACTIVE, | 		ACTIVE, | ||||||
|  | 		BUFFER_COMPLETE, | ||||||
| 		BUFFER_INPUT, | 		BUFFER_INPUT, | ||||||
| 		BUFFER_ACTIVATE, | 		BUFFER_ACTIVATE, | ||||||
| 		PING_RESPONSE, |  | ||||||
| 		PING, |  | ||||||
| 		BUFFER_COMPLETE, |  | ||||||
| 		BUFFER_LOG, | 		BUFFER_LOG, | ||||||
| 	} command) { | 	} command) { | ||||||
| 	case HELLO: | 	case HELLO: | ||||||
| @ -21,24 +20,19 @@ struct CommandMessage { | |||||||
| 		// If the version check succeeds, the client will receive | 		// If the version check succeeds, the client will receive | ||||||
| 		// an initial stream of BUFFER_UPDATE, BUFFER_LINE, | 		// an initial stream of BUFFER_UPDATE, BUFFER_LINE, | ||||||
| 		// and finally a BUFFER_ACTIVATE message. | 		// 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: | 	case PING: | ||||||
| 		void; | 		void; | ||||||
|  | 	case ACTIVE: | ||||||
|  | 		void; | ||||||
| 	case BUFFER_COMPLETE: | 	case BUFFER_COMPLETE: | ||||||
| 		string buffer_name; | 		string buffer_name; | ||||||
| 		string text; | 		string text; | ||||||
| 		u32 position; | 		u32 position; | ||||||
|  | 	case BUFFER_INPUT: | ||||||
|  | 		string buffer_name; | ||||||
|  | 		string text; | ||||||
|  | 	case BUFFER_ACTIVATE: | ||||||
|  | 		string buffer_name; | ||||||
| 	case BUFFER_LOG: | 	case BUFFER_LOG: | ||||||
| 		string buffer_name; | 		string buffer_name; | ||||||
| 	} data; | 	} data; | ||||||
| @ -135,8 +129,6 @@ struct EventMessage { | |||||||
| 	case RESPONSE: | 	case RESPONSE: | ||||||
| 		u32 command_seq; | 		u32 command_seq; | ||||||
| 		union ResponseData switch (Command command) { | 		union ResponseData switch (Command command) { | ||||||
| 		case PING: |  | ||||||
| 			void; |  | ||||||
| 		case BUFFER_COMPLETE: | 		case BUFFER_COMPLETE: | ||||||
| 			u32 start; | 			u32 start; | ||||||
| 			string completions<>; | 			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); | 	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 ---------------------------------------------------------
 | // --- Terminal output ---------------------------------------------------------
 | ||||||
| 
 | 
 | ||||||
| /// Default colour pair
 | /// Default colour pair
 | ||||||
| @ -15277,8 +15267,12 @@ client_process_buffer_complete (struct client *c, uint32_t seq, | |||||||
| 		goto out_internal; | 		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; | 	e->data.command = RELAY_COMMAND_BUFFER_COMPLETE; | ||||||
|  | 
 | ||||||
| 	struct relay_response_data_buffer_complete *resp = | 	struct relay_response_data_buffer_complete *resp = | ||||||
| 		&e->data.buffer_complete; | 		&e->data.buffer_complete; | ||||||
| 	resp->start = start; | 	resp->start = start; | ||||||
| @ -15297,7 +15291,10 @@ static void | |||||||
| client_process_buffer_log | client_process_buffer_log | ||||||
| 	(struct client *c, uint32_t seq, struct buffer *buffer) | 	(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; | 	e->data.command = RELAY_COMMAND_BUFFER_LOG; | ||||||
| 
 | 
 | ||||||
| 	char *path = buffer_get_log_path (buffer); | 	char *path = buffer_get_log_path (buffer); | ||||||
| @ -15360,8 +15357,7 @@ client_process_message (struct client *c, | |||||||
| 		client_resync (c); | 		client_resync (c); | ||||||
| 		break; | 		break; | ||||||
| 	case RELAY_COMMAND_PING: | 	case RELAY_COMMAND_PING: | ||||||
| 		relay_prepare_response (c->ctx, m->command_seq) | 		relay_prepare_ping (c->ctx); | ||||||
| 			->data.command = RELAY_COMMAND_PING; |  | ||||||
| 		relay_send (c); | 		relay_send (c); | ||||||
| 		break; | 		break; | ||||||
| 	case RELAY_COMMAND_ACTIVE: | 	case RELAY_COMMAND_ACTIVE: | ||||||
|  | |||||||
| @ -85,8 +85,7 @@ class RelayRpc extends EventTarget { | |||||||
| 			if (typeof e.event !== 'string') | 			if (typeof e.event !== 'string') | ||||||
| 				throw "Invalid event tag" | 				throw "Invalid event tag" | ||||||
| 
 | 
 | ||||||
| 			this.dispatchEvent(new CustomEvent( | 			this.dispatchEvent(new CustomEvent(e.event, {detail: e})) | ||||||
| 				e.event, {detail: {eventSeq: message.eventSeq, ...e}})) |  | ||||||
| 
 | 
 | ||||||
| 			// Minor abstraction layering violation.
 | 			// Minor abstraction layering violation.
 | ||||||
| 			m.redraw() | 			m.redraw() | ||||||
| @ -154,10 +153,6 @@ rpc.addEventListener('close', event => { | |||||||
| 	m.redraw() | 	m.redraw() | ||||||
| }) | }) | ||||||
| 
 | 
 | ||||||
| rpc.addEventListener('Ping', event => { |  | ||||||
| 	rpc.send({command: 'PingResponse', eventSeq: event.detail.eventSeq}) |  | ||||||
| }) |  | ||||||
| 
 |  | ||||||
| rpc.addEventListener('BufferUpdate', event => { | rpc.addEventListener('BufferUpdate', event => { | ||||||
| 	let e = event.detail, b = buffers.get(e.bufferName) | 	let e = event.detail, b = buffers.get(e.bufferName) | ||||||
| 	if (b === undefined) { | 	if (b === undefined) { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user