public ServiceResult OnGetMonitoredItems(
ISystemContext context,
MethodState method,
IList<object> inputArguments,
IList<object> outputArguments)
{
if (inputArguments == null || inputArguments.Count != 1)
{
return StatusCodes.BadInvalidArgument;
}
uint? subscriptionId = inputArguments[0] as uint?;
if (subscriptionId == null)
{
return StatusCodes.BadInvalidArgument;
}
uint[] serverHandles = null;
uint[] clientHandles = null;
foreach (Subscription subscription in Server.SubscriptionManager.GetSubscriptions())
{
if (subscription.Id == subscriptionId)
{
subscription.GetMonitoredItems(out serverHandles, out clientHandles);
outputArguments[0] = serverHandles;
outputArguments[1] = clientHandles;
return ServiceResult.Good;
}
}
return StatusCodes.BadSubscriptionIdInvalid;
}