summaryrefslogtreecommitdiff
path: root/src/prefix_filter.hpp
diff options
context:
space:
mode:
authorMartin Sustrik <sustrik@250bpm.com>2012-04-11 11:18:09 +0200
committerMartin Sustrik <sustrik@250bpm.com>2012-04-12 06:30:50 +0200
commitd8c2a736d5741daf0d70511d49f30e24fe0203d9 (patch)
treebfb4dcab4d540dfe79b05b49d36ebd5a1aa5c0f4 /src/prefix_filter.hpp
parent7f7674fdffbe216f4ee5e7d46fca95e278842ab6 (diff)
Accumulated cruft removed from prefix_filter_t
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
Diffstat (limited to 'src/prefix_filter.hpp')
-rw-r--r--src/prefix_filter.hpp75
1 files changed, 0 insertions, 75 deletions
diff --git a/src/prefix_filter.hpp b/src/prefix_filter.hpp
index 0faa865..63bc409 100644
--- a/src/prefix_filter.hpp
+++ b/src/prefix_filter.hpp
@@ -22,87 +22,12 @@
#ifndef __XS_PREFIX_FILTER_HPP_INCLUDED__
#define __XS_PREFIX_FILTER_HPP_INCLUDED__
-#include <stddef.h>
-#include <map>
-
-#include "stdint.hpp"
-
namespace xs
{
// Canonical extension object.
extern void *prefix_filter;
- class prefix_filter_t
- {
- public:
-
- prefix_filter_t ();
- ~prefix_filter_t ();
-
- int subscribe (void *core_, void *subscriber_,
- const unsigned char *data_, size_t size_);
- int unsubscribe (void *core_, void *subscriber_,
- const unsigned char *data_, size_t size_);
- void unsubscribe_all (void *core_, void *subscriber_);
- void enumerate (void *core_);
- int match (void *core_, const unsigned char *data_, size_t size_);
- void match_all (void *core_, const unsigned char *data_, size_t size_);
-
- private:
-
- struct node_t
- {
- // Pointer to particular subscriber associated with
- // the reference count.
- typedef std::map <void*, int> subscribers_t;
- subscribers_t *subscribers;
-
- unsigned char min;
- unsigned short count;
- unsigned short live_nodes;
- union {
- struct node_t *node;
- struct node_t **table;
- } next;
-
- };
-
- static void init (node_t *node_);
- static void close (node_t *node_);
-
- // Add key to the trie. Returns true if it's a new subscription
- // rather than a duplicate.
- static bool add (node_t *node_, const unsigned char *prefix_,
- size_t size_, void *subscriber_);
-
- // Remove specific subscription from the trie. Return true is it
- // was actually removed rather than de-duplicated.
- static bool rm (node_t *node_, const unsigned char *prefix_,
- size_t size_, void *subscriber_);
-
- // Remove all subscriptions for a specific peer from the trie.
- // If there are no subscriptions left on some topics, invoke the
- // supplied callback function.
- static void rm (node_t *node_, void *subscriber_, void *arg_);
-
- static void rm_helper (node_t *node_, void *subscriber_,
- unsigned char **buff_, size_t buffsize_, size_t maxbuffsize_,
- void *arg_);
-
- // Lists all the subscriptions in the trie.
- static void list (node_t *node_, unsigned char **buff_,
- size_t buffsize_, size_t maxbuffsize_, void *arg_);
-
- // Checks whether node can be safely removed.
- static bool is_redundant (node_t *node_);
-
- node_t root;
-
- prefix_filter_t (const prefix_filter_t&);
- const prefix_filter_t &operator = (const prefix_filter_t&);
- };
-
}
#endif