Dryad/CommonCode/IDryadVertexCallback.cs

81 lines
2.2 KiB
C#

/*
Copyright (c) Microsoft Corporation
All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License
at http://www.apache.org/licenses/LICENSE-2.0
THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER
EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF
TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
See the Apache Version 2.0 License for specific language governing permissions and
limitations under the License.
*/
namespace Microsoft.Research.Dryad
{
using System;
using System.Collections.Generic;
using System.ServiceModel;
using System.Runtime.Serialization;
[DataContract]
public class ProcessStatistics
{
[DataMember]
public uint flags;
[DataMember]
public long processUserTime;
[DataMember]
public long processKernelTime;
[DataMember]
public int pageFaults;
[DataMember]
public int totalProcessesCreated;
[DataMember]
public ulong peakVMUsage;
[DataMember]
public ulong peakMemUsage;
[DataMember]
public ulong memUsageSeconds;
[DataMember]
public ulong totalIo;
};
[DataContract]
public class ProcessInfo
{
[DataMember]
public uint flags;
[DataMember]
public ProcessState processState;
[DataMember]
public uint processStatus;
[DataMember]
public uint exitCode;
[DataMember]
public ProcessPropertyInfo[] propertyInfos;
[DataMember]
public ProcessStatistics processStatistics;
};
[ServiceContract(SessionMode = SessionMode.Allowed)]
public interface IDryadVertexCallback
{
[OperationContract]
void FireStateChange(int processId, ProcessState newState);
[OperationContract]
void SetGetPropsComplete(int processId, ProcessInfo info, string[] propertyLabels, ulong[] propertyVersions);
[OperationContract]
void ProcessExited(int processId, int exitCode);
}
}