| // Copyright 2009 Google Inc. All Rights Reserved. |
| |
| package polo.wire.protobuf; |
| |
| //removing deprecated option. |
| //refer go/namespacing-nano for additional details. |
| //option javanano_use_deprecated_package = true; |
| option java_outer_classname = "PoloProto"; |
| option java_package = "com.google.polo.wire.protobuf"; |
| option optimize_for = LITE_RUNTIME; |
| |
| // OuterMessage - base outer message type used in the protocol. |
| |
| message OuterMessage { |
| |
| // MessageType indicates the type of the enclosed message (serialized in the |
| // `payload` field) |
| enum MessageType { |
| // Initialization phase |
| MESSAGE_TYPE_PAIRING_REQUEST = 10; |
| MESSAGE_TYPE_PAIRING_REQUEST_ACK = 11; |
| |
| // Configuration phase |
| MESSAGE_TYPE_OPTIONS = 20; |
| MESSAGE_TYPE_CONFIGURATION = 30; |
| MESSAGE_TYPE_CONFIGURATION_ACK = 31; |
| |
| // Pairing phase |
| MESSAGE_TYPE_SECRET = 40; |
| MESSAGE_TYPE_SECRET_ACK = 41; |
| } |
| |
| // Protocol status states. |
| enum Status { |
| STATUS_OK = 200; |
| STATUS_ERROR = 400; |
| STATUS_BAD_CONFIGURATION = 401; |
| STATUS_BAD_SECRET = 402; |
| } |
| |
| required uint32 protocol_version = 1 [default = 1]; |
| |
| // Protocol status. Any status other than STATUS_OK implies a fault. |
| required Status status = 2; |
| |
| // Encapsulated message. These fields are required if status is STATUS_OK. |
| optional MessageType type = 3; |
| optional bytes payload = 4; |
| |
| } |
| |
| |
| // |
| // Initialization messages |
| // |
| |
| message PairingRequest { |
| // String name of the service to pair with. The name used should be an |
| // established convention of the application protocol. |
| required string service_name = 1; |
| |
| // Descriptive name of the client. |
| optional string client_name = 2; |
| } |
| |
| message PairingRequestAck { |
| // Descriptive name of the server. |
| optional string server_name = 1; |
| } |
| |
| |
| // |
| // Configuration messages |
| // |
| |
| message Options { |
| message Encoding { |
| enum EncodingType { |
| ENCODING_TYPE_UNKNOWN = 0; |
| ENCODING_TYPE_ALPHANUMERIC = 1; |
| ENCODING_TYPE_NUMERIC = 2; |
| ENCODING_TYPE_HEXADECIMAL = 3; |
| ENCODING_TYPE_QRCODE = 4; |
| } |
| |
| required EncodingType type = 1; |
| required uint32 symbol_length = 2; |
| } |
| |
| enum RoleType { |
| ROLE_TYPE_UNKNOWN = 0; |
| ROLE_TYPE_INPUT = 1; |
| ROLE_TYPE_OUTPUT = 2; |
| } |
| |
| // List of encodings this endpoint accepts when serving as an input device. |
| repeated Encoding input_encodings = 1; |
| |
| // List of encodings this endpoint can generate as an output device. |
| repeated Encoding output_encodings = 2; |
| |
| // Preferred role, if any. |
| optional RoleType preferred_role = 3; |
| } |
| |
| message Configuration { |
| // The encoding to be used in this session. |
| required Options.Encoding encoding = 1; |
| |
| // The role of the client (ie, the one initiating pairing). This implies the |
| // peer (server) acts as the complementary role. |
| required Options.RoleType client_role = 2; |
| } |
| |
| message ConfigurationAck { |
| } |
| |
| |
| // |
| // Pairing messages |
| // |
| |
| message Secret { |
| required bytes secret = 1; |
| } |
| |
| message SecretAck { |
| required bytes secret = 1; |
| } |
| |