<<>> <> <> <> <<>> <> <14.0>Adobe>Private>>> <<>> <> <> Adobe: PROGRAM 75 VERSION 2 = BEGIN DEPENDS UPON BulkData (0) VERSION 1, CHName (2) VERSION 0, Time (15) VERSION 2; <> <> nullTime: Time.Time = Time.earliestTime; -- seconds EmptyRecord: TYPE = RECORD [ ]; <> CommunicationError: ERROR [ ] = 0; UnknownSystem: ERROR [ ] = 1; CantDetermineLocOfARs: ERROR [ ] = 2; IllegalLogin: ERROR [ ] = 3; SystemAlreadyExists: ERROR [ ] = 4; FileNotFound: ERROR [ ] = 5; ServerUnreachable: ERROR [ ] = 6; ServerDown: ERROR [ ] = 7; NoAdobeServiceAtServer: ERROR [ ] = 8; CourierTimedOut: ERROR [ ] = 9; ParameterInconsistency: ERROR [ ] = 10; ObsoleteVersion: ERROR [ ] = 11; SystemNotRegistered: ERROR [ ] = 12; SysDescChanging: ERROR [ ] = 13; Others: ERROR [ ] = 14; TooManyConnections: ERROR [ ] = 15; Spare1: ERROR [ ] = 16; Spare2: ERROR [ ] = 17; Xxx: ERROR [ ] = 31; Error: ERROR [ why: Problem ] = 99; Problem: TYPE = { communicationError(0), unknownSystem(1), cantDetermineLocOfARs(2), illegalLogin(3), systemAlreadyExists(4), fileNotFound(5), serverUnreachable(6), serverDown(7), noAdobeServiceAtServer(8), courierTimedOut(9), parameterInconsistency(10), obsoleteVersion(11), systemNotRegistered(12), sysDescChanging(13), others(14), tooManyConnections(15), spare1(16), spare2(17), xxx(31) }; <> <> <> <> <> <> <<...>> <> <> <> ServerName: TYPE = CHName.Name; Database: TYPE = STRING; ARVersion: TYPE = LONG CARDINAL; ARNumber: TYPE = LONG CARDINAL; SubmitNumber: TYPE = LONG CARDINAL; Numeric: TYPE = LONG CARDINAL; DependsOnIndex: TYPE = CARDINAL; BoundedString: TYPE = RECORD [string: STRING, max: CARDINAL]; StartOrStop: TYPE = { start(0), stop(1) }; Reference: TYPE = SEQUENCE OF UNSPECIFIED; <> <> DatabaseSequence: TYPE = SEQUENCE OF STRING; Target: TYPE = RECORD [--server: ServerName,-- system: Database]; StaticTarget: TYPE = RECORD [target: Target, version: ARVersion]; LocationTarget: TYPE = RECORD [host: STRING, directory: STRING]; <> Description: TYPE = RECORD [ name: STRING, -- name of the ARSystem host: STRING, -- file server where the ARs are stored directory: STRING, -- directory where the ARs are stored refCount: CARDINAL, -- number of active Adobe tools using this system version: ARVersion, -- description version fieldList: FieldList ]; <> FieldItemValue: TYPE = FieldItem; FieldList: TYPE = SEQUENCE OF FieldItem; FieldType: TYPE = { ar(0), time(1), numeric(2), bounded(3), enumerated(4), string(5) }; FieldItem: TYPE = CHOICE FieldType OF { ar => ARField, --(0), time => TimeField, --(1), numeric => NumericField, --(2), bounded => BoundedField, --(3), enumerated => EnumeratedField, --(4), string => StringField --(5) }; ARField: TYPE = RECORD [ name: STRING, tools: ToolData, ar: EmptyRecord ]; TimeField: TYPE = RECORD [ name: STRING, tools: ToolData, time: EmptyRecord ]; NumericField: TYPE = RECORD [ name: STRING, tools: ToolData, numeric: EmptyRecord ]; BoundedField: TYPE = RECORD [ name: STRING, tools: ToolData, bounded: CARDINAL ]; EnumeratedField: TYPE = RECORD [ name: STRING, tools: ToolData, field: DependsOnIndex, possibilities: KeyedPossibilitiesList ]; StringField: TYPE = RECORD [ name: STRING, tools: ToolData, string: EmptyRecord ]; <> KeyedPossibilitiesList: TYPE = SEQUENCE OF PossibilityList; <> PossibilityList: TYPE = RECORD [ keyedDependency: DependsOnIndex, enumRecs: EnumerationList ]; EnumerationList: TYPE = SEQUENCE OF TaggedItem; <> <<>> TaggedItem: TYPE = RECORD [ tag: STRING, item: CARDINAL ]; <> ToolType: TYPE = { edit(0), submit(1), report(2), query(3), sort(4), queryList(5) }; ToolData: TYPE = ARRAY 6 OF InfoStuff; InfoStuff: TYPE = RECORD [ default: STRING, required: BOOLEAN, place: Coordinate, width: CARDINAL ]; Coordinate: TYPE = RECORD [ ord: INTEGER, co: INTEGER ]; <> ChangeList: TYPE = SEQUENCE OF ChangeItem; ChangeItem: TYPE = RECORD [name: STRING, value: ChangeItemValue]; ChangeType: TYPE = { modify(0), add(1), remove(2) }; ChangeItemValue: TYPE = CHOICE ChangeType OF { add => FieldItemValue, --(0), modify => FieldItemValue, --(1), remove => EmptyRecord --(2) }; <> QueryList: TYPE = SEQUENCE OF QueryItem; QueryItem: TYPE = RECORD [name: STRING, value: QueryItemValue]; Relation: TYPE = { equal(0), notEqual(1), lessThan(2), lessThanOrEqual(3), greaterThan(4), greaterThanOrEqual(5), in(6), notIn(7) }; QueryItemValue: TYPE = RECORD [op: Relation, value: FieldItemValue]; <> SetOfARs: TYPE = SEQUENCE OF RunOfARs; RunOfARs: TYPE = RECORD [ ar: ARNumber, runLength: LONG CARDINAL ]; <> GetResidentSystems: PROCEDURE [ ] RETURNS [ systems: DatabaseSequence ] REPORTS [ Error ] = 17; <> GetVersion: PROCEDURE [ target: Target ] RETURNS [ version: ARVersion ] REPORTS [ Error ] = 12; ReadLastARNumber: PROCEDURE [ target: Target ] RETURNS [ lastAR: ARNumber ] REPORTS [ Error ] = 2; <> GetSystemDescription: PROCEDURE [ target: Target ] RETURNS [ description: Description ] REPORTS [ Error ] = 14; PutSystemDescription: PROCEDURE [ target: Target, description: Description ] REPORTS [ Error ] = 13; GetSystemDefaultUserFile: PROCEDURE [ target: Target, to: BulkData.Sink ] RETURNS [ bytesInFile: CARDINAL ] REPORTS [ Error ] = 16; PutSystemDefaultUserFile: PROCEDURE [ target: Target, from: BulkData.Source ] REPORTS [ Error ] = 15; GetStartOrStopTime: PROCEDURE [ target: Target, which: StartOrStop ] RETURNS [ startOrStopTime: Time.Time ] REPORTS [ Error ] = 20; PutStartOrStopTime: PROCEDURE [ target: Target, which: StartOrStop, startOrStopTime: Time.Time ] REPORTS [ Error ] = 19; GetLocationOfARs: PROCEDURE [ target: Target ] RETURNS [ referenceToARs: Reference ] REPORTS [ Error ] = 9; ChangeLocationOfARs: PROCEDURE [ target: Target, newLocation: LocationTarget ] REPORTS [ Error ] = 10; <> GetNextSubmitNumber: PROCEDURE [ target: Target ] RETURNS [ submitNumber: SubmitNumber ] REPORTS [ Error ] = 0; PutSubmitNumber: PROCEDURE [ target: Target, submitNumber: SubmitNumber ] REPORTS [ Error ] = 1; MakeAcceleratorFileForField: PROCEDURE [ target: Target, fieldName: STRING, fieldList: FieldList] REPORTS [ Error ] = 22; UpdateAccelerators: PROCEDURE [ target: Target, arSet: SetOfARs ] REPORTS [ Error ] = 5; CompletedUpdate: PROCEDURE [ target: Target, arNumber: ARNumber ] REPORTS [ Error ] = 8; <> AboutToStore: PROCEDURE [ instance: StaticTarget, arNumber: ARNumber ] REPORTS [ Error ] = 6; ChangeFieldList: PROCEDURE [ instance: StaticTarget, changes: ChangeList ] REPORTS [ Error ] = 11; <> GetAcceleratorInfo: PROCEDURE [ instance: StaticTarget, arSet: SetOfARs, fieldList: FieldList, to: BulkData.Sink ] REPORTS [ Error ] = 21; LookupARs: PROCEDURE [ instance: StaticTarget, query: QueryItem, boundSet: SetOfARs ] RETURNS [ arSet: SetOfARs ] REPORTS [ Error ] = 4; UpdateAcceleratorField: PROCEDURE [ instance: StaticTarget, arNumber: ARNumber, field: FieldItem ] REPORTS [ Error ] = 7; VerifyVersion: PROCEDURE [ instance: StaticTarget ] RETURNS [ok: BOOLEAN] REPORTS [ Error ] = 18; <> SubmitFailed: PROCEDURE [ target: Target, arNumber: ARNumber, version: ARVersion ] REPORTS [ Error ] = 3; END.