DCCL v3
header.proto
1 
2 import "dccl/option_extensions.proto";
3 package dccl.test;
4 
5 // required fields will be filled in for you by ApplicationBase
6 // if you choose not to do so yourself
7 message Header
8 {
9  //
10  // time
11  //
12 
13  // microseconds since Unix
14 
15  // second precision (default)
16  required uint64 time = 10 [(dccl.field).codec="_time"];
17 
18  optional int64 time_signed = 20 [(dccl.field).codec="_time"];
19  optional double time_double = 21 [(dccl.field).codec="_time"];
20  optional double pasttime_double = 22 [(dccl.field).codec="_time",
21  (dccl.field).num_days=6];
22  optional double futuretime_double = 23 [(dccl.field).codec="_time",
23  (dccl.field).num_days=6];
24 
25  // microsecond precision
26  optional int64 time_precision = 24 [(dccl.field).codec="_time",
27  (dccl.field).precision=-3];
28  optional double time_double_precision = 25 [(dccl.field).codec="_time",
29  (dccl.field).precision=6];
30 
31  //
32  // source
33  //
34  required int32 source_platform = 11 [(dccl.field).min = 0,
35  (dccl.field).max = 31];
36  optional string source_app = 12 [(dccl.field).omit=true];
37 
38  //
39  // destination
40  //
41  enum PublishDestination { PUBLISH_SELF = 1; PUBLISH_OTHER = 2; PUBLISH_ALL = 3; }
42  optional PublishDestination dest_type = 13 [default = PUBLISH_SELF];
43 
44  optional int32 dest_platform = 14 [(dccl.field).min = 0,
45  (dccl.field).max = 31]; // required if dest_type == other
46 
47 }