/* * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.addthis.hydra.data.query.op; import com.addthis.basis.util.MemoryCounter; import com.addthis.bundle.core.Bundle; import com.addthis.hydra.data.query.AbstractQueryOp; import com.addthis.hydra.data.query.QueryMemTracker; import com.addthis.hydra.data.query.QueryOp; import io.netty.channel.ChannelProgressivePromise; public class OpForward extends AbstractQueryOp { @MemoryCounter.Mem(estimate = false) private QueryOp forwardingTarget; protected OpForward(ChannelProgressivePromise opPromise, QueryOp forwardingTarget) { super(opPromise); this.forwardingTarget = forwardingTarget; } @Override public void send(Bundle bundle) { forwardingTarget.send(bundle); } public void setForwardingTarget(QueryOp forwardingTarget) { this.forwardingTarget = forwardingTarget; } @Override public void sendComplete() { // sendComplete messages suppressed by this operation } @Override public void setNext(QueryMemTracker memTracker, QueryOp next) { throw new UnsupportedOperationException("OpForward must terminate a sub-pipeline"); } }