private bool SetPublishingEnabled(bool enabled)
{
try
{
UInt32Collection subscriptionIds = new UInt32Collection();
lock (m_subscriptions)
{
for (int ii = 0; ii < m_subscriptions.Count; ii++)
{
subscriptionIds.Add(m_subscriptions[ii].SubscriptionId);
m_subscriptions[ii].PublishingEnabled = enabled;
}
}
RequestHeader requestHeader = new RequestHeader();
requestHeader.ReturnDiagnostics = 0;
StatusCodeCollection results;
DiagnosticInfoCollection diagnosticInfos;
Session.SetPublishingMode(
requestHeader,
enabled,
subscriptionIds,
out results,
out diagnosticInfos);
ClientBase.ValidateResponse(results, subscriptionIds);
ClientBase.ValidateDiagnosticInfos(diagnosticInfos, subscriptionIds);
if (diagnosticInfos != null && diagnosticInfos.Count > 0)
{
Log("Returned non-empty DiagnosticInfos array during SetPublishingMode.");
return false;
}
bool success = true;
for (int ii = 0; ii < results.Count; ii++)
{
if (StatusCode.IsBad(results[ii]))
{
Log(
"Unexpected error setting publish enable state for subscription {0}. StatusCode = {1}",
subscriptionIds[ii],
subscriptionIds);
success = false;
}
}
return success;
}
catch (Exception e)
{
Log(e, "SetPublishingMode Failed.");
return false;
}
}