syntax = "proto3"; import "google/protobuf/empty.proto"; package local; service LocalCache { rpc Get (GetRequest) returns (GetReply) {} rpc Drop (DropRequest) returns (google.protobuf.Empty) {} rpc Heartbeat (HeartbeatRequest) returns (google.protobuf.Empty) {} rpc Done (DoneRequest) returns (google.protobuf.Empty) {} } message GetRequest { string namespace = 1; bytes key = 2; bool assign = 3; } message GetReply { oneof entry_status { google.protobuf.Empty unassigned = 1; AssignReply assign = 2; google.protobuf.Empty loading = 3; ReadyReply ready = 4; } } message AssignReply { uint64 id = 1; string path = 2; uint64 heartbeat_interval_ms = 3; } message ReadyReply { uint64 id = 1; string path = 2; } message DropRequest { uint64 id = 1; } message HeartbeatRequest { uint64 id = 1; } message SetRequest { uint64 id = 1; bytes value = 2; } message DoneRequest { uint64 id = 1; }