package org.apache.samoa.topology.impl;

/*
 * #%L
 * SAMOA
 * %%
 * Copyright (C) 2013 Yahoo! Inc.
 * %%
 * 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.
 * #L%
 */

import org.apache.samoa.core.EntranceProcessor;
import org.apache.samoa.topology.LocalEntranceProcessingItem;

/**
 * EntranceProcessingItem for multithreaded engine.
 * 
 * @author Anh Thu Vu
 * 
 */
public class ThreadsEntranceProcessingItem extends LocalEntranceProcessingItem {

  public ThreadsEntranceProcessingItem(EntranceProcessor processor) {
    super(processor);
  }

  // The default waiting time when there is no available events is 100ms
  // Override waitForNewEvents() to change it

}
