33 lines
848 B
Plaintext
33 lines
848 B
Plaintext
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// Microsoft Research Singularity
|
||
|
//
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
//
|
||
|
// File: ServiceProviderContract.sg
|
||
|
//
|
||
|
|
||
|
//
|
||
|
// Every leaf in the Directory communicates to a service by connecting through this contract
|
||
|
//
|
||
|
|
||
|
namespace Microsoft.Singularity.Directory
|
||
|
{
|
||
|
contract ServiceProviderContract
|
||
|
{
|
||
|
in message Connect(ServiceContract.Exp:Start! exp);
|
||
|
out message AckConnect();
|
||
|
out message NackConnect(ServiceContract.Exp:Start exp);
|
||
|
// return the unconnected endpoint if possible.
|
||
|
|
||
|
state Start: Connect? -> Ack;
|
||
|
|
||
|
state Ack: one
|
||
|
{
|
||
|
AckConnect! -> Start;
|
||
|
NackConnect! -> Start;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|