Goby3  3.1.5
2024.05.14
file_transfer.proto
Go to the documentation of this file.
1 syntax = "proto2";
2 import "goby/protobuf/option_extensions.proto";
3 import "dccl/option_extensions.proto";
4 
5 package goby.acomms.protobuf;
6 
7 message 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 
35 message 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 
61 message 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 }