Package com.espertech.esper.epl.named

Source Code of com.espertech.esper.epl.named.NamedWindowProcessorInstance

/**************************************************************************************
* Copyright (C) 2008 EsperTech, Inc. All rights reserved.                            *
* http://esper.codehaus.org                                                          *
* http://www.espertech.com                                                           *
* ---------------------------------------------------------------------------------- *
* The software in this package is published under the terms of the GPL license       *
* a copy of which has been included with this distribution in the license.txt file.  *
**************************************************************************************/
package com.espertech.esper.epl.named;

import com.espertech.esper.core.context.factory.StatementAgentInstancePostLoad;
import com.espertech.esper.core.context.util.AgentInstanceContext;

/**
* An instance of this class is associated with a specific named window. The processor
* provides the views to create-window, on-delete statements and statements selecting from a named window.
*/
public class NamedWindowProcessorInstance
{
    private final Integer agentInstanceId;
    private final NamedWindowTailViewInstance tailViewInstance;
    private final NamedWindowRootViewInstance rootViewInstance;

    public NamedWindowProcessorInstance(Integer agentInstanceId, NamedWindowProcessor processor, AgentInstanceContext agentInstanceContext) {
        this.agentInstanceId = agentInstanceId;
        rootViewInstance = new NamedWindowRootViewInstance(processor.getRootView(), agentInstanceContext);
        tailViewInstance = new NamedWindowTailViewInstance(rootViewInstance, processor.getTailView(), agentInstanceContext);
        rootViewInstance.setDataWindowContents(tailViewInstance);   // for iteration used for delete without index
    }

    public NamedWindowTailViewInstance getTailViewInstance() {
        return tailViewInstance;
    }

    public NamedWindowRootViewInstance getRootViewInstance() {
        return rootViewInstance;
    }

    /**
     * Returns the number of events held.
     * @return number of events
     */
    public long getCountDataWindow()
    {
        return tailViewInstance.getNumberOfEvents();
    }

    /**
     * Deletes a named window and removes any associated resources.
     */
    public void destroy()
    {
        tailViewInstance.destroy();
        rootViewInstance.destroy();
    }

    public IndexMultiKey[] getIndexDescriptors() {
        return rootViewInstance.getIndexes();
    }

    public Integer getAgentInstanceId() {
        return agentInstanceId;
    }

    public StatementAgentInstancePostLoad getPostLoad() {
        return new StatementAgentInstancePostLoad() {
            public void executePostLoad() {
                rootViewInstance.postLoad();
            }
        };
    }
}
TOP

Related Classes of com.espertech.esper.epl.named.NamedWindowProcessorInstance

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.