<> <> <> <> <> <> <> <> <> DIRECTORY DB, DBCommon, AlpineEnvironment, Rope, DBDefs; DBModel: CEDAR DEFINITIONS = BEGIN OPEN DBDefs, DBCommon; <> initialized: READONLY BOOL; <> Initialize: PROC [nCachePages: NAT, cacheFileName: ROPE]; OpenTransaction: PROC [segment: Segment, useTrans: TransactionHandle, eraseAfterOpen: BOOL _ FALSE] RETURNS[trans: TransactionHandle, schemaInvalid: BOOL]; MarkTransaction: PROC [trans: TransactionHandle]; AbortTransaction: PROC [trans: TransactionHandle]; CloseTransaction: PROC [trans: TransactionHandle]; DeclareSegment: PROC [filePath: ROPE, segment: Segment, number: DBCommon.SegmentIndex, lock: AlpineEnvironment.LockOption, readonly: BOOL, createIfNotFound: BOOL, nPagesInitial, nPagesPerExtent: INT]; EraseSegment: PROC [segment: Segment, useTrans: TransactionHandle] RETURNS [trans: TransactionHandle]; GetSegmentInfo: PROC [segment: Segment] RETURNS [filePath: ROPE, readOnly: BOOL]; CacheKey: PROC[segment: Segment] RETURNS[key: INT]; <> <> DeclareDomain: PROC [name: ROPE, segment: Segment] RETURNS [d: Domain]; LookupDomain: PROC[name: ROPE, segment: Segment] RETURNS[d: Domain]; DestroyDomain: PROC [d: Domain]; DomainsByName: PROC [segment: Segment, lowName, highName: ROPE, start: DBCommon.FirstLast] RETURNS[ds: DomainSet]; NextDomain: PROC [ds: DomainSet] RETURNS [Domain]; PrevDomain: PROC [ds: DomainSet] RETURNS [Domain]; ReleaseDomainSet: PROC [ds: DomainSet]; DeclareSubType: PROC [of, is: Domain]; DestroySubType: PROC [of, is: Domain]; SuperType: PROC [d: Domain] RETURNS[super: Domain]; SubTypes: PROC [d: Domain] RETURNS[subs: DomainSet]; TypeForDomain: PROC[d: Domain] RETURNS[type: TypeCode]; TypeToDomain: PROC[type: DBDefs.TypeCode, segment: Segment] RETURNS[d: Domain]; <> <> DeclareRelation: PROC [name: ROPE, segment: Segment, fields: DB.FieldSpec, isProperty: BOOL] RETURNS[r: Relation]; LookupRelation: PROC[name: ROPE, segment: Segment] RETURNS[r: Relation]; DestroyRelation: PROC [r: Relation]; RelationsByName: PROC [segment: Segment, lowName, highName: ROPE, start: DBCommon.FirstLast] RETURNS[RelationSet]; NextRelation: PROC [rs: RelationSet] RETURNS [Relation]; PrevRelation: PROC [rs: RelationSet] RETURNS [Relation]; ReleaseRelationSet: PROC [rs: RelationSet]; NameToField: PROC[r: Relation, name: ROPE] RETURNS[exists: BOOL, pos: CARDINAL]; FieldCount: PROC[r: Relation] RETURNS[count: CARDINAL]; FieldDescription: PROC[r: Relation, pos: CARDINAL] RETURNS[field: DB.Field]; Fields: PROC[r: Relation] RETURNS[fields: DB.FieldSpec]; DeclareIndex: PROC [r: Relation, fields: FieldSequence, isKey: BOOL _ FALSE, doCheck: BOOL _ TRUE] RETURNS[index: Index]; DestroyIndex: PROC[r: Relation, index: Index]; Keys: PROC[r: Relation] RETURNS[keys: LIST OF Index]; Indices: PROC[r: Relation] RETURNS[indices: LIST OF Index]; <> DeclareEntity: PROC[d: Domain, name: ROPE, newOnly: BOOL _ FALSE] RETURNS [e: Entity]; LookupEntity: PROC[d: Domain, name: ROPE] RETURNS[e: Entity]; CreateRelship: PROC[r: Relation, init: ValueSequence] RETURNS[t: Relship]; LookupRelship: PROC[r: Relation, key: Index, val: ValueSequence] RETURNS[relship: Relship]; LookupProperty: PROC[r: Relation, e: Entity] RETURNS[relship: Relship]; FirstRelship: PROC[r: Relation] RETURNS[relship: Relship]; DestroyEntity: PROC[e: Entity]; CopyEntity: PROC[e: Entity] RETURNS[Entity]; DestroyRelship: PROC[t: Relship]; CopyRelship: PROC[t: Relship] RETURNS[Relship]; SetF: PROC[t: Relship, field: CARDINAL, v: Value]; GetF: PROC[t: Relship, field: CARDINAL] RETURNS [Value]; SetP: PROC[e: Entity, r: Relation, field: CARDINAL, v: Value]; GetP: PROC[e: Entity, r: Relation, field: CARDINAL] RETURNS[Value]; EntityInfo: PROC [e: Entity] RETURNS [name: ROPE, domain: Domain]; ChangeName: PROC[ of: Entity, to: Rope.ROPE ]; ToUnderType: PROC[e: Entity]; RelationOf: PROC [t: Relship] RETURNS [Relation]; DomainEq: PROC [d1, d2: Domain] RETURNS[BOOL]; RelationEq: PROC [r1, r2: Relation] RETURNS[BOOL]; NullDomain: PROC [d: Domain] RETURNS[BOOLEAN]; NullRelation: PROC [r: Relation] RETURNS[BOOLEAN]; NullAttribute: PROC [a: Attribute] RETURNS[BOOLEAN]; NullEntity: PROC[e: Entity] RETURNS[BOOL]; NullRelship: PROC[r: Relship] RETURNS[BOOL]; EntityEq: PROC[e1: Entity, e2: Entity] RETURNS[BOOL]; RelshipEq: PROC[r1: Relship, r2: Relship] RETURNS[BOOL]; <> RelationSubset: PROC [r: Relation, index: Index, constraint: Constraint, start: FirstLast] RETURNS [RelshipSet]; RelshipsForEntity: PROC [e: Entity] RETURNS [rs: RelshipSet]; RelshipsWithEntityField: PROC[r: Relation, field: CARDINAL, val: Entity] RETURNS[rs: RelshipSet]; NextRelship: PROC [rs: RelshipSet] RETURNS [rship: Relship]; PrevRelship: PROC [rs: RelshipSet] RETURNS [rship: Relship]; ReleaseRelshipSet: PROC [rs: RelshipSet]; DomainSubset: PROC [d: Domain, lowName, highName: ROPE, start: DBCommon.FirstLast] RETURNS [EntitySet]; NextEntity: PROC [es: EntitySet] RETURNS [Entity]; PrevEntity: PROC [es: EntitySet] RETURNS [Entity]; ReleaseEntitySet: PROC [es: EntitySet]; RelationsOf: PROC [d: Domain] RETURNS[rs: RelationSet]; END.