singrdk/base/Applications/EmailServer/MailStore/MailStoreContracts.sg

39 lines
1.2 KiB
Plaintext
Raw Permalink Normal View History

2008-11-17 18:29:00 -05:00
///////////////////////////////////////////////////////////////////////////////
//
// Microsoft Research Singularity
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// Note: Contract used by SMTP Agents to talk to the mail store.
//
using Microsoft.Singularity.Channels;
using Microsoft.Singularity.Directory;
using Microsoft.Singularity.Endpoint;
using Microsoft.Singularity.Extending;
namespace Microsoft.Singularity.Email.Contracts
{
public contract MailStoreContract : ExtensionContract //ServiceContract
{
public const string ModuleName = "/service/mailstore";
out message MailStoreReady();
in message GetAddressList();
out message GetAck(char[]! in ExHeap addresses);
in message SaveMessage(char[]! in ExHeap accounts,
byte[]! in ExHeap buffer);
out message SaveAck();
out message SaveNak(int error);
override state Start : MailStoreReady! -> ReadyState;
state ReadyState : one {
SaveMessage? -> (SaveAck! or SaveNak!) -> ReadyState;
GetAddressList? -> (GetAck!) -> ReadyState;
}
}
}