1
//////////////////////////////////////////////////////////////////////
3
// JCSP ("CSP for Java") Libraries //
4
// Copyright (C) 1996-2008 Peter Welch and Paul Austin. //
5
// 2001-2004 Quickstone Technologies Limited. //
7
// This library is free software; you can redistribute it and/or //
8
// modify it under the terms of the GNU Lesser General Public //
9
// License as published by the Free Software Foundation; either //
10
// version 2.1 of the License, or (at your option) any later //
13
// This library is distributed in the hope that it will be //
14
// useful, but WITHOUT ANY WARRANTY; without even the implied //
15
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //
16
// PURPOSE. See the GNU Lesser General Public License for more //
19
// You should have received a copy of the GNU Lesser General //
20
// Public License along with this library; if not, write to the //
21
// Free Software Foundation, Inc., 59 Temple Place, Suite 330, //
22
// Boston, MA 02111-1307, USA. //
24
// Author contact: P.H.Welch@kent.ac.uk //
26
//////////////////////////////////////////////////////////////////////
28
package org.jcsp.lang;
30
class Any2OneIntImpl implements ChannelInternalsInt, Any2OneChannelInt {
32
private ChannelInternalsInt channel;
33
private final Object writeMonitor = new Object();
35
Any2OneIntImpl(ChannelInternalsInt _channel) {
40
public void endRead() {
45
return channel.read();
48
public boolean readerDisable() {
49
return channel.readerDisable();
52
public boolean readerEnable(Alternative alt) {
53
return channel.readerEnable(alt);
56
public boolean readerPending() {
57
return channel.readerPending();
60
public void readerPoison(int strength) {
61
channel.readerPoison(strength);
65
public int startRead() {
66
return channel.startRead();
70
public void write(int n) {
71
synchronized (writeMonitor) {
77
public void writerPoison(int strength) {
78
synchronized (writeMonitor) {
79
channel.writerPoison(strength);
84
public AltingChannelInputInt in() {
85
return new AltingChannelInputIntImpl(channel,0);
88
public SharedChannelOutputInt out() {
89
return new SharedChannelOutputIntImpl(this,0);