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 [parentTrans: YggEnvironment.TransID] RETURNS [trans: YggEnvironment.TransID]; EndTransaction: PROC [trans: YggEnvironment.TransID, commit: BOOL] RETURNS [ok: BOOL]; CheckTransaction: PROC [trans: YggEnvironment.TransID] RETURNS [found: BOOL, active: BOOL, committed: 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, setDocType: BOOL, docType: YggRep.DocType, firstByte: CARD, byteCount: CARD, from: LONG POINTER] RETURNS [bytesMoved: CARD]; SetContents: PROC [trans: YggEnvironment.TransID, did: YggDID.DID, contents: YggRep.TypedPrimitiveElement]; GetSize: PROC [trans: YggEnvironment.TransID, did: YggDID.DID] RETURNS [size: CARD]; SetSize: PROC [trans: YggEnvironment.TransID, did: YggDID.DID, size: CARD]; GetProperty: PROC [trans: YggEnvironment.TransID, did: YggDID.DID, propertyName: ROPE] RETURNS [propertyExists: BOOL, property: LIST OF 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, appendProperty: BOOL]; 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 [ linkName: 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]; RemoveLink: PROC [trans: YggEnvironment.TransID, 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, dontWait: BOOL] RETURNS [dids: LIST OF YggDID.DID, success: BOOL]; GetParents: PROC [trans: YggEnvironment.TransID, did: YggDID.DID, dontWait: BOOL] RETURNS [dids: LIST OF YggDID.DID, success: BOOL]; 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, dontWait: BOOL _ FALSE] RETURNS [dids: LIST OF YggDID.DID, success: BOOL]; GetSuperContainers: PROC [trans: YggEnvironment.TransID, containerDID: YggDID.DID, dontWait: BOOL _ FALSE] RETURNS [dids: LIST OF YggDID.DID, success: BOOL]; AddIndexPatternToContainer: PROC [containerDID: YggDID.DID, pattern: ROPE] RETURNS [patternOK: BOOL]; RemoveIndexPatternFromContainer: PROC [containerDID: YggDID.DID, pattern: ROPE] RETURNS [ok: BOOL]; GetPatternsInContainer: PROC [containerDID: YggDID.DID, dontWait: BOOL] RETURNS [patterns: LIST OF ROPE, success: BOOL]; CreateObject: PROC [trans: YggEnvironment.TransID, containerDID: YggDID.DID, makeRoot: BOOL _ FALSE] RETURNS [did: YggDID.DID]; RemoveObject: PROC [trans: YggEnvironment.TransID, did: YggDID.DID]; END. JYggNav.mesa Copyright Σ 1988 by Xerox Corporation. All rights reserved. Bob Hagmann December 14, 1988 4:02:21 pm PST 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 no found, then active and committed are not meaningful. If found, then if active then committed is not meaningful. If not active, then the commit state is returned in committed. Old transactions will not be found. 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. The contents type is changed if setDocType is TRUE to docType. 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 size 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] 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 named property of the object with the specified did. If appendProperty is TRUE, the property is appended. If FALSE, it first destroys all properties with this name. A NIL value for the property with appendProperty as TRUE is a noop, and with appendProperty as FALSE deletes the property. A non-NIL value for the property with appendProperty as FALSE makes the new property the one and only value for the property. 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 Remove a link. 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 Get the did's of all the parents. 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 Get the did's of all the containers containing this container. Errors: $invalidDID, $invalidTrans Indexing in containers Add the pattern to index on for the container. Errors: $invalidDID Remove the pattern Errors: $invalidDID Get the patterns in this container. Errors: $invalidDID 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. If makeRoot is specified, then the new object is a root. 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 Κ¨˜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™"K™—šŸ œœ1œ˜FK™K™"——™ šŸœœ!œ œ˜OKšœ/™/K™"K™—šŸœœ-œ˜KKšœ/™/K™"K™—šŸœœ-œœ˜`K™ K™"K™—š Ÿœœ-œœœœ˜xK™%K™"K™—šŸœœ6œ œœœœœ œ˜˜Kšœ5  œœ!™iK™"K™—šŸ œœ,œ œœœœœ œ˜„Kšœ!™!Kšœ"™"K™—šŸœœ9œœ˜uK™&K™"K™—š Ÿœœ9œœœœ˜K™+K™"K™—šŸœœ6œ  œœœœœ œ˜£Kšœ8  œœ!™lK™"K™—šŸœœ6œ  œœœœœ œ˜Kšœ>™>K™"——™K™š Ÿœœœ œœ œ˜eK™.K™K™—š Ÿœœœ œœœ˜cK™K™K™—šŸœœœ œœ œœœ œ˜xKšœ#™#K™K™——™š Ÿ œœ6œ  œœœ˜Kšœg  œœ œ-™΅K™"K™—šŸ œœ-œ˜DKšœ‡™‡K™"K™——Kšœ˜—…—z3l