public static void CheckAssets(SessionState sessionState, IEnumerable <AssetSpec> propSpecs) { try { using (var assetStream = new AssetStream()) { foreach (var propSpec in propSpecs) { if (!inboundQueue.ContainsKey(propSpec.id)) { if (!assetStream.Open(propSpec)) { var assetQuery = new MSG_ASSETQUERY { assetType = LegacyAssetTypes.RT_PROP, assetSpec = propSpec, }; sessionState.Send(assetQuery, EventTypes.MSG_ASSETQUERY, 0); } } } } } catch (Exception ex) { ex.DebugLog(); } }
public static void OutboundQueueTransfer(SessionState sessionState, AssetSpec assetSpec) { var assetStream = new AssetStream(); if (assetStream.Open(assetSpec)) { lock (outboundQueue) { outboundQueue.Enqueue(new AssetState { sessionState = sessionState, assetStream = assetStream, }); } ThreadController.manageAssetsOutboundQueueSignalEvent.Set(); } }