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 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 ส'–(cedardoc) style•NewlineDelimiter ˜•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———…—n$g