<> <> <> <> <> DIRECTORY GVBasics USING [RName], IO USING [STREAM], Rope USING [ROPE], BasicTime USING [GMT, nullGMT], Thrush USING [EncryptionKey, nullKey, Tune, VoiceInterval]; VoiceRope: CEDAR DEFINITIONS = BEGIN ID: TYPE = Rope.ROPE; EncryptionKey: TYPE = Thrush.EncryptionKey; Handle: TYPE = Thrush.ThHandle; -- Means for communicating with voice rope manager. InitializeNuthatch: PROC[ userName: GVBasics.RName_NIL, logFileName: Rope.ROPE_NIL, RefIDType: Rope.ROPE_NIL, close: BOOL_TRUE] RETURNS [success: BOOL_TRUE, nuthatchUserHandle: NuthatchUserHandle]; <> CatalogVoiceFile: PROC[ nuthatchUserHandle: NuthatchUserHandle, <> voiceFileID: VoiceFileID, tuneNumber: INT, recordedTime: BasicTime.GMT, referenceCount: INT_ 0, samples: INT_ 0, startingSample: INT_ 0, encryptionKey: EncryptionKey_ NULL, time: BasicTime.GMT, type: Rope.ROPE ]; <> MakeInterestEntry: PROC[ nuthatchUserHandle: NuthatchUserHandle, voiceFileID: VoiceFileID_ NIL, <> refID: Rope.ROPE_ NIL, time: BasicTime.GMT_BasicTime.nullGMT] ; <> AddInterest: PROC[ nuthatchUserHandle: NuthatchUserHandle, voiceFileID: VoiceFileID _ NIL, --optional -- <> refID: Rope.ROPE_ NIL, time: BasicTime.GMT_BasicTime.nullGMT] ; -- Writes a log entry to increment the reference count for this voice file. If the voice message does not have an entry in the database, ignore it (can't tell till DB update time if that's so.) Either voiceFileID or RefID must be non-NIL. LoseInterest: PROC[ nuthatchUserHandle: NuthatchUserHandle, voiceFileID: VoiceFileID _ NIL, --optional -- <> refID: Rope.ROPE_ NIL, time: BasicTime.GMT_BasicTime.nullGMT] ; <> RemoveInterestEntry: PROC[ nuthatchUserHandle: NuthatchUserHandle, voiceFileID: VoiceFileID _ NIL, --optional -- <> refID: Rope.ROPE_ NIL, time: BasicTime.GMT_BasicTime.nullGMT] ; <> GetFileID: PROC[ ID: Rope.ROPE, nuthatchUserHandle: Nuthatch.NuthatchUserHandle] RETURNS [voiceFileID: VoiceFileID] ; <> GetTune: PROC[ voiceFileID: VoiceFileID] RETURNS [tune: Tune] ; <> GetDirectoryEntry: PROC [voiceFileID: VoiceFileID] RETURNS [ tuneNumber: Nuthatch.Tune_ -1, recordTime: BasicTime.GMT_BasicTime.nullGMT, creator: GVBasics.RName_ NIL, samples: INT_ -1, startSample: INT_ -1, expirationDate: BasicTime.GMT_BasicTime.nullGMT, encryptionKey: Nuthatch.EncryptionKey_Thrush.nullKey, type: Rope.ROPE_NIL , referenceCount: INT_ 0, found: BOOL_FALSE]; NHTime: PROC[time: BasicTime.GMT] RETURNS [nhTime: BasicTime.GMT]; currentNUH: NuthatchUserHandle; -- right now, there's just one of them. END.