/*
Copyright 2012 Google Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

syntax = "proto2";

package testpb;

message TestMessage {
  optional string name = 1;
  optional string city = 2;
}

message TestRequest {
  required string lower = 1; // to be returned upper case
  optional int32 repeat_count = 2 [default = 1]; // .. this many times
}

message TestResponse {
  optional string value = 1;
}

message CacheStats {
  optional int64 items = 1;
  optional int64 bytes = 2;
  optional int64 gets = 3;
  optional int64 hits = 4;
  optional int64 evicts = 5;
}

message StatsResponse {
  optional int64 gets = 1;
  optional int64 cache_hits = 12;
  optional int64 fills = 2;
  optional uint64 total_alloc = 3;
  optional CacheStats main_cache = 4;
  optional CacheStats hot_cache = 5;
  optional int64 server_in = 6;
  optional int64 loads = 8;
  optional int64 peer_loads = 9;
  optional int64 peer_errors = 10;
  optional int64 local_loads = 11;
}

message Empty {}

service GroupCacheTest {
  rpc InitPeers(Empty) returns (Empty) {};
  rpc Get(TestRequest) returns (TestResponse) {};
  rpc GetStats(Empty) returns (StatsResponse) {};
}
