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

// 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;
}