ZMQ_MONITOR socket option registers a callback / event sink for changes in socket state
Merge branch 'master' into events
Fix for issue 355. Added missing source files dealer.cpp, device,cpp and router.cpp. Removed source files no longer present: xrep.cpp and xreq.cpp
Fix compile error with Visual C++ 2008

File decoder.cpp does not compile with Visual C++ 2008:

1>c:\tmp\libzmq\src\decoder.cpp(117) : warning C4003: not enough actual parameters for macro 'max'
1>c:\tmp\libzmq\src\decoder.cpp(117) : error C2589: '(' : illegal token on right side of '::'
1>c:\tmp\libzmq\src\decoder.cpp(117) : error C2059: syntax error : '::'
1>c:\tmp\libzmq\src\decoder.cpp(117) : error C2143: syntax error : missing ';' before '{'

This error is caused by the precense of a macro 'max' when including
'windows.h'. To solve this problem, the preprocessor macro /DNOMINMAX must
be specified.
Merge pull request #335 from jdc8/master

Fix for issue 355 and fix for compile error with Visual C++ 2008
On Windows, preventing sockets to be inherited by child processes.
Fix issue #268

This patch fixes a bug in the message encoder which was
responsible for computing incorrect message offset.
The bug affected PGM receiver making it unable to
decode inital messages.
Merge pull request #337 from hurtonm/issue_268

Fix issue #268
Simplify encoder's loop
Merge pull request #338 from hurtonm/code_cleanup

Simplify encoder's loop
Merge pull request #336 from mauri-melato/master

Fix #366 - On Windows, preventing sockets to be inherited by child processes.
gitignore endpoint test and add docs for unbind and disconnect
Merge pull request #339 from ianbarber/master

Add disconnect and unbind documentation
Merge branch 'master' into events
Merge pull request #340 from methodmissing/events

Expose a ZMQ_MONITOR socket option to register a callback for notification of state changes in socket state ( stream engine, tcp and ipc transport only )
Allow the ZMQ_MONITOR code compilable on gcc 4.7 on Linux.

The current ZMQ_MONITOR code does not compile in gcc 4.7, as -pedantic
and -Werror are enabled, and ISO C++ doesn't allow casting between
normal pointers (void*) and function pointers, as pedantically their
size could be different. This caused the library not compilable. This
commit workaround the problem by introducing one more indirection, i.e.
instead of calling

    (void *)listener

which is an error, we have to use

    *(void **)&listener

which is an undefined behavior :) but works on most platforms

Also, `optval_ = monitor` will not set the parameter in getsockopt(),
and the extra casting caused the LHS to be an rvalue which again makes
the code not compilable. The proper way is to pass a pointer of function
pointer and assign with indirection, i.e. `*optval_ = monitor`.

Also, fixed an asciidoc error in zmq_getsockopt.txt because the `~~~~`
is too long.
Merge pull request #341 from kennytm/master

Allow the ZMQ_MONITOR code compilable on gcc 4.7 on Linux.
Solaris/SunCC build fix: could not find a match for std::multimap<...>::insert(std::pair<...,...>)
Doc improvement: document interface omission in zmq_pgm.txt

The PGM transport supports the omission of the network interface to
select the default one like:

  announce.connect("epgm://eth0;239.255.128.46:64646"); // Use eth0
  announce.connect("epgm://239.255.128.46:64646"); // Use the default

Also, mention C++ in the additional community bindings of 0MQ in
zmq.txt.
Merge pull request #342 from ipechorin/master

Solaris/SunCC build fix: could not find a match for std::multimap<...>::insert(std::pair<...,...>)