File: structs.proto

package info (click to toggle)
syncthing 1.0.0~ds1-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 11,096 kB
  • sloc: xml: 1,028; sh: 219; makefile: 61
file content (62 lines) | stat: -rw-r--r-- 2,361 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
syntax = "proto3";

package db;

import "github.com/gogo/protobuf/gogoproto/gogo.proto";
import "github.com/syncthing/syncthing/lib/protocol/bep.proto";

option (gogoproto.goproto_getters_all) = false;
option (gogoproto.sizer_all) = false;
option (gogoproto.protosizer_all) = true;

message FileVersion {
    protocol.Vector version = 1 [(gogoproto.nullable) = false];
    bytes           device  = 2;
    bool            invalid = 3;
}

message VersionList {
    option (gogoproto.goproto_stringer) = false;
    repeated FileVersion versions = 1 [(gogoproto.nullable) = false];
}

// Must be the same as FileInfo but without the blocks field
message FileInfoTruncated {
    option (gogoproto.goproto_stringer) = false;
    string                name           = 1;
    protocol.FileInfoType type           = 2;
    int64                 size           = 3;
    uint32                permissions    = 4;
    int64                 modified_s     = 5;
    int32                 modified_ns    = 11;
    uint64                modified_by    = 12 [(gogoproto.customtype) = "github.com/syncthing/syncthing/lib/protocol.ShortID", (gogoproto.nullable) = false];
    bool                  deleted        = 6;
    bool                  invalid        = 7 [(gogoproto.customname) = "RawInvalid"];
    bool                  no_permissions = 8;
    protocol.Vector       version        = 9 [(gogoproto.nullable) = false];
    int64                 sequence       = 10;
    int32                 block_size     = 13 [(gogoproto.customname) = "RawBlockSize"];
    // repeated BlockInfo Blocks         = 16
    string                symlink_target = 17;

    // see bep.proto
    uint32 local_flags = 1000;
}

// For each folder and device we keep one of these to track the current
// counts and sequence. We also keep one for the global state of the folder.
message Counts {
    int32  files       = 1;
    int32  directories = 2;
    int32  symlinks    = 3;
    int32  deleted     = 4;
    int64  bytes       = 5;
    int64  sequence    = 6; // zero for the global state
    bytes  deviceID    = 17; // device ID for remote devices, or special values for local/global
    uint32 localFlags  = 18; // the local flag for this count bucket
}

message CountsSet {
    repeated Counts counts  = 1  [(gogoproto.nullable) = false];
    int64           created = 2; // unix nanos
}