123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- /*
-
- Copyright (c) Xerox Corporation 1998-2002. All rights reserved.
-
- Use and copying of this software and preparation of derivative works based
- upon this software are permitted. Any distribution of this software or
- derivative works must comply with all applicable United States export control
- laws.
-
- This software is made available AS IS, and Xerox Corporation makes no warranty
- about the software, its performance or its conformity to any specification.
-
- |<--- this code is formatted to fit into 80 columns --->|
- |<--- this code is formatted to fit into 80 columns --->|
- |<--- this code is formatted to fit into 80 columns --->|
-
- */
- package telecom;
-
- /**
- * Connections are circuits between customers
- * There are two kinds: local and long distance
- * see subclasses at the end of this file.
- */
- public abstract class Connection {
-
- public static final int PENDING = 0;
- public static final int COMPLETE = 1;
- public static final int DROPPED = 2;
-
- Customer caller, receiver;
- private int state = PENDING;
-
- /**
- * Creatte a new Connection between a and b
- */
- Connection(Customer a, Customer b) {
- this.caller = a;
- this.receiver = b;
- }
-
- /**
- * what is the state of the connection?
- */
- public int getState(){
- return state;
- }
-
- /**
- * get the customer who initiated this connection
- */
- public Customer getCaller() { return caller; }
-
- /**
- * get the customer who received this connection
- */
- public Customer getReceiver() { return receiver; }
-
- /**
- * Called when a call is picked up. This means the b side has picked up
- * and the connection should now complete itself and start passing data.
- */
- void complete() {
- state = COMPLETE;
- System.out.println("connection completed");
- }
-
- /**
- * Called when the connection is dropped from a call. Is intended to
- * free up any resources the connection was consuming.
- */
- void drop() {
- state = DROPPED;
- System.out.println("connection dropped");
- }
-
- /**
- * Is customer c connected by this connection?
- */
- public boolean connects(Customer c){
- return (caller == c || receiver == c);
- }
-
- }
-
-
|