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