blob: 40f1d4fb714fe20acf3027d74c698ebe39b70dc8 [file] [log] [blame]
library fidl.test.protocols;
// This is not a reference to library zx to avoid complexity in the test data.
// A local handle is defined here that contains subtypes that this test cares
// about.
enum obj_type : uint32 {
NONE = 0;
SOCKET = 14;
};
resource_definition handle : uint32 {
properties {
obj_type subtype;
};
};
protocol WithAndWithoutRequestResponse {
NoRequestNoResponse();
NoRequestEmptyResponse() -> ();
NoRequestWithResponse() -> (string ret);
WithRequestNoResponse(string arg);
WithRequestEmptyResponse(string arg) -> ();
WithRequestWithResponse(string arg) -> (string ret);
-> OnEmptyResponse();
-> OnWithResponse(string ret);
};
enum ErrorEnun {
ERR_FOO = 1;
ERR_BAR = 2;
};
protocol WithErrorSyntax {
ResponseAsStruct() -> (int64 a, int64 b, int64 c) error uint32;
ErrorAsPrimitive() -> () error uint32;
ErrorAsEnum() -> () error ErrorEnun;
};
[Transport = "Channel"]
protocol ChannelProtocol {
MethodA(int64 a, int64 b);
-> EventA(int64 a, int64 b);
MethodB(int64 a, int64 b) -> (int64 result);
TakeHandle(handle h) -> ();
MutateSocket(handle:SOCKET a) -> (handle:SOCKET b);
};
protocol Transitional {
[Transitional]
Request(int64 x) -> (int64 y);
[Transitional]
OneWay(int64 x);
[Transitional]
-> Event(int64 x);
};
[Discoverable]
protocol DiscoverableProtocol {
Method();
};