Package org.jcsp.lang

# Class SharedAltingConnectionClient

java.lang.Object
org.jcsp.lang.Guard
org.jcsp.lang.AltingConnectionClient
org.jcsp.lang.AltingConnectionClientImpl
org.jcsp.lang.SharedAltingConnectionClient

All Implemented Interfaces:
  `ConnectionClient`, `SharedConnectionClient`

public class SharedAltingConnectionClient extends AltingConnectionClientImpl implements SharedConnectionClient

Implements a client end of a Connection which can have multiple client processes.

This object cannot itself be shared between concurrent processes but duplicate objects can be generated that can be used by multiple concurrent processes. This can be achieved using the ``duplicate()`` method.

The reply from the server can be ALTed over.

Author:
  Quickstone Technologies Limited

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`SharedAltingConnectionClient(AltingChannelInput fromServer, ChannelInput synchIn, ChannelOutput openToServer, ChannelOutput reqToServer, SharedChannelOutput synchOut, ChannelOutput backToClient, org.jcsp.lang.ConnectionWithSharedAltingClient parent)`

## Method Summary

Modifier and Type
Method
Description
`protected final void`
`claim()`
This claims a lock on the client.
`SharedConnectionClient`
`duplicate()`
Returns a `SharedConnectionClient` object that is a duplicate of the object on which this method is called.
`protected final void`
`release()`
This releases a lock on the client.

### Methods inherited from class org.jcsp.lang.AltingConnectionClientImpl

`isOpen, reply, request`

### Methods inherited from class org.jcsp.lang.AltingConnectionClient

`getAltingChannel, pending, setAltingChannel`

### Methods inherited from class org.jcsp.lang.Guard

`schedule`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.jcsp.lang.ConnectionClient

`isOpen, reply, request`

## Constructor Details

### SharedAltingConnectionClient

protected SharedAltingConnectionClient(AltingChannelInput fromServer, ChannelInput synchIn, ChannelOutput openToServer, ChannelOutput reqToServer, SharedChannelOutput synchOut, ChannelOutput backToClient, org.jcsp.lang.ConnectionWithSharedAltingClient parent)

## Method Details

### claim

protected final void claim()
Description copied from class: `AltingConnectionClientImpl`
This claims a lock on the client. This implementation does nothing as instances of this class are only meant to be used with One2?Connection objects.

Overrides:
  `claim` in class `AltingConnectionClientImpl`

### release

protected final void release()
Description copied from class: `AltingConnectionClientImpl`
This releases a lock on the client. This implementation does nothing as instances of this class are only meant to be used with One2?Connection objects.

Overrides:
  `release` in class `AltingConnectionClientImpl`

### duplicate

public SharedConnectionClient duplicate()

Returns a `SharedConnectionClient` object that is a duplicate of the object on which this method is called.

This allows a process using a `SharedAltingConnectionClient` object to pass references to the connection client to multiple processes.

The object returned can be cast into a `SharedConnectionClient` object.

Specified by:
  `duplicate` in interface `SharedConnectionClient`
Returns:
  a duplicate `SharedAltingConnectionClient` object.