singrdk/base/Contracts/ServiceManager.Contracts/BenchmarkContract.sg

76 lines
2.7 KiB
Plaintext

///////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
using System;
using Microsoft.Singularity;
using Microsoft.Singularity.Directory;
namespace Microsoft.Singularity.Services
{
contract BenchmarkContract : ServiceContract
{
public const string ModuleName = "/RBench";
public const string ModuleNameProxy = "/RBenchProxy";
out message Success();
in message GetCycleCount();
out message CycleCount(ulong cycle);
in message Null();
out message AckNull();
in message One(int arg);
out message AckOne(int arg);
in message Two(int arg1, int arg2);
out message AckTwo(int arg1, int arg2);
in message Three(int arg1, int arg2, int arg3);
out message AckThree(int arg1, int arg2, int arg3);
in message Four(int arg1, int arg2, int arg3, int arg4);
out message AckFour(int arg1, int arg2, int arg3, int arg4);
in message Five(int arg1, int arg2, int arg3, int arg4, int arg5);
out message AckFive(int arg1, int arg2, int arg3, int arg4, int arg5);
in message Six(int arg1, int arg2, int arg3, int arg4, int arg5, int arg6);
out message AckSix(int arg1, int arg2, int arg3, int arg4, int arg5, int arg6);
in message Seven(int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7);
out message AckSeven(int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7);
in message Eight(int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8);
out message AckEight(int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8);
in message Nine(int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9);
out message AckNine(int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9);
in message EndOfBenchmark();
out message AckEnd();
override state Start : one {
Success! -> Ready;
}
state Ready : one {
GetCycleCount? -> CycleCount! -> Ready;
Null? -> AckNull! -> Ready;
One? -> AckOne! -> Ready;
Two? -> AckTwo! -> Ready;
Three? -> AckThree! -> Ready;
Four? -> AckFour! -> Ready;
Five? -> AckFive! -> Ready;
Six? -> AckSix! -> Ready;
Seven? -> AckSeven! -> Ready;
Eight? -> AckEight! -> Ready;
Nine? -> AckNine! -> Ready;
EndOfBenchmark? -> AckEnd!;
}
}
}