-- CHEntriesP0V0AuxImpl.Mesa
	-- Copyright (C) 1986 by Xerox Corporation.  All rights reserved.
	-- Generated by Demers.pa at November 26, 1986 5:27:48 pm PST
	--  using Sirocco [1.0] of September 25, 1986 3:44:23 am PDT
	
DIRECTORY
	Convert,
	Rope,
	CHEntriesP0V0,
	CHEntriesP0V0Aux;

CHEntriesP0V0AuxImpl: CEDAR PROGRAM
	IMPORTS Convert, Rope
	EXPORTS CHEntriesP0V0Aux ~ {
	OPEN CHEntriesP0V0, CHEntriesP0V0Aux;
	
	ROPE: TYPE ~ Rope.ROPE;
	
	ExposePortSyncType: PUBLIC PROC [e: PortSyncType, level: NAT] RETURNS [x: ROPE] ~ {
		SELECT e FROM
			asynchronous => x ← "asynchronous";
			synchronous => x ← "synchronous";
			bitSynchronous => x ← "bitSynchronous";
			byteSynchronous => x ← "byteSynchronous";
			syncAny => x ← "syncAny";
			ENDCASE => x ← "unknown PortSyncType";
		};
	
	ExposeLineSpeedSequence: PUBLIC PROC [s: LineSpeedSequence, level: NAT] RETURNS [x: ROPE] ~ {
		x ← "LineSpeedSequence: [";
		FOR i: CARDINAL IN [0..s.length) DO
			x ← Rope.Concat[x, "\n"];
			FOR i: CARDINAL IN [0..2*level) DO x ← Rope.Concat[x, " "]; ENDLOOP;
			x ← Rope.Concat[x, "("];
			x ← Rope.Concat[x, Convert.RopeFromCard[i]];
			x ← Rope.Concat[x, ") "];
			x ← Rope.Concat[x, Convert.RopeFromCard[s[i]]];
			ENDLOOP;
		x ← Rope.Concat[x, "]"];
		};
	
	ExposeAuthenticationLevelValue: PUBLIC PROC [r: AuthenticationLevelValue, level: NAT] RETURNS [x: ROPE] ~ {
		x ← "[";
		x ← Rope.Concat[x, "simpleSupported: "];
		x ← Rope.Concat[x, Convert.RopeFromBool[r.simpleSupported]];
		x ← Rope.Concat[x, ", "];
		x ← Rope.Concat[x, "strongSupported: "];
		x ← Rope.Concat[x, Convert.RopeFromBool[r.strongSupported]];
		x ← Rope.Concat[x, "]"];
		};
	
	ExposeUserDataValue: PUBLIC PROC [r: UserDataValue, level: NAT] RETURNS [x: ROPE] ~ {
		x ← "[";
		x ← Rope.Concat[x, "lastNameIndex: "];
		x ← Rope.Concat[x, Convert.RopeFromCard[r.lastNameIndex]];
		x ← Rope.Concat[x, ", "];
		x ← Rope.Concat[x, "fileService: "];
		x ← Rope.Concat[x, FooP1V1.ExposeCARD[r.fileService, (level+1)]];
		x ← Rope.Concat[x, "]"];
		};
	
	ExposePortDialerType: PUBLIC PROC [e: PortDialerType, level: NAT] RETURNS [x: ROPE] ~ {
		SELECT e FROM
			dialerNone => x ← "dialerNone";
			vadic => x ← "vadic";
			hayes => x ← "hayes";
			ventel => x ← "ventel";
			rs366 => x ← "rs366";
			ENDCASE => x ← "unknown PortDialerType";
		};
	
	ExposeRS232CData: PUBLIC PROC [r: RS232CData, level: NAT] RETURNS [x: ROPE] ~ {
		x ← "[";
		x ← Rope.Concat[x, "cIUPort: "];
		x ← Rope.Concat[x, Convert.RopeFromBool[r.cIUPort]];
		x ← Rope.Concat[x, "owningClientType: "];
		x ← Rope.Concat[x, ExposePortClientType[r.owningClientType, (level+1)]];
		x ← Rope.Concat[x, "preemptionAllowed: "];
		x ← Rope.Concat[x, Convert.RopeFromBool[r.preemptionAllowed]];
		x ← Rope.Concat[x, "lineNumber: "];
		x ← Rope.Concat[x, Convert.RopeFromCard[r.lineNumber]];
		x ← Rope.Concat[x, "dialerNumber: "];
		x ← Rope.Concat[x, Convert.RopeFromCard[r.dialerNumber]];
		x ← Rope.Concat[x, "duplexity: "];
		x ← Rope.Concat[x, Convert.RopeFromCard[r.duplexity]];
		x ← Rope.Concat[x, "dialingHardware: "];
		x ← Rope.Concat[x, ExposePortDialerType[r.dialingHardware, (level+1)]];
		x ← Rope.Concat[x, "charLength: "];
		x ← Rope.Concat[x, Convert.RopeFromCard[r.charLength]];
		x ← Rope.Concat[x, "echoing: "];
		x ← Rope.Concat[x, ExposePortEchoingLocation[r.echoing, (level+1)]];
		x ← Rope.Concat[x, "xxxxpaddingxxx: "];
		x ← Rope.Concat[x, Convert.RopeFromCard[r.xxxxpaddingxxx]];
		x ← Rope.Concat[x, "flowControl: "];
		x ← Rope.Concat[x, Convert.RopeFromCard[r.flowControl]];
		x ← Rope.Concat[x, "lineSpeed: "];
		x ← Rope.Concat[x, Convert.RopeFromCard[r.lineSpeed]];
		x ← Rope.Concat[x, "parity: "];
		x ← Rope.Concat[x, Convert.RopeFromCard[r.parity]];
		x ← Rope.Concat[x, "stopBits: "];
		x ← Rope.Concat[x, Convert.RopeFromCard[r.stopBits]];
		x ← Rope.Concat[x, "portActsAsDCE: "];
		x ← Rope.Concat[x, Convert.RopeFromBool[r.portActsAsDCE]];
		x ← Rope.Concat[x, "accessControl: "];
		x ← Rope.Concat[x, FooP1V1.ExposeCARD[r.accessControl, (level+1)]];
		x ← Rope.Concat[x, ", "];
		x ← Rope.Concat[x, "validLineSpeeds: "];
		x ← Rope.Concat[x, ExposeLineSpeedSequence[r.validLineSpeeds, (level+1)]];
		x ← Rope.Concat[x, "]"];
		};
	
	ExposeMailboxesValue: PUBLIC PROC [r: MailboxesValue, level: NAT] RETURNS [x: ROPE] ~ {
		x ← "[";
		x ← Rope.Concat[x, "time: "];
		x ← Rope.Concat[x, Convert.RopeFromCard[r.time]];
		x ← Rope.Concat[x, ", "];
		x ← Rope.Concat[x, "mailService: "];
		x ← Rope.Concat[x, ExposeMailService[r.mailService, (level+1)]];
		x ← Rope.Concat[x, "]"];
		};
	
	ExposePortEchoingLocation: PUBLIC PROC [e: PortEchoingLocation, level: NAT] RETURNS [x: ROPE] ~ {
		SELECT e FROM
			echoLocal => x ← "echoLocal";
			echoRemote => x ← "echoRemote";
			ENDCASE => x ← "unknown PortEchoingLocation";
		};
	
	ExposePortClientType: PUBLIC PROC [e: PortClientType, level: NAT] RETURNS [x: ROPE] ~ {
		SELECT e FROM
			unassigned => x ← "unassigned";
			outOfService => x ← "outOfService";
			its => x ← "its";
			irs => x ← "irs";
			gws => x ← "gws";
			ibm3270Host => x ← "ibm3270Host";
			ttyEmulation => x ← "ttyEmulation";
			rbs => x ← "rbs";
			fax => x ← "fax";
			mailGateway => x ← "mailGateway";
			phototypesetter => x ← "phototypesetter";
			ENDCASE => x ← "unknown PortClientType";
		};
	
	ExposeMailService: PUBLIC PROC [a: MailService, level: NAT] RETURNS [x: ROPE] ~ {
		x ← "MailService: [";
		FOR i: CARDINAL IN [0..3) DO
			x ← Rope.Concat[x, FooP1V1.ExposeCARD[a[i], (level+1)]];
			x ← Rope.Concat[x, ", "];
			ENDLOOP;
		x ← Rope.Concat[x, FooP1V1.ExposeCARD[a[3], (level+1)]];
		x ← Rope.Concat[x, "]"];
		};
	
}...