----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/1557/#review1569 -----------------------------------------------------------
trunk/qpid/cpp/src/qmf/EventNotifierImpl.h <https://reviews.apache.org/r/1557/#comment3545> May I make a suggestion - take a look at qpid::sys::IOHandle in the qpid code. This is an abstract class that hides the OS-specific bits (fd/Socket) pretty well. We could do something _like_ that here - add another level of abstraction by having getHandle() return a class instead of an 'int'. Or, perhaps not as "pretty" just typedef the return value using different OS-specific conditional compile: #if defined(_WIN32) #include <whatever windoze headers> typedef <whatever windoze stuff> IOHandle; #else typedef int IOHandle; #endif then we define: IOHandle getHandle() const; - Kenneth On 2011-08-19 18:30:06, Darryl Pierce wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/1557/ > ----------------------------------------------------------- > > (Updated 2011-08-19 18:30:06) > > > Review request for qpid, Kenneth Giusti, michael goulish, and Ted Ross. > > > Summary > ------- > > Provides a new method for providing notification to an interested party when > new messages are received. > > The EventNotifier class can be associated with either a console or agent > session. The object provides a file descriptor which then becomes readable > when there are messages to be processed. > > This implementation only supports Posix. There is some work necessary to get > a Windows implementation in place. > > > Diffs > ----- > > trunk/qpid/cpp/bindings/qmf2/examples/cpp/Makefile.am 1159329 > trunk/qpid/cpp/bindings/qmf2/examples/cpp/event_driven_list_agents.cpp > PRE-CREATION > trunk/qpid/cpp/include/qmf/AgentSession.h 1159329 > trunk/qpid/cpp/include/qmf/ConsoleSession.h 1159329 > trunk/qpid/cpp/include/qmf/EventNotifier.h PRE-CREATION > trunk/qpid/cpp/src/CMakeLists.txt 1159329 > trunk/qpid/cpp/src/qmf.mk 1159329 > trunk/qpid/cpp/src/qmf/AgentSession.cpp 1159329 > trunk/qpid/cpp/src/qmf/AgentSessionImpl.h PRE-CREATION > trunk/qpid/cpp/src/qmf/ConsoleSession.cpp 1159329 > trunk/qpid/cpp/src/qmf/ConsoleSessionImpl.h 1159329 > trunk/qpid/cpp/src/qmf/EventNotifier.cpp PRE-CREATION > trunk/qpid/cpp/src/qmf/EventNotifierImpl.h PRE-CREATION > trunk/qpid/cpp/src/qmf/EventNotifierImpl.cpp PRE-CREATION > trunk/qpid/cpp/src/qmf/PosixEventNotifierImpl.cpp PRE-CREATION > trunk/qpid/cpp/src/tests/EventNotifierTest.cpp PRE-CREATION > trunk/qpid/cpp/src/tests/Makefile.am 1159329 > > Diff: https://reviews.apache.org/r/1557/diff > > > Testing > ------- > > An example agent takes the existing list_agents and uses an EventNotifier to > respond to incoming messages rather than blocking on the > ConsoleSession.nextReceiver() API. > > A unit test verifies that the file handle provides by the EventNotifier type > is properly updating on incoming messgaes. > > > Thanks, > > Darryl > >
