Logo
Distributed Genetic Programming Framework
print print

File org.sfc.net.p2p.SocketBuffer.java

Here you can find all the information about the file org.sfc.net.p2p.SocketBuffer.java. You may explore it here or download it onto your local disk.
/*
 * Copyright (c) 2006 Thomas Weise
 *
 * E-Mail           : tweise@gmx.de
 * Creation Date    : 2006-02-27 10:10:49
 * Original Filename: org.sfc.net.p2p.SocketBuffer.java
 * Version          : 3.1.0
 * Last modification: 2006-05-12
 *                by: Thomas Weise
 *
 * License          : GNU LESSER GENERAL PUBLIC LICENSE
 *                    Version 2.1, February 1999
 *                    You should have received a copy of this license along
 *                    with this library; if not, write to the Free Software
 *                    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 *                    MA 02111-1307, USA or download the license under
 *                    http://www.gnu.org/copyleft/lesser.html.
 *
 * Warranty         : This software is provided "as is" without any
 *                    warranty; without even the implied warranty of
 *                    merchantability or fitness for a particular purpose.
 *                    See the Gnu Lesser General Public License for more
 *                    details.
 */


package org.sfc.net.p2p;

import java.net.Socket;

import org.sfc.collections.CircularBuffer;

/**
 * The p2p-buffer for sockets to be processed. This circular buffer is
 * filled by the server thread and keeps sockets for the socket thread.
 * @see SocketThread
 * @author Thomas Weise
 */

final class SocketBuffer  extends CircularBuffer<Socket>
  {
/**
 * The count of sockets to buffer.
 */

  private static  final int BUFFER_LEN  = 4;

/**
 * The owning p2p node.
 */

  private final PeerToPeer  m_owner ;

/**
 * Create a new socket buffer.
 * @param p_owner   The owning peer node.
 */

  SocketBuffer  (final PeerToPeer p_owner)
    {
    super(Socket.class, BUFFER_LEN);
    this.m_owner = p_owner;
    }


/**
 * This method will be called whenever the buffer overflows and an item
 * should be determined to be dropped. If none can be found, the new item
 * will be dropped. This method returns <code>true</code> if the specified
 * old item can be dropped and the new one can be buffered instead.
 * @param p_old_item    The old item to be maybe dropped.
 * @param p_new_item    The new item, which could possible replace the old
 *                      one.
 * @return  <code>true</code> if and only if the new item may replace the
 *          old one, <code>false</code> if the old item should be kept.
 */

  @Override
  protected final boolean can_drop  (final Socket p_old_item,
                                     final Socket p_new_item)
    {
    return true;
    }

/**
 * This method will be called whenever an item gets dropped.
 * @param p_item  The item to be dropped from the buffer.
 */

  @Override
  protected final void  drop  (final Socket p_item)
    {
    this.m_owner.do_close_socket(p_item);
    }
  }

File Information:

file name:SocketBuffer.java
package:org.sfc.net.p2p
qualified name:org.sfc.net.p2p.SocketBuffer.java
file type:Java Source File
download location:download http://dgpf.sourceforge.net/source/org/sfc/net/p2p/SocketBuffer.java
size:2.820 KB (2888 B)
uploaded: 2015-07-22 04:11:12 GMT+0000
last update: 2006-05-12 12:45:54 GMT+0000
last access: 2018-01-20 18:37:05 GMT+0000

statistics online since 2006-01-02.   RSS Feed
Contact us by sending an email to tweise@gmx.de to receive further information, to report errors, or to join our project.
All content on this site (http://dgpf.sourceforge.net/) is LGPL-licensed.
http://dgpf.sourceforge.net/scripts/source/source.php last modified at 2015-07-22 04:10:53 GMT+0000 served at 2018-01-20 18:37:05 GMT+0000.
Valid CSS Valid XHTML 1.1
Valid RSS SourceForge.net Logo