313a314,354
> #ifndef SWIG
> inline bool
> operator<(const Event &l, const Event &r)
> {
> return l.when() < r.when() ||
> (l.when() == r.when() && l.priority() < r.priority());
> }
>
> inline bool
> operator>(const Event &l, const Event &r)
> {
> return l.when() > r.when() ||
> (l.when() == r.when() && l.priority() > r.priority());
> }
>
> inline bool
> operator<=(const Event &l, const Event &r)
> {
> return l.when() < r.when() ||
> (l.when() == r.when() && l.priority() <= r.priority());
> }
> inline bool
> operator>=(const Event &l, const Event &r)
> {
> return l.when() > r.when() ||
> (l.when() == r.when() && l.priority() >= r.priority());
> }
>
> inline bool
> operator==(const Event &l, const Event &r)
> {
> return l.when() == r.when() && l.priority() == r.priority();
> }
>
> inline bool
> operator!=(const Event &l, const Event &r)
> {
> return l.when() != r.when() || l.priority() != r.priority();
> }
> #endif
>
433,477d473
< template <class T, void (T::* F)()>
< void
< DelayFunction(EventQueue *eventq, Tick when, T *object)
< {
< class DelayEvent : public Event
< {
< private:
< T *object;
<
< public:
< DelayEvent(T *o)
< : object(o)
< { this->setFlags(AutoDelete); }
< void process() { (object->*F)(); }
< const char *description() const { return "delay"; }
< };
<
< eventq->schedule(new DelayEvent(object), when);
< }
<
< template <class T, void (T::* F)()>
< class EventWrapper : public Event
< {
< private:
< T *object;
<
< public:
< EventWrapper(T *obj, bool del = false, Priority p = Default_Pri)
< : Event(p), object(obj)
< {
< if (del)
< setFlags(AutoDelete);
< }
<
< void process() { (object->*F)(); }
<
< const std::string
< name() const
< {
< return object->name() + ".wrapped_event";
< }
<
< const char *description() const { return "EventWrapped"; }
< };
<
544,545c540,542
< inline bool
< operator<(const Event &l, const Event &r)
---
> template <class T, void (T::* F)()>
> void
> DelayFunction(EventQueue *eventq, Tick when, T *object)
547,549c544,547
< return l.when() < r.when() ||
< (l.when() == r.when() && l.priority() < r.priority());
< }
---
> class DelayEvent : public Event
> {
> private:
> T *object;
551,556c549,555
< inline bool
< operator>(const Event &l, const Event &r)
< {
< return l.when() > r.when() ||
< (l.when() == r.when() && l.priority() > r.priority());
< }
---
> public:
> DelayEvent(T *o)
> : object(o)
> { this->setFlags(AutoDelete); }
> void process() { (object->*F)(); }
> const char *description() const { return "delay"; }
> };
558,562c557
< inline bool
< operator<=(const Event &l, const Event &r)
< {
< return l.when() < r.when() ||
< (l.when() == r.when() && l.priority() <= r.priority());
---
> eventq->schedule(new DelayEvent(object), when);
564,569d558
< inline bool
< operator>=(const Event &l, const Event &r)
< {
< return l.when() > r.when() ||
< (l.when() == r.when() && l.priority() >= r.priority());
< }
571,572c560,561
< inline bool
< operator==(const Event &l, const Event &r)
---
> template <class T, void (T::* F)()>
> class EventWrapper : public Event
574,575c563,564
< return l.when() == r.when() && l.priority() == r.priority();
< }
---
> private:
> T *object;
577,581c566,583
< inline bool
< operator!=(const Event &l, const Event &r)
< {
< return l.when() != r.when() || l.priority() != r.priority();
< }
---
> public:
> EventWrapper(T *obj, bool del = false, Priority p = Default_Pri)
> : Event(p), object(obj)
> {
> if (del)
> setFlags(AutoDelete);
> }
>
> void process() { (object->*F)(); }
>
> const std::string
> name() const
> {
> return object->name() + ".wrapped_event";
> }
>
> const char *description() const { return "EventWrapped"; }
> };