summaryrefslogtreecommitdiffstats
path: root/src/debug
diff options
context:
space:
mode:
authorMenTaLguY <mental@rydia.net>2006-04-29 19:21:13 +0000
committermental <mental@users.sourceforge.net>2006-04-29 19:21:13 +0000
commit11ee3ba6de191d0f1b48f9b7f982ca7c3e6e42e4 (patch)
treeb5e397de51c332074795a52b0b22c4e4cfc2204a /src/debug
parentfinish interrupted refactoring of log filter configuration (diff)
downloadinkscape-11ee3ba6de191d0f1b48f9b7f982ca7c3e6e42e4.tar.gz
inkscape-11ee3ba6de191d0f1b48f9b7f982ca7c3e6e42e4.zip
make Debug::SimpleEvent more convenient
(bzr r629)
Diffstat (limited to 'src/debug')
-rw-r--r--src/debug/event.h1
-rw-r--r--src/debug/logger.cpp1
-rw-r--r--src/debug/simple-event.h87
3 files changed, 86 insertions, 3 deletions
diff --git a/src/debug/event.h b/src/debug/event.h
index fdc50f225..54ac31476 100644
--- a/src/debug/event.h
+++ b/src/debug/event.h
@@ -30,6 +30,7 @@ public:
DOCUMENT,
REFCOUNT,
EXTENSION,
+ FINALIZERS,
OTHER
};
enum { N_CATEGORIES=OTHER+1 };
diff --git a/src/debug/logger.cpp b/src/debug/logger.cpp
index f28d1526b..fc83e89df 100644
--- a/src/debug/logger.cpp
+++ b/src/debug/logger.cpp
@@ -104,6 +104,7 @@ static void set_category_mask(bool * const mask, char const *filter) {
{ "DOCUMENT", Event::DOCUMENT },
{ "REFCOUNT", Event::REFCOUNT },
{ "EXTENSION", Event::EXTENSION },
+ { "FINALIZERS", Event::FINALIZERS },
{ "OTHER", Event::OTHER },
{ NULL, Event::OTHER }
};
diff --git a/src/debug/simple-event.h b/src/debug/simple-event.h
index 3695eaa6a..cb4e85016 100644
--- a/src/debug/simple-event.h
+++ b/src/debug/simple-event.h
@@ -12,6 +12,8 @@
#ifndef SEEN_INKSCAPE_DEBUG_SIMPLE_EVENT_H
#define SEEN_INKSCAPE_DEBUG_SIMPLE_EVENT_H
+#include <vector>
+#include "gc-alloc.h"
#include "debug/event.h"
namespace Inkscape {
@@ -21,17 +23,96 @@ namespace Debug {
template <Event::Category C=Event::OTHER>
class SimpleEvent : public Event {
public:
- SimpleEvent(Util::ptr_shared<char> name) : _name(name) {}
SimpleEvent(char const *name) : _name(Util::share_string(name)) {}
static Category category() { return C; }
Util::ptr_shared<char> name() const { return _name; }
- unsigned propertyCount() const { return 0; }
- PropertyPair property(unsigned property) const { return PropertyPair(); }
+ unsigned propertyCount() const { return _properties.size(); }
+ PropertyPair property(unsigned property) const {
+ return _properties[property];
+ }
+
+protected:
+ SimpleEvent(char const *name,
+ char const *attr0, char const *value0)
+ : _name(Util::share_string(name))
+ {
+ _addProperty(attr0, value0);
+ }
+
+ SimpleEvent(char const *name,
+ char const *attr0, char const *value0,
+ char const *attr1, char const *value1)
+ : _name(Util::share_string(name))
+ {
+ _addProperty(attr0, value0);
+ _addProperty(attr1, value1);
+ }
+
+ SimpleEvent(char const *name,
+ char const *attr0, char const *value0,
+ char const *attr1, char const *value1,
+ char const *attr2, char const *value2)
+ : _name(Util::share_string(name))
+ {
+ _addProperty(attr0, value0);
+ _addProperty(attr1, value1);
+ _addProperty(attr2, value2);
+ }
+
+ SimpleEvent(char const *name,
+ char const *attr0, char const *value0,
+ char const *attr1, char const *value1,
+ char const *attr2, char const *value2,
+ char const *attr3, char const *value3)
+ : _name(Util::share_string(name))
+ {
+ _addProperty(attr0, value0);
+ _addProperty(attr1, value1);
+ _addProperty(attr2, value2);
+ _addProperty(attr3, value3);
+ }
+
+ SimpleEvent(char const *name,
+ char const *attr0, char const *value0,
+ char const *attr1, char const *value1,
+ char const *attr2, char const *value2,
+ char const *attr3, char const *value3,
+ char const *attr4, char const *value4)
+ : _name(Util::share_string(name))
+ {
+ _addProperty(attr0, value0);
+ _addProperty(attr1, value1);
+ _addProperty(attr2, value2);
+ _addProperty(attr3, value3);
+ _addProperty(attr4, value4);
+ }
+
+ SimpleEvent(char const *name,
+ char const *attr0, char const *value0,
+ char const *attr1, char const *value1,
+ char const *attr2, char const *value2,
+ char const *attr3, char const *value3,
+ char const *attr4, char const *value4,
+ char const *attr5, char const *value5)
+ : _name(Util::share_string(name))
+ {
+ _addProperty(attr0, value0);
+ _addProperty(attr1, value1);
+ _addProperty(attr2, value2);
+ _addProperty(attr3, value3);
+ _addProperty(attr4, value4);
+ _addProperty(attr5, value5);
+ }
+
+ void _addProperty(char const *name, char const *value) {
+ _properties.push_back(PropertyPair(name, value));
+ }
private:
Util::ptr_shared<char> _name;
+ std::vector<PropertyPair, GC::Alloc<PropertyPair, GC::AUTO> > _properties;
};
}