<> <> <> <<>> XNSAdobeDoc PCEDAR 2.0 % FOR INTERNAL XEROX USE ONLY XNSAdobeDoc The "Adobe" Action Request/Report System Bill Jackson Ó Copyright 1990 Xerox Corporation. All rights reserved. Abstract: Adobe is a Project Mangement tools that implements an "AR" system. XNSAdobe implements the network-based substrate. Created by: Bill Jackson & Phil James Maintained by: Bill Jackson Keywords: Adobe, Project Mangement, AR, RPC XEROX Xerox Corporation Palo Alto Research Center 3333 Coyote Hill Road Palo Alto, California 94304 For Internal Xerox Use Only 1. Testing Manual steps for stub generation! <> <> x7: CARDINAL ~ IF ( temp34.funnyLength = CARD16.LAST ) THEN 1 ELSE temp34.funnyLength; Startup <> <> <> Enumerated/KeyedPossibility "[ FieldItem(ar): [name: Number, tools: [ [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0]], ar: []], FieldItem(time): [name: Submit Date, tools: [ [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: CurrentTOD, systemMust: TRUE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0]], time: []], FieldItem(bounded): [name: Submitter, tools: [ [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: LoginName, systemMust: TRUE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0]], bounded: 40], FieldItem(numeric): [name: Age, tools: [ [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: 37, systemMust: TRUE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0]], numeric: []], FieldItem(enumerated): [name: System, tools: [ [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: TRUE, place: [ord: 0, co: 0], width: 65534]], funnyLength: 0, field: 65535, possibilities: [ [funnyLength: 4, keyedDependency: 65535, enumRecs: [ [tag: BWS, item: 1], [tag: Tools: Mesa Dev, item: 2], [tag: Other, item: 3], [tag: Nil, item: 65535] ]] ]], FieldItem(enumerated): [name: Subsystem, tools: [ [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: FALSE, place: [ord: 0, co: -2], width: 0], [default: "", systemMust: TRUE, place: [ord: 0, co: 0], width: 65534]], funnyLength: 0, field: 4, possibilities: [ [funnyLength: 3, keyedDependency: 1, enumRecs: [ [tag: Attention Window, item: 4], [tag: Background Manager, item: 5], [tag: Nil, item: 3] ]] ]]" enumRecsLength: CARDINAL ~ fieldList[dependsOn].possibilities[0].enumRecs.length UProc16p2: PROC [s: CrRPC.STREAM, enumRecsLength: CARDINAL] RETURNS [res: FieldItemValue] ~ { junk: CARDINAL _ CrRPC.GetCard16[s]; dependsOn: CARDINAL _ CrRPC.GetCard16[s]; keyseqLength: CARDINAL _ IF ( dependsOn = 65535 ) THEN 1 ELSE enumRecsLength; key: KeyedPossibilities _ NEW[KeyedPossibilities[keyseqLength]]; FOR kk: CARDNAL IN [0..keyseqLength) DO eseqLength: CARDINAL _ CrRPC.GetCard16[s]; about: CARDINAL _ CrRPC.GetCard16[s]; eseq: EnumeratedSequence _ NEW[EnumeratedSequenceType[eseqLength]]; FOR ii: CARDINAL IN [0..(eseqLength-1)) DO xx: xx ~ eseq.seq[ii]; xx.string _ CrRPC.GetRope[s]; xx.value _ CrRPC.GetCard16[s]; ENDLOOP; { <> xx: xx ~ eseq.seq[eseqLength]; xx.string _ CrRPC.GetRope[s]; xx.value _ 0; }; key.seq[kk] _ [about, eseq]; ENDLOOP; res _ NEW[FieldItemValueObject.enumerated _ [dependsOn, key] ]; }; FieldList tool1: xx ~ [0 0 0 65534 0] seq3: xx ~ [tool1] [tool1] [tool1] seq4: xx ~ [tool1] [tool1] [tool1] [tool1] seq5: xx ~ [tool1] [tool1] [tool1] [tool1] [tool1] seq6: xx ~ [tool1] [tool1] [tool1] [tool1] [tool1] [tool1] seq5b: xx ~ [1 0 65534 0] [tool1] [tool1] [tool1] [tool1] seq6b: xx ~ [tool1] [tool1] [tool1] [tool1] [tool1] [0 1 0 0 65534] fieldList: (22) [ 0 "Number", [seq6] 0 "CurrentTOD", [seq5b] 0 "LoginName", [seq5b] 40 1 "Submit Date", 0 0 0 65534 1 "Edit-Date", "CurrentTOD", 1 0 65534 0 [seq5] 2 "Age", [0 0 0 65534 0] 2 13111 [seq5b] 3 "Component Fix Version", [seq6] 10 3 "Attn", [seq6] 20 3 "Related Numbers", [seq6] 30 3 "Keywords", [seq6] 60 3 "Assigned To", [seq6] 60 3 "Subject", [seq6] 80 3 "Submitter", 0 0 0 65534 3 "Edit-By", ["LoginName", 1 0 65534 0] [seq5] 40 4 "Hardware", [seq6b] 0 65535 4 65535 [ ["Sun 3", 21] ["Sun 4", 22] ["Other", 23] ["Nil", 65535] ] 4 "Operation Frequency", [seq6b] 0 65535 4 65535 [ ["Basic Frequent Op", 24], ["Limited Op", 25], ["Complex/Infreq Op", 26], ["Nil", 65535] ] 4 "System", [seq6b] 0 65535 4 65535 [ ["BWS", 1], ["Tools: Mesa Dev", 2], ["Other", 3], ["Nil", 65535] ] 4 "Type", [seq6b] 0 65535 3 65535 [ ["Crash", 9], ["Hang", 10], ["Nil", 65535] ] 4 "Status", [0 0 0 65534 0] [[3 20041 19456] 1 0 65534 0] [seq3] [0 1 0 0 65534] 0 65535 11 65535 [ ["New", 11], ["Open", 12], ["InfoRequested", 13], ["Wish", 14], ["Fixed", 15], ["Closed", 16], ["Declined", 17], ["Superseded", 18], ["Obsolete", 19], ["Other", 20], ["Nil", 65535] ] 4 "Subsystem", [seq5] [0 3 0 0 65534] 0 4 3 1 ["Attention Window", 4], ["Background Manager", 5], ["Nil"] ] 3 65535 [ [2, "Compile"], [6, "Other"], [7, "Nil"] ] 2 65535 [ [3, "AR database definition"], [8, "Nil"] ] 65535 5 "Description", [seq6] 5 "Test Case", [seq6] 5 "Workaround", [seq6] 5 "Disposition", [seq6] ] Functions <<_ Convert.RopeFromXNSAddress[XNSCH.LookupAddressFromRope["Rubik AS Test:PARC:Xerox"].address]>> <<"0-089.2-852-155-539.">> <<>> XNSAdobe.GetDatabaseDescription [ref: GetDatabaseDescription.trace] <<>> <> ... <<>> XNSAdobe.GetLocationOfARs <> <<>> <> <<>> XNSAdobe.ReadLastARNumber <<>> <> <<>> XNSAdobe.GetNextSubmitNumber <<>> <> Broken stuff <> <> <> <> <> 2. Programmer's Interface XNSAdobeTestImpl Basically, all the PUBLIC proc's compose what should be the "AdobeClient" interace.