/* *************************************************************************************** * Copyright (C) 2006 EsperTech, Inc. All rights reserved. * * http://www.espertech.com/esper * * 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.supportunit.view; import com.espertech.esper.collection.FlushedEventBuffer; import com.espertech.esper.view.internal.BufferObserver; public class SupportBufferObserver implements BufferObserver { private boolean hasNewData; private int streamId; private FlushedEventBuffer newEventBuffer; private FlushedEventBuffer oldEventBuffer; public boolean getAndResetHasNewData() { boolean result = hasNewData; hasNewData = false; return result; } public void newData(int streamId, FlushedEventBuffer newEventBuffer, FlushedEventBuffer oldEventBuffer) { if (hasNewData == true) { throw new IllegalStateException("Observer already has new data"); } hasNewData = true; this.streamId = streamId; this.newEventBuffer = newEventBuffer; this.oldEventBuffer = oldEventBuffer; } public int getAndResetStreamId() { int id = streamId; streamId = 0; return id; } public FlushedEventBuffer getAndResetNewEventBuffer() { FlushedEventBuffer buf = newEventBuffer; newEventBuffer = null; return buf; } public FlushedEventBuffer getAndResetOldEventBuffer() { FlushedEventBuffer buf = oldEventBuffer; oldEventBuffer = null; return buf; } }