130 lines
2.9 KiB
Protocol Buffer
130 lines
2.9 KiB
Protocol Buffer
// 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;
|
|
}
|
|
|