Goby3  3.1.5
2024.05.14
interprocess_config.proto
Go to the documentation of this file.
1 syntax = "proto2";
2 import "goby/protobuf/option_extensions.proto";
3 
4 package goby.zeromq.protobuf;
5 
6 message InterProcessPortalConfig
7 {
8  optional string platform = 1 [
9  default = "default_goby_platform",
10  (goby.field) = {
11  description: "Name for this platform (vehicle name, mooring name, topside name, "
12  "etc.)"
13  }
14  ];
15 
16  enum Transport
17  {
18  IPC = 2;
19  TCP = 3;
20  };
21 
22  optional Transport transport = 2 [
23  default = IPC,
24  (goby.field).description =
25  "Transport to use: IPC uses UNIX sockets and is only suitable for "
26  "single machine interprocess, TCP uses Internet Protocol and is "
27  "suitable for any reasonably high-speed LAN"
28  ];
29  optional string socket_name = 3
30  [(goby.field).description =
31  "For transport == IPC, the path to the socket file to use for "
32  "comms with the Manager (gobyd). If omitted, defaults to "
33  "\"/tmp/goby_{platform}.manager"];
34 
35  oneof ip
36  {
37  string ipv4_address = 4 [
38  default = "127.0.0.1",
39  (goby.field).description =
40  "For transport == TCP, IPv4 address for the Manager (gobyd)"
41  ];
42  string ip_address = 11 [
43  (goby.field).description =
44  "For transport == TCP, IPv4 or IPv6 address for the Manager (gobyd)"
45  ];
46  }
47 
48  optional uint32 tcp_port = 5 [
49  default = 11144,
50  (goby.field).description =
51  "For transport == TCP, TCP port for the Manager (gobyd)"
52  ];
53 
54  optional uint32 send_queue_size = 6 [
55  default = 1000,
56  (goby.field).description =
57  "Queue size for outbound messages, i.e. ZMQ_SNDHWM",
58  (goby.field).cfg = { action: ADVANCED }
59  ];
60  optional uint32 receive_queue_size = 7 [
61  default = 1000,
62  (goby.field).description =
63  "Queue size for inbound messages, i.e. ZMQ_RCVHWM",
64  (goby.field).cfg = { action: ADVANCED }
65  ];
66  optional uint32 zeromq_number_io_threads = 8 [
67  default = 4,
68  (goby.field).description =
69  "Number of threads for zmq::context_t (first constructor "
70  "argument)",
71  (goby.field).cfg = { action: DEVELOPER }
72  ];
73 
74  optional uint32 manager_timeout_seconds = 10 [
75  default = 5,
76  (goby.field).description =
77  "How long to wait for a ManagerResponse before assuming the "
78  "Manager (gobyd) is unresponsive",
79  (goby.field).cfg = { action: ADVANCED }
80  ];
81 
82  optional string client_name = 20 [
83  (goby.field).description =
84  "Unique name for InterProcessPortal. Defaults to app.name",
85  (goby.field).cfg = { action: ADVANCED }
86  ];
87 }
88 
89 message InterProcessManagerHold
90 {
91  repeated string required_client = 1 [
92  (goby.field).description =
93  "List of required clients to be connected before hold is released"
94  ];
95  // optional int32 timeout_seconds = 2 [default = 10,
96  // (goby.field).description = "Timeout for all required clients
97  // connecting"];
98 }