Beispiel #1
0
        public int Clear(StatementContext statementContext)
        {
            var numCleared = 0;

            // un-assign any assigned expressions
            if (statementContext.ContextName == null) {
                statementContext.StatementAIFactoryProvider.Unassign();
            }

            var statementResourceService = statementContext.StatementCPCacheService.StatementResourceService;

            if (!IsContextPartitioned) {
                if (statementResourceService.ResourcesUnpartitioned != null) {
                    statementResourceService.DeallocateUnpartitioned();
                    numCleared++;
                }

                return numCleared;
            }

            var agentInstanceIds = statementResourceService.ResourcesPartitioned.Keys.ToArray();
            foreach (var agentInstanceId in agentInstanceIds) {
                statementAgentInstanceRegistry.Deassign(agentInstanceId);
            }

            foreach (var agentInstanceId in agentInstanceIds) {
                statementResourceService.DeallocatePartitioned(agentInstanceId);
                numCleared++;
            }

            return numCleared;
        }