///Thrush/VoiceRopeDesign.tioga Nuthatch: Types, voice-file generic functions, incl. initialization, time utilities NuthatchDB: Some transaction stuff + generic functions interfacing to DB code. Unnecessary probably. NuthatchLog Logging Utility procedures. Coalesce? NuthatchUpdater Access to the log reader and executor. Spurious. RecordingLock Truly useless counter based locking frob. Unclean Deal with dirty parts of rollback hack. Walnuthatch Initialization + one Walnut-invoked action, containing Walnut-specific data type. Walnut achieves other actions through Nuthatch. So does WalnutSend. Analysis: Zap RecordingLock, NuthatchUpdater, Possibly NuthatchLog, NuthatchDB. Unclean, Walnuthatch are interfaces that remain the workstation's business. Nuthatch and Myna become the VoiceRope interface. The voice rope initialization code gets back some handles required to deal with the log and all that. Functions: Myna functions Initialization Make a rope by recording Play a rope Move the description code from ThParty to here. THESE SHOULD REALLY GO THROUGH THPARTY usw, since they require a voice path. And local vn. must be largely supported on WS side, since REFs and all that. Consider entirely thrush-based rope implementation, where the entity is the handle? Local version might also be complex, but needn't. Or something. Might work. Stepwise path? Damn! Nuthatch functions Permanent name management and storage. Take guidance from the Nuthatch interface. Find ways to replace a rope by some other one, deal properly with all the reference counting nonsense, and the like. But not the first time around. With luck, can avoid changing the Thrush/Finch versions for this one, by stubbing out the ThParty function until next version change.