public IServiceResponse Publish(IServiceRequest incoming)
{
PublishResponse response = null;
try
{
OnRequestReceived(incoming);
PublishRequest request = (PublishRequest)incoming;
uint subscriptionId = 0;
UInt32Collection availableSequenceNumbers = null;
bool moreNotifications = false;
NotificationMessage notificationMessage = null;
StatusCodeCollection results = null;
DiagnosticInfoCollection diagnosticInfos = null;
response = new PublishResponse();
response.ResponseHeader = ServerInstance.Publish(
request.RequestHeader,
request.SubscriptionAcknowledgements,
out subscriptionId,
out availableSequenceNumbers,
out moreNotifications,
out notificationMessage,
out results,
out diagnosticInfos);
response.SubscriptionId = subscriptionId;
response.AvailableSequenceNumbers = availableSequenceNumbers;
response.MoreNotifications = moreNotifications;
response.NotificationMessage = notificationMessage;
response.Results = results;
response.DiagnosticInfos = diagnosticInfos;
}
finally
{
OnResponseSent(response);
}
return response;
}