Go to the documentation of this file.
39 #include "blocxx/BLOCXX_config.h"
55 m_table.insert(std::make_pair(obj, Data(
cb, eventType)));
69 TimeoutTimer timer(timeout);
76 for (citer_t iter =
m_table.begin(); iter !=
m_table.end(); ++iter)
78 Select::SelectObject so(iter->first);
81 so.waitForRead =
true;
85 so.waitForWrite =
true;
87 selObjs.push_back(so);
106 for (
size_t i = 0;
i < selObjs.size() && selected > 0; ++
i)
108 const Select::SelectObject& selObj(selObjs[
i]);
109 if (selObj.readAvailable || selObj.writeAvailable)
113 iter_t iter =
m_table.find(selObj.s);
114 if (selObj.readAvailable)
118 if (selObj.writeAvailable)
137 : SelectableCallbackIFC()
#define BLOCXX_THROW(exType, msg)
Throw an exception using FILE and LINE.
container_t::iterator iterator
SelectEngineStopper(SelectEngine &engine)
Array< SelectObject > SelectObjectArray
bool removeSelectableObject(const Select_t &obj, SelectableCallbackIFC::EEventType eventType)
return indicates if obj was removed
#define BLOCXX_THROW_ERRNO_MSG(exType, msg)
Throw an exception using FILE, LINE, errno and strerror(errno)
int selectRW(SelectObjectArray &selarray, UInt32 ms)
void addSelectableObject(const Select_t &obj, const SelectableCallbackIFCRef &cb, SelectableCallbackIFC::EEventType eventType)
Add an object to the set.
const int SELECT_ERROR
The value returned from select when any error occurs other than timeout.
#define BLOCXX_DEFINE_EXCEPTION_WITH_ID(NAME)
Define a new exception class named <NAME>Exception that derives from Exception.
virtual void doSelected(Select_t &selectedObject, EEventType eventType)
const int SELECT_TIMEOUT
The value returned from select when the timeout value has expired.
SortedVectorMap< Select_t, Data > m_table
void go(const Timeout &timeout)
container_t::const_iterator const_iterator
IntrusiveReference< SelectableCallbackIFC > SelectableCallbackIFCRef