|
@@ -13,6 +13,13 @@ impl CallMsg for Open {
|
|
|
}
|
|
|
|
|
|
protocol! {
|
|
|
+ let name = FsProtocol;
|
|
|
+ let states = [
|
|
|
+ ServerInit, Listening,
|
|
|
+ Client,
|
|
|
+ FileInit, Open, Opened,
|
|
|
+ FileHandle,
|
|
|
+ ];
|
|
|
ServerInit?Activate -> Listening;
|
|
|
|
|
|
Client -> Client, service(Listening)!Query;
|
|
@@ -20,16 +27,16 @@ protocol! {
|
|
|
Client?Query::Reply -> Client;
|
|
|
|
|
|
Client -> Client, service(Listening)!Open;
|
|
|
- Listening?Open -> Listening, Opened, Client!Open::Reply;
|
|
|
- Client?Open::Reply -> Client, FileHandle;
|
|
|
+ Listening?Open -> Listening, Opened, Client!Open::Reply[Opened];
|
|
|
+ Client?Open::Reply[Opened] -> Client, FileHandle[Opened];
|
|
|
|
|
|
FileInit?Activate -> FileInit;
|
|
|
FileInit?Open -> Opened;
|
|
|
|
|
|
- FileHandle -> FileHandle, Opened!FileOp;
|
|
|
+ FileHandle[Opened] -> FileHandle[Opened], Opened!FileOp;
|
|
|
Opened?FileOp -> Opened, Client!FileOp::Reply;
|
|
|
- FileClient?FileOp::Reply -> FileClient;
|
|
|
+ FileHandle?FileOp::Reply -> FileClient;
|
|
|
|
|
|
- FileClient -> End, Opened!Close;
|
|
|
+ FileHandle[Opened] -> End, Opened!Close;
|
|
|
Opened?Close -> End;
|
|
|
}
|