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  (dccl.field).in_head=true];
18 
19  optional int64 time_signed = 20 [(dccl.field).codec="_time",
20  (dccl.field).in_head=true];
21  optional double time_double = 21 [(dccl.field).codec="_time",
22  (dccl.field).in_head=true];
23  optional double pasttime_double = 22 [(dccl.field).codec="_time",
24  (dccl.field).num_days=6,
25  (dccl.field).in_head=true];
26  optional double futuretime_double = 23 [(dccl.field).codec="_time",
27  (dccl.field).num_days=6,
28  (dccl.field).in_head=true];
29 
30  // microsecond precision
31  optional int64 time_precision = 24 [(dccl.field).codec="_time",
32  (dccl.field).in_head=true,
33  (dccl.field).precision=-3];
34  optional double time_double_precision = 25 [(dccl.field).codec="_time",
35  (dccl.field).in_head=true,
36  (dccl.field).precision=6];
37 
38  //
39  // source
40  //
41  required int32 source_platform = 11 [(dccl.field).min = 0,
42  (dccl.field).max = 31,
43  (dccl.field).in_head=true];
44  optional string source_app = 12 [(dccl.field).omit=true];
45 
46  //
47  // destination
48  //
49  enum PublishDestination { PUBLISH_SELF = 1; PUBLISH_OTHER = 2; PUBLISH_ALL = 3; }
50  optional PublishDestination dest_type = 13 [default = PUBLISH_SELF, (dccl.field).in_head=true];
51 
52  optional int32 dest_platform = 14 [(dccl.field).min = 0,
53  (dccl.field).max = 31,
54  (dccl.field).in_head=true]; // required if dest_type == other
55 
56 }