internal virtual Lightstreamer.DotNet.Client.SubscribedTableKey[] SubscrItems(VirtualTableManager table, bool batchable)
{
int num;
object obj2;
Lightstreamer.DotNet.Client.SubscribedTableKey[] subscrKeys = new Lightstreamer.DotNet.Client.SubscribedTableKey[table.NumItems];
actionsLogger.Info(string.Concat(new object[] { "Adding ", table, " to session ", this.localPushServerProxy.SessionId }));
lock ((obj2 = this.tables.SyncRoot))
{
for (num = 0; num < table.NumItems; num++)
{
subscrKeys[num] = this.localPushServerProxy.WindowCode;
this.tables[subscrKeys[num].KeyValue] = table.GetItemManager(num);
}
}
bool flag = false;
try
{
this.localPushServerProxy.RequestItemsSubscr(table, subscrKeys, batchable ? this.batchMonitor : null);
flag = true;
}
finally
{
if (!flag)
{
actionsLogger.Info(string.Concat(new object[] { "Undoing add of ", table, " to session ", this.localPushServerProxy.SessionId }));
lock ((obj2 = this.tables.SyncRoot))
{
for (num = 0; num < subscrKeys.Length; num++)
{
this.tables.Remove(subscrKeys[num].KeyValue);
}
}
}
}
return(subscrKeys);
}