DIRECTORY Rope USING [ROPE], YggDID USING [DID], YggEnvironment USING [TransID], YggRep USING [AccurateGMTRep, Attribute, DocType, TypedPrimitiveElement]; YggNav: CEDAR DEFINITIONS ~ BEGIN ROPE: TYPE ~ Rope.ROPE; ErrorDesc: TYPE = RECORD [code: ATOM, explanation: ROPE] _ [NIL, NIL]; Error: ERROR [error: ErrorDesc]; StartTransaction: PROC RETURNS [trans: YggEnvironment.TransID]; EndTransaction: PROC [trans: YggEnvironment.TransID, commit: BOOL] RETURNS [ok: BOOL]; CheckTransaction: PROC [trans: YggEnvironment.TransID] RETURNS [ok: BOOL]; GetRoots: PROC RETURNS [roots: LIST OF YggDID.DID]; AddRoot: PROC [did: YggDID.DID] RETURNS [ok: BOOL]; RemoveRoot: PROC [did: YggDID.DID] RETURNS [ok: BOOL]; GetTypeOfContents: PROC [trans: YggEnvironment.TransID, did: YggDID.DID] RETURNS [YggRep.DocType]; GetUninterpretedContents: UNSAFE PROC [trans: YggEnvironment.TransID, did: YggDID.DID, firstByte: CARD, byteCount: CARD, to: LONG POINTER] RETURNS [bytesMoved: CARD]; GetContents: PROC [trans: YggEnvironment.TransID, did: YggDID.DID] RETURNS [contents: YggRep.TypedPrimitiveElement]; SetUninterpretedContents: UNSAFE PROC [trans: YggEnvironment.TransID, did: YggDID.DID, firstByte: CARD, byteCount: CARD, from: LONG POINTER] RETURNS [bytesMoved: CARD]; SetContents: PROC [trans: YggEnvironment.TransID, did: YggDID.DID, contents: YggRep.TypedPrimitiveElement]; SetSize: PROC [trans: YggEnvironment.TransID, did: YggDID.DID, size: CARD]; GetProperty: PROC [trans: YggEnvironment.TransID, did: YggDID.DID, propertyName: ROPE] RETURNS [propertyExists: BOOL, property: YggRep.Attribute]; GetAllProperties: PROC [trans: YggEnvironment.TransID, did: YggDID.DID] RETURNS [properties: LIST OF YggRep.Attribute]; ListAllProperties: PROC [trans: YggEnvironment.TransID, did: YggDID.DID] RETURNS [propertyNames: LIST OF ROPE]; SetProperty: PROC [trans: YggEnvironment.TransID, did: YggDID.DID, propertyName: ROPE, property: YggRep.Attribute]; ConstructIntTPE: PROC [int: INT32] RETURNS [property: YggRep.TypedPrimitiveElement]; ConstructFloatTPE: PROC [float: REAL32] RETURNS [property: YggRep.TypedPrimitiveElement]; ConstructDateTPE: PROC [date: YggRep.AccurateGMTRep] RETURNS [property: YggRep.TypedPrimitiveElement]; ConstructShortRopeTPE: PROC [rope: ROPE] RETURNS [property: YggRep.TypedPrimitiveElement]; ConstructRopeTPE: PROC [rope: ROPE] RETURNS [property: YggRep.TypedPrimitiveElement]; ConstructUninterpretedBytesTPE: PROC [docType: YggRep.DocType, bytes: LONG POINTER, size: CARD] RETURNS [property: YggRep.TypedPrimitiveElement]; LinkList: TYPE = RECORD [ propertyName: ROPE, dids: LIST OF YggDID.DID ]; GetTypedOutlinks: PROC [trans: YggEnvironment.TransID, did: YggDID.DID, linkType: ROPE] RETURNS [LIST OF YggDID.DID]; GetAllOutlinks: PROC [trans: YggEnvironment.TransID, did: YggDID.DID] RETURNS [LIST OF LinkList]; GetTypedInlinks: PROC [trans: YggEnvironment.TransID, did: YggDID.DID, linkType: ROPE] RETURNS [LIST OF YggDID.DID]; GetAllInlinks: PROC [trans: YggEnvironment.TransID, did: YggDID.DID] RETURNS [LIST OF LinkList]; SnapLink: PROC [trans: YggEnvironment.TransID, fromDID: YggDID.DID, toDID: YggDID.DID, linkType: ROPE] RETURNS [linkDID: YggDID.DID]; GetDefaultContainer: PROC [trans: YggEnvironment.TransID] RETURNS [YggDID.DID]; SetDefaultContainer: PROC [trans: YggEnvironment.TransID, did: YggDID.DID]; AddToContainer: PROC [trans: YggEnvironment.TransID, did: YggDID.DID, containerDID: YggDID.DID]; RemoveFromContainer: PROC [trans: YggEnvironment.TransID, did: YggDID.DID, containerDID: YggDID.DID] RETURNS [ok: BOOL]; GetObjectsInContainer: PROC [trans: YggEnvironment.TransID, containerDID: YggDID.DID] RETURNS [LIST OF YggDID.DID]; AddContainerToContainer: PROC [trans: YggEnvironment.TransID, subcontainerDID: YggDID.DID, containerDID: YggDID.DID]; RemoveContainerFromContainer: PROC [trans: YggEnvironment.TransID, subcontainerDID: YggDID.DID, containerDID: YggDID.DID] RETURNS [ok: BOOL]; GetContainersInContainer: PROC [trans: YggEnvironment.TransID, containerDID: YggDID.DID] RETURNS [LIST OF YggDID.DID]; CreateObject: PROC [trans: YggEnvironment.TransID, containerDID: YggDID.DID] RETURNS [did: YggDID.DID]; RemoveObject: PROC [trans: YggEnvironment.TransID, did: YggDID.DID]; CreateIndex: PROC [trans: YggEnvironment.TransID, containerDID: YggDID.DID, pattern: ROPE] RETURNS [did: YggDID.DID]; ListIndexPatterns: PROC [trans: YggEnvironment.TransID, containerDID: YggDID.DID] RETURNS [patterns: LIST OF ROPE]; RemoveIndex: PROC [trans: YggEnvironment.TransID, containerDID: YggDID.DID, pattern: ROPE] RETURNS [ok: BOOL]; END. "YggNav.mesa Copyright Σ 1988 by Xerox Corporation. All rights reserved. Bob Hagmann April 22, 1988 10:40:24 am PDT This interface provides the navigational interface to Yggdrasil. Errors An error description reports the code ATOM indicating exactly what went wrong. The "explanation" is intended to be a description of the error suitable for human consumption; it frequently contains the name of the object being operated upon. Transactions Note: none of the root operations operate under transaction control Start up a new transaction. Commit or abort a transaction. Check on a transaction. If it has been aborted, ok is FALSE. Root objects Note: none of the root operations operate under transaction control Get all the root objects for the service. Add a root object. If the DID does not exist, FALSE will be returned. Remove a root object. If the DID is not a root object, FALSE will be returned. Object contents Get the contents of the object with the specified did. Errors: $invalidDID, $invalidTrans Get the contents of the object with the specified did. The contents must not be a well known interpreted type (e. g., int, date, float, ...) Errors: $invalidDID, $invalidTrans, $invalidReservedType Get the contents of the object with the specified did. Errors: $invalidDID, $invalidTrans Set the contents of the object with the specified did. The object is grown if needed. Errors: $invalidDID, $invalidTrans Set the contents of the object with the specified did. The object is grown if needed. Errors: $invalidDID, $invalidTrans Set the contents of the object with the specified did. The object is grown if needed. Errors: $invalidDID, $invalidTrans Object property manipulation Get the named property of the object with the specified did. If the property does not exist, [FALSE, [NIL, NIL]] is returned. Errors: $invalidDID, $invalidTrans Get all the properties of the object with the specified did. If no properties exist, NIL is returned. Errors: $invalidDID, $invalidTrans Get all the property names of the object with the specified did. If no properties exist, NIL is returned. Errors: $invalidDID, $invalidTrans Set the contents of the object with the specified did. The object is grown if needed. Errors: $invalidDID, $invalidTrans Object property construction Note: all of these procedures copy data. Construct a YggRep.TypedPrimitiveElement for a 32 bit integer. Construct a YggRep.TypedPrimitiveElement for a 32 bit real. Construct a YggRep.TypedPrimitiveElement for a date. Construct a YggRep.TypedPrimitiveElement for a ROPE that is short (less than a few disk pages preferred) and contains no nulls. Errors: $shortRopeWithNulls Construct a YggRep.TypedPrimitiveElement for a ROPE that is long (more than a disk page preferred) and may contain no nulls. Construct a YggRep.TypedPrimitiveElement for an array of bytes. Errors: $invalidReservedType Links Get the did's of all the outlinks for this object with "link type" propertyName. Errors: $invalidDID, $invalidTrans Get the did's of all the outlinks for this object. Errors: $invalidDID, $invalidTrans Get the did's of all the inlinks for this object with "link type" propertyName. Errors: $invalidDID, $invalidTrans Get the did's of all the inlinks for this object. Errors: $invalidDID, $invalidTrans Construct a link between the two dids. Errors: $invalidDID, $invalidTrans Containers Get the default container for this transaction. Errors: $invalidDID, $invalidTrans Set the default container for this transaction. Errors: $invalidDID, $invalidTrans Add the object to the container. Errors: $invalidDID, $invalidTrans Remove the object from the container. Errors: $invalidDID, $invalidTrans Get the did's of all the objects in this container. containerDID of NIL means use the default container. Errors: $invalidDID, $invalidTrans Add the subcontainer to the container. Errors: $invalidDID, $invalidTrans Remove the subcontainer from the container. Errors: $invalidDID, $invalidTrans Get the did's of all the containers in this container. containerDID of NIL means use the default container. Errors: $invalidDID, $invalidTrans Object creation and destruction Make up a new object in the specified container. The default container for the transaction is used if containerDID is NIL. Errors: $invalidDID, $invalidTrans Remove a object. Any links pointing to this object are also removed. This is a recursive process (if the links are really objects). Errors: $invalidDID, $invalidTrans Indices Index all properties in the container whose property name matches the pattern. Errors: $invalidDID, $invalidTrans Remove a pattern from a container. The pattern must exactly match an existing pattern. Errors: $invalidDID, $invalidTrans Remove a pattern from a container. The pattern must exactly match an existing pattern. Errors: $invalidDID, $invalidTrans ΚΆ˜code•Mark outsideHeaderšœ ™ Kšœ<™™>K™—šŸœœ œœ*˜YKšœ;™;K™—šŸœœœ*˜fKšœ4™4K™—šŸœœœœ*˜ZKšœ/œL™K™K™—šŸœœœœ*˜UKšœ/œI™|K™—š Ÿœœ"œœœœ*˜‘Kšœ?™?K™——™code0šœ œœ˜Kšœœ˜Kšœœœ˜Mšœ˜K™—šŸœœ-œ œœœœœ˜uKšœP™PK™"K™—šŸœœ-œœ˜aKšœ2™2K™"K™—šŸœœ-œ œœœœœ˜tKšœO™OK™"K™—š Ÿ œœ-œœœœ ˜`Kšœ1™1K™"K™—šŸœœ1œœ œœœ˜…K™&K™"——™ šŸœœ!œ œ˜OKšœ/™/K™"K™—šŸœœ-œ˜KKšœ/™/K™"K™—šŸœœ-œœ˜`K™ K™"K™—š Ÿœœ-œœœœ˜xK™%K™"K™—šŸœœ6œœœœœ˜sKšœ5  œœ!™iK™"K™—šŸœœ9œœ˜uK™&K™"K™—š Ÿœœ9œœœœ˜K™+K™"K™—šŸœœ6œœœœœ˜vKšœ8  œœ!™lK™"——™š Ÿ œœ6œœœ˜gKšœg  œœ™{K™"K™—šŸ œœ-œ˜DKšœ‡™‡K™"K™——™š Ÿ œœ6œ œœœ˜uKšœN™NK™"K™—š Ÿœœ6œœ  œ˜sKšœW™WK™"K™—š Ÿ œœ6œ œœœ˜nKšœW™WK™"K™——Kšœ˜—…—Ϊ,²