33 lines
990 B
Plaintext
33 lines
990 B
Plaintext
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// Microsoft Research Singularity
|
||
|
//
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
//
|
||
|
// Note: Contract used by SMTP Agents to talk to storage.
|
||
|
//
|
||
|
|
||
|
using Microsoft.Singularity.Channels;
|
||
|
using Microsoft.Singularity.Directory;
|
||
|
using Microsoft.Singularity.Endpoint;
|
||
|
|
||
|
using Microsoft.Singularity.Extending;
|
||
|
|
||
|
namespace Microsoft.Singularity.Email.Contracts
|
||
|
{
|
||
|
public contract AntiVirusContract : ExtensionContract //ServiceContract
|
||
|
{
|
||
|
public const string ModuleName = "/service/antivirus";
|
||
|
|
||
|
out message AntiVirusReady();
|
||
|
|
||
|
in message CheckFile(byte[]! in ExHeap buffer);
|
||
|
out message FileClean();
|
||
|
out message FileContaminated(char[]! in ExHeap virus);
|
||
|
|
||
|
override state Start : AntiVirusReady! -> ReadyState;
|
||
|
state ReadyState : CheckFile? -> (FileClean! or FileContaminated!) -> ReadyState;
|
||
|
|
||
|
}
|
||
|
}
|