Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## cnrg.itx.datax
Class Channel

    java.lang.Object
      |
      +--cnrg.itx.datax.Channel

Direct Known Subclasses:
  ChannelBuffer, DummyChannel, MixerChannel

public class Channel
extends java.lang.Object
implements java.lang.Runnable, Statistics, Properties

Class representing a channel in the `Connection` object. A `Channel` acts as a pipe between a `Source` and all the `Destination` objects and copies data between them.

Field Summary
`protected boolean` | `closed` Flag for specifying if the channel has been closed
`protected java.util.Vector` | `destinations` Attribute to store the list of destination objects.
`static int` | `INPUT` Constant to specify that a channel is an input channel.
`protected int` | `mode` Attribute to hold the mode of the channel
`static int` | `OTHER` Constant to specify that a channel is neither an output nor input channel (maybe a hybrid).
`static int` | `OUTPUT` Constant to specify that a channel is an output channel.
`protected java.io.PipedInputStream` | `pipedInput` Input pipe
`protected java.io.PipedOutputStream` | `pipedOutput`
`protected java.lang.Thread` | `readerThread` Reader thread
`protected boolean` | `running` Flag for specifying if the channel is running.
`static int` | `SAMPLE_SIZE` Default channel sample size
`protected int` | `sampleSize` Sample size
`protected Source` | `source` Attribute to store the source object.

Constructor Summary
`Channel()` Default constructor for a channel.
`Channel(int sampleSize)` Constructor for a channel.

Method Summary
`void` | `addDestination(Destination d)` Method to add a destination for the Channel.
`void` | `close()` Method to close the Channel.
`private int` | `getMode(int mode)` Method to get the mode for the channel.
`PropertiesCollection` | `getProperties()` Gets the properties for this audioConnection
`Source` | `getSource()` Method to get the source for the Channel.
`Stats` | `getStatistics()` Method to get the statistics from the channel.
`void` | `mute(boolean state)` Method to mute all the sources and destinations
`void` | `open()` Method to open the Channel.
`void` | `push(byte[] bData)` Method that receives the data from the source.
`void` | `removeAllDestinations()` Method to remove all destinations.
`boolean` | `removeDestination(Destination d)` Method to remove a destination from the list.
`void` | `run()` Channel reader thread function.
`private void` | `setMode(int mode)` Method to set the mode for the Channel.
`void` | `setPeerProperties(PropertiesCollection pc)` Interface to set the given properties collection into the device.
`void` | `setProperties(PropertiesCollection pc)` Sets the properties for this audioConnection
`void` | `setSource(Source source)` Method to set the source for the Channel.

Methods inherited from class java.lang.Object
`, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait`

Field Detail

### SAMPLE_SIZE

    public static final int SAMPLE_SIZE

  Default channel sample size

### INPUT

    public static final int INPUT

  Constant to specify that a channel is an input channel.

### OUTPUT

    public static final int OUTPUT

  Constant to specify that a channel is an output channel.

### OTHER

    public static final int OTHER

  Constant to specify that a channel is neither an output nor input channel (maybe a hybrid).

### mode

    protected int mode

  Attribute to hold the mode of the channel

### source

    protected Source source

  Attribute to store the source object.

### destinations

    protected java.util.Vector destinations

  Attribute to store the list of destination objects.

### running

    protected boolean running

  Flag for specifying if the channel is running.

### closed

    protected boolean closed

  Flag for specifying if the channel has been closed

### pipedInput

    protected java.io.PipedInputStream pipedInput

  Input pipe

### pipedOutput

    protected java.io.PipedOutputStream pipedOutput

### readerThread

    protected java.lang.Thread readerThread

  Reader thread

### sampleSize

    protected int sampleSize

  Sample size

Constructor Detail

### Channel

    public Channel()

  Default constructor for a channel. Constructs a null channel.

### Channel

    public Channel(int sampleSize)

  Constructor for a channel. Constructs a null channel.
  Parameters:
    `sampleSize` - size (in bytes) read by the channel read thread

Method Detail

### setSource

    public void setSource(Source source)

  Method to set the source for the Channel.
  Parameters:
    `source` - The Source for the Channel

### getSource

    public Source getSource()

  Method to get the source for the Channel.
  Returns:
    Source The Channel's Source object

### setMode

    private void setMode(int mode)

  Method to set the mode for the Channel.
  Parameters:
    `mode` - The new mode

### getMode

    private int getMode(int mode)

  Method to get the mode for the channel.
  Returns:
    mode the current mode of the channel

### addDestination

    public void addDestination(Destination d)
                        throws DuplicateDestinationException

  Method to add a destination for the Channel. This will add the destination to the list of destinations.
  Parameters:
    `d` - The destination to add to the list of destination for the channel
  Throws:
    DuplicateDestinationException -

### open

    public void open()
              throws DataException

  Method to open the Channel. This method starts the channel thread that copies data from the source to all the destinations.

### run

    public void run()

  Channel reader thread function.
  Specified by:
    run in interface java.lang.Runnable

### push

    public void push(byte[] bData)

  Method that receives the data from the source.

  Note: the buffer that is passed should persist for some time.

  Parameters:
    `bData` - buffer that will be guaranteed to be unchanged for some amount of time. FIXME: what to do with excetions?

### close

    public void close()

  Method to close the Channel. This method first stops the channel thread and then clears all the resources held by the Channel.

### removeDestination

    public boolean removeDestination(Destination d)

  Method to remove a destination from the list.
  Parameters:
    `d` - The Destination object to remove
  Returns:
    boolean True if the destination was found and removed

### removeAllDestinations

    public void removeAllDestinations()

  Method to remove all destinations.

### mute

    public void mute(boolean state)

  Method to mute all the sources and destinations
  Parameters:
    `state` - The state of the mute. true to mute and false to unmute

### getStatistics

    public Stats getStatistics()

  Method to get the statistics from the channel. This method gets the statistics from the devices connected to the channel.
  Specified by:
    getStatistics in interface Statistics
  Returns:
    Stats the statistics for the channel

### getProperties

    public PropertiesCollection getProperties()

  Gets the properties for this audioConnection
  Specified by:
    getProperties in interface Properties
  Returns:
    the ProertiesCollection

### setProperties

    public void setProperties(PropertiesCollection pc)

  Sets the properties for this audioConnection
  Specified by:
    setProperties in interface Properties

### setPeerProperties

    public void setPeerProperties(PropertiesCollection pc)
                           throws DataException

  Interface to set the given properties collection into the device. WOrks under the assumption that this is the properties collection of the peer.
  Specified by:
    setPeerProperties in interface Properties

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD