Note: Goby version 1 (shown here) is now considered obsolete. Please use version 2 for new projects, and consider upgrading old projects.

Goby Underwater Autonomy Project  Series: 1.1, revision: 163, released on 2013-02-06 14:23:27 -0500
protobuf/queue.proto
00001 // provides MessageFile
00002 import "goby/protobuf/xml_config.proto";
00003 import "goby/protobuf/option_extensions.proto";
00004 
00005 package goby.acomms.protobuf;
00006 
00007 enum QueueType
00008 {
00009   QUEUE_DCCL = 1;
00010   QUEUE_CCL = 2;
00011 };
00012 
00013 message QueueConfig
00014 {
00015   optional bool ack = 1 [default = true, (description)="Require acoustic acknowledgments of messages sent from this queue"];
00016   optional uint32 blackout_time = 2 [default = 0, (description)="Time in seconds to ignore this queue after the last send from it."];
00017   optional uint32 max_queue = 3 [default = 0, (description)="Maximum allowed messages in this queue (0 means infinity)."];
00018   optional bool newest_first = 4 [default = true, (description)="true = FILO queue, false = FIFO queue"];
00019   optional double value_base = 5 [default = 1, (description)="Base value (general importance) of the messages in this queue"];
00020   optional uint32 ttl = 6 [default = 1800, (description)="Time to live in seconds; messages exceeding this time are discarded. Also factors into priority equation"];
00021   optional QueueKey key = 7;
00022   required string name = 8 [(description)="Human readable name for this queue", (example)="Remus_State"];
00023   optional string in_pubsub_var = 9 [(description)="Publish subscribe architecture variable for posting incoming data to", (example)="REMUS_STATE_RAW_IN"];
00024   optional string out_pubsub_var = 10 [(description)="Publish subscribe architecture variable for fetching outgoing data from", (example)="REMUS_STATE_RAW_OUT"];
00025   
00026 }
00027 
00028 message QueueKey
00029 {
00030   required QueueType type = 1 [default = QUEUE_DCCL, (description)="Type of messages in this queue"];
00031   required uint32 id = 2 [(description)="DCCL ID for QUEUE_DCCL, CCL Identifier (first) byte for QUEUE_CCL", (example)="14"];
00032 }
00033 
00034 message QueueManagerConfig
00035 {
00036   optional int32 modem_id = 1 [(description)="Unique number 1-31 to identify this node", (example)="1"];
00037   repeated MessageFile message_file = 2 [(description)="XML message file containing one or more DCCL message descriptions. Use for specifying DCCL queues."];
00038   repeated QueueConfig queue = 3 [(description)="Use for specifying CCL queues; use message_file for DCCL queues."];
00039 }
00040 
00041 
00042 message QueueSize
00043 {
00044   required QueueKey key = 1;
00045   required uint32 size = 2;
00046 }
00047 
00048 message QueueFlush
00049 {
00050   required QueueKey key = 1;
00051 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends