Monday, November 08, 2010 at 12:06 AM.

system.verbs.builtins.tcp.im.builtinDrivers.jabber.code.idTables.delete

on delete (idTbl, flExecuteCleanupScript = true) {
	<<Changes
		<<5/14/02; 1:51:34 PM by JB
			<<Changelog created.
	on mungeId ( idStr ) {
		// this munges the id string into a semaphore name, this scriptlet will be copied into several places.
		if typeOf ( idStr ) == addressType {
			idStr = nameOf ( idStr^ )};
		return "JabberIQTagSem" + idStr};
	local ( idName );
	if typeOf ( idTbl ) != addressType {
		idTbl = tcp.im.builtinDrivers.jabber.code.idTables.getAdr (idTbl)};
	idName = nameOf ( idTbl^ );
	if defined ( idTbl^ ) {
		if defined ( idTbl^.cleanupScript ) and flExecuteCleanupScript {
			// if this script fails, Jabber doesn't care
			thread.easyCall(idTbl^.cleanupScript^, { idTbl^ })};
		delete ( idTbl );
		// there may be a dangling semaphore, if no reply to this was ever recieved
		semaphore.unlock ( mungeId ( idName ) )}}



This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.