XNSAdobeDoc PCEDAR 2.0 % 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 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 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. าXNSAdobeDoc.tioga Copyright ำ 1990 by Xerox Corporation. All rights reserved. Bill Jackson (bj), March 21, 1990 0:55:57 am PST AdobeP75V2ClientImpl.mesa KeyedPossibilitiesList & EnumerationList have funnyLength passed in as a parameter! XNSLogin install XNSAdobeClient install XNSAdobeTest the last NIL _ Convert.RopeFromXNSAddress[XNSCH.LookupAddressFromRope["Rubik AS Test:PARC:Xerox"].address] "0-089.2-852-155-539." server: Rubik AS Test:PARC:Xerox system/database: CedarAdobeTest Description: Name: CedarAdobeTest Host: NewYork:PARC:Xerox Directory: Rubik/ARs Version: 0 This one is very suspicious! server: Rubik AS Test:PARC:Xerox system/database: CedarAdobeTest GetLocationOfARs: server: Rubik AS Test:PARC:Xerox system/database: CedarAdobeTest lastAR: 12 server: Rubik AS Test:PARC:Xerox system/database: CedarAdobeTest NextSubmitNumber: 14 Silent Death! XNSAdobe.ListDatabases XNSAdobe.GetVersion Error Death! XNSAdobe.PutSubmitNumber ส&•NewlineDelimiter –(cedardoc) style˜•Mark LastEditedšœ™Icode– LastEdited™˜>—šœP˜PKšœษ˜ษK˜—šœ%˜%KšœE˜EKšœ4˜4Kšœ5˜5Kšœ˜—K˜Kšœ˜Kšœ˜Kšœ˜Kšœ˜K˜—— ˜ šœ]™]Kšœ™K™—šœC˜CJ™Jšœฅ™ฅJ˜J™—šœ˜J™J™JšœT™TJ™—šœ˜J™JšœM™MJ™—šœ˜J™JšœW™W—— ˜ ™ Jšœ™Jšœ™—™ Jšœ™——— šœ˜ šœ˜Ibody˜S———…—8$0