| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- using Astralis;
- namespace Spry {
- public class ContinuationContext : Object {
- public SseStream sse_stream { get; private set;}
- private Component component;
- public ContinuationContext(Component component, SseStream stream) {
- this.sse_stream = stream;
- this.component = component;
- }
- public async void send_dynamic(string dynamic_name) throws Error {
- var fragment = yield this.component.get_dynamic_section(dynamic_name);
- yield sse_stream.send_event(new SseEvent.with_type(@"_spry-dynamic-$dynamic_name", fragment.body.inner_html));
- }
- public async void send_json(string event_type, Json.Node node) throws Error {
- var json = Json.to_string(node, false);
- yield sse_stream.send_event(new SseEvent.with_type(event_type, json));
- }
- public async void send_string(string event_type, string data) throws Error {
- yield sse_stream.send_event(new SseEvent.with_type(event_type, data));
- }
- public async void send_full_update(string event_type) throws Error {
- var doc = yield component.to_document();
- string data;
- if(component.get_type().is_a(typeof(PageComponent))) {
- data = doc.to_html();
- }
- else {
- data = doc.body.inner_html;
- }
- yield sse_stream.send_event(new SseEvent.with_type(event_type, data));
- }
- public async void send_event(SseEvent event) throws Error {
- yield sse_stream.send_event(event);
- }
-
- }
- }
|