!7 concept Entry { S computerID, shortName, comment; } module ComputerNames > DynCRUD { bool automaticallyAddOnlineComputers = true; *() { super(Entry); } start { indexConceptField(Entry, 'computerID); // Add myself if (!hasConcept(Entry, computerID := computerID())) cnew(Entry, computerID := computerID(), comment := "This computer"); ownResource(vmBus_onMessage('onlineComputerIDs, voidfunc(Collection ids) { slurpIDs(ids) })); // Add currently online computers pcall { slurpIDs((LS) dm_callModuleOpt(dm_findModule("#1016578/AllOnlineComputers"), 'onlineComputerIDs)); } } // API svoid slurpIDs(Collection ids) { for (S id : unnull(ids)) uniq_lock(Entry, computerID := id); } }