public virtual ServiceResult SubscribeToEvents(
OperationContext context,
object sourceId,
uint subscriptionId,
IEventMonitoredItem monitoredItem,
bool unsubscribe)
{
ServerSystemContext systemContext = SystemContext.Copy(context);
lock (Lock)
{
// check for valid handle.
NodeHandle handle = IsHandleInNamespace(sourceId);
if (handle == null)
{
return StatusCodes.BadNodeIdInvalid;
}
// check for valid node.
NodeState source = ValidateNode(systemContext, handle, null);
if (source == null)
{
return StatusCodes.BadNodeIdUnknown;
}
// subscribe to events.
return SubscribeToEvents(systemContext, source, monitoredItem, unsubscribe);
}
}