int wxSocketEventDispatcher::FillSets(fd_set* readset, fd_set* writeset) { int max_fd = 0; wxFD_ZERO(readset); wxFD_ZERO(writeset); BeginFind(); wxHashTable::compatibility_iterator node = Next(); while (node) { wxSocketEventDispatcherEntry* entry = (wxSocketEventDispatcherEntry*) node->GetData(); if (entry->m_fdInput != -1) { wxFD_SET(entry->m_fdInput, readset); if (entry->m_fdInput > max_fd) max_fd = entry->m_fdInput; } if (entry->m_fdOutput != -1) { wxFD_SET(entry->m_fdOutput, writeset); if (entry->m_fdOutput > max_fd) max_fd = entry->m_fdOutput; } node = Next(); } return max_fd; }
void wxSocketEventDispatcher::AddEvents(fd_set* readset, fd_set* writeset) { BeginFind(); wxHashTable::compatibility_iterator node = Next(); while (node) { // We have to store the next node here, because the event processing can // destroy the object before we call Next() wxHashTable::compatibility_iterator next_node = Next(); wxSocketEventDispatcherEntry* entry = (wxSocketEventDispatcherEntry*) node->GetData(); wxCHECK_RET(entry->m_socket, wxT("Critical: Processing a NULL socket in wxSocketEventDispatcher")); if (entry->m_fdInput != -1 && wxFD_ISSET(entry->m_fdInput, readset)) entry->m_socket->Detected_Read(); if (entry->m_fdOutput != -1 && wxFD_ISSET(entry->m_fdOutput, writeset)) entry->m_socket->Detected_Write();; node = next_node; } }
void wxPropertyValidatorRegistry::ClearRegistry(void) { BeginFind(); wxHashTable::Node *node; while ((node = Next()) != NULL) { delete (wxPropertyValidator *)node->GetData(); } }