1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
package server
import "core:fmt"
import "core:encoding/json"
send_notification :: proc (notification: Notification, writer: ^Writer) -> bool {
data, error := json.marshal(notification, context.temp_allocator)
header := fmt.tprintf("Content-Length: %v\r\n\r\n", len(data))
if error != nil {
return false
}
if !write_sized(writer, transmute([]u8)header) {
return false
}
if !write_sized(writer, data) {
return false
}
return true
}
send_response :: proc (response: ResponseMessage, writer: ^Writer) -> bool {
data, error := json.marshal(response, context.temp_allocator)
header := fmt.tprintf("Content-Length: %v\r\n\r\n", len(data))
if error != nil {
return false
}
if !write_sized(writer, transmute([]u8)header) {
return false
}
if !write_sized(writer, data) {
return false
}
return true
}
send_error :: proc (response: ResponseMessageError, writer: ^Writer) -> bool {
data, error := json.marshal(response, context.temp_allocator)
header := fmt.tprintf("Content-Length: %v\r\n\r\n", len(data))
if error != nil {
return false
}
if !write_sized(writer, transmute([]u8)header) {
return false
}
if !write_sized(writer, data) {
return false
}
return true
}
|