summaryrefslogtreecommitdiff
path: root/src/mtrie.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mtrie.hpp')
-rw-r--r--src/mtrie.hpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/mtrie.hpp b/src/mtrie.hpp
index cd47029..68a3f2c 100644
--- a/src/mtrie.hpp
+++ b/src/mtrie.hpp
@@ -35,8 +35,6 @@ namespace zmq
{
public:
- typedef std::set <class pipe_t*> pipes_t;
-
mtrie_t ();
~mtrie_t ();
@@ -55,8 +53,9 @@ namespace zmq
// actually removed rather than de-duplicated.
bool rm (unsigned char *prefix_, size_t size_, class pipe_t *pipe_);
- // Get all matching pipes.
- void match (unsigned char *data_, size_t size_, pipes_t &pipes_);
+ // Signal all the matching pipes.
+ void match (unsigned char *data_, size_t size_,
+ void (*func_) (class pipe_t *pipe_, void *arg_), void *arg_);
private:
@@ -68,8 +67,12 @@ namespace zmq
void *arg_);
bool rm_helper (unsigned char *prefix_, size_t size_,
class pipe_t *pipe_);
+ void match_helper (unsigned char *data_, size_t size_,
+ void (*func_) (class pipe_t *pipe_, void *arg_), void *arg_);
+ typedef std::set <class pipe_t*> pipes_t;
pipes_t pipes;
+
unsigned char min;
unsigned short count;
union {