Goby3 3.2.3
2025.05.13
Loading...
Searching...
No Matches
file_transfer.proto
Go to the documentation of this file.
1syntax = "proto2";
2import "dccl/option_extensions.proto";
3
4package goby.acomms.protobuf;
5
6message FileFragment
7{
8 option (dccl.msg).id = 7;
9 option (dccl.msg).max_bytes = 64;
10 option (dccl.msg).codec_version = 3;
11
12 required int32 src = 1 [
13 (dccl.field).min = -1,
14 (dccl.field).max = 62,
15 (dccl.field).in_head = true
16 ];
17 required int32 dest = 2 [
18 (dccl.field).min = -1,
19 (dccl.field).max = 62,
20 (dccl.field).in_head = true
21 ];
22
23 required int32 fragment = 3 [
24 (dccl.field).min = 0,
25 (dccl.field).max = 18079
26 ]; // max file: 1048576 / data length: 58
27
28 required bool is_last_fragment = 4;
29
30 required int32 num_bytes = 5 [(dccl.field).min = 1, (dccl.field).max = 58];
31 required bytes data = 6 [(dccl.field).max_length = 58];
32}
33
34message TransferRequest
35{
36 option (dccl.msg).id = 8;
37 option (dccl.msg).max_bytes = 64;
38 option (dccl.msg).codec_version = 3;
39
40 required int32 src = 1 [
41 (dccl.field).min = -1,
42 (dccl.field).max = 62,
43 (dccl.field).in_head = true
44 ];
45 required int32 dest = 2 [
46 (dccl.field).min = -1,
47 (dccl.field).max = 62,
48 (dccl.field).in_head = true
49 ];
50
51 enum PushPull
52 {
53 PUSH = 1;
54 PULL = 2;
55 }
56 required PushPull push_or_pull = 3 [(dccl.field).in_head = true];
57 required string file = 10 [(dccl.field).max_length = 60];
58}
59
60message TransferResponse
61{
62 option (dccl.msg).id = 9;
63 option (dccl.msg).max_bytes = 64;
64 option (dccl.msg).codec_version = 3;
65
66 required int32 src = 1 [
67 (dccl.field).min = -1,
68 (dccl.field).max = 62,
69 (dccl.field).in_head = true
70 ];
71 required int32 dest = 2 [
72 (dccl.field).min = -1,
73 (dccl.field).max = 62,
74 (dccl.field).in_head = true
75 ];
76
77 required bool transfer_successful = 3;
78
79 enum ErrorCode
80 {
81 COULD_NOT_READ_FILE = 1;
82 FILE_TOO_LARGE = 2;
83 TIMEOUT = 3;
84 COULD_NOT_WRITE_FILE = 4;
85 ERROR_WHILE_READING = 5;
86 OTHER_ERROR = 6;
87 }
88 optional ErrorCode error = 4;
89
90 optional int32 num_fragments = 5 [
91 (dccl.field).min = 0,
92 (dccl.field).max = 18079
93 ]; // max file: 1048576 / data length: 58
94}