mirror of https://github.com/grpc/grpc.git
The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
https://grpc.io/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
2.1 KiB
91 lines
2.1 KiB
// Copyright 2021 gRPC authors. |
|
// |
|
// 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 = "proto3"; |
|
|
|
package promise_fuzzer; |
|
|
|
message Seq { |
|
Promise first = 1; |
|
repeated PromiseFactory promise_factories = 2; |
|
} |
|
|
|
message Join { |
|
repeated Promise promises = 1; |
|
} |
|
|
|
message Race { |
|
repeated Promise promises = 1; |
|
} |
|
|
|
message Last {} |
|
|
|
message PromiseFactory { |
|
oneof promise_factory_type { |
|
// Return a specific promise |
|
Promise promise = 1; |
|
// Return the result of the last thing |
|
Last last = 2; |
|
} |
|
} |
|
|
|
message Never {} |
|
|
|
message ScheduleWaker { |
|
bool owning = 1; |
|
int32 waker = 2; |
|
} |
|
|
|
message Promise { |
|
oneof promise_type { |
|
// Seq combinator |
|
Seq seq = 1; |
|
// Join combinator |
|
Join join = 2; |
|
// Race combinator |
|
Race race = 3; |
|
// Never complete |
|
Never never = 4; |
|
// Sleep n times, then wakeup |
|
int32 sleep_first_n = 5; |
|
// Cancel and be pending |
|
Cancel cancel_from_inside = 6; |
|
// Wait for waker n, then continue |
|
ScheduleWaker wait_once_on_waker = 7; |
|
} |
|
} |
|
|
|
message Cancel {} |
|
|
|
message Wakeup {} |
|
|
|
message Action { |
|
oneof action_type { |
|
// Activity::ForceWakeup |
|
Wakeup force_wakeup = 1; |
|
// Cancel the activity |
|
Cancel cancel = 2; |
|
// Flush any pending scheduled wakeups |
|
Wakeup flush_wakeup = 3; |
|
// Awake waker n if it exists |
|
int32 awake_waker = 4; |
|
// Drop waker n if it exists |
|
int32 drop_waker = 5; |
|
} |
|
} |
|
|
|
message Msg { |
|
Promise promise = 1; |
|
repeated Action actions = 2; |
|
}
|
|
|