Browse Source

Replaced boost::signal by boost::function

master
Artyom Beilis 16 years ago
parent
commit
4e1c7a2c04
2 changed files with 6 additions and 17 deletions
  1. +2
    -10
      url.cpp
  2. +4
    -7
      url.h

+ 2
- 10
url.cpp View File

@@ -7,10 +7,6 @@ using namespace boost;
using namespace cppcms;
url_parser::~url_parser()
{
unsigned i;
for(i=0;i<patterns.size();i++) {
delete patterns[i].callback;
}
}

void url_parser::add(char const *exp,int id)
@@ -33,7 +29,6 @@ void url_parser::add(char const *exp,url_parser &url)
url_def.pattern=regex(exp);
url_def.type=url_def::URL;
url_def.id=0;
url_def.callback=NULL;
url_def.url=&url;
patterns.push_back(url_def);
@@ -43,13 +38,10 @@ void url_parser::add(char const *exp,callback_t callback)
{
url_def url_def;
callback_signal_t *signal = new callback_signal_t;
signal->connect(callback);
url_def.pattern=regex(exp);
url_def.type=url_def::CALLBACK;
url_def.id=0;
url_def.callback=signal;
url_def.callback=callback;
url_def.url=NULL;
patterns.push_back(url_def);
@@ -70,7 +62,7 @@ int url_parser::parse(string &query)
tmp=result[1];
return patterns[i].url->parse(tmp);
case url_def::CALLBACK:
(*patterns[i].callback)(result[1],result[2],
patterns[i].callback( result[1],result[2],
result[3],result[4],
result[5],result[6],
result[7],result[8],


+ 4
- 7
url.h View File

@@ -5,7 +5,7 @@
#include <memory>
#include <vector>
#include <boost/regex.hpp>
#include <boost/signals.hpp>
#include <boost/function.hpp>
#include <boost/bind.hpp>

// Some defines:
@@ -27,11 +27,9 @@ class worker_thread;
using std::string;


typedef boost::signal<void(string,string,string,string,
typedef boost::function<void(string,string,string,string,
string,string,string,string,
string)> callback_signal_t;
typedef callback_signal_t::slot_type callback_t;

string)> callback_t;
class url_parser;

struct url_def {
@@ -39,8 +37,7 @@ struct url_def {
enum { ID, CALLBACK , URL } type;
int id;
url_parser *url;
callback_signal_t *callback;
url_def() { callback=NULL; };
callback_t callback;
};

class url_parser {


Loading…
Cancel
Save