All Downloads are FREE. Search and download functionalities are using the official Maven repository.

widebase.stream.socket.SocketLike.scala Maven / Gradle / Ivy

The newest version!
package widebase.stream.socket

import org.jboss.netty.channel.ChannelHandler

import scala.collection.mutable.LinkedHashMap

import vario.filter. { CompressionLevel, StreamFilter }

/** A common trait to build client/server sockets.
 *
 * @author myst3r10n
 */
trait SocketLike {

  import vario.filter.StreamFilter.StreamFilter

  /** Pipeline. */
  val pipeline = new LinkedHashMap[String, ChannelHandler]

  /** Inbound filter. */
  var inFilter = StreamFilter.None

  /** Compression level. */
  var level = CompressionLevel.Default

  /** Outbound filter. */
  var outFilter = StreamFilter.None

  /** port of server. */
  var port = 50000

  /** Setup I/O filter.
   *
   * @param filter to setup
   *
   */
  def filter(filter: String) = {

    inFilter =
      if(filter.contains("rg"))
        StreamFilter.Gzip
      else if(filter.contains("rz"))
        StreamFilter.Zlib
      else
        StreamFilter.None

    outFilter =
      if(filter.contains("wg"))
        StreamFilter.Gzip
      else if(filter.contains("wz"))
        StreamFilter.Zlib
      else
        StreamFilter.None

    level =
      if(!filter.contains("l"))
        CompressionLevel.Default
      else if(filter.contains("l0"))
        0
      else if(filter.contains("l1"))
        1
      else if(filter.contains("l2"))
        2
      else if(filter.contains("l3"))
        3
      else if(filter.contains("l4"))
        4
      else if(filter.contains("l5"))
        5
      else if(filter.contains("l6"))
        6
      else if(filter.contains("l7"))
        7
      else if(filter.contains("l8"))
        8
      else if(filter.contains("l9"))
        9
      else
        CompressionLevel.Default

    this

  }
}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy