return (orig-now).tv_sec*1000000 + (orig-now).tv_usec;
}
-#endif
-
class eMainloop;
// die beiden signalquellen: SocketNotifier...
int fd;
int state;
int requested; // requested events (POLLIN, ...)
+ void activate(int what) { /*emit*/ activated(what); }
public:
/**
* \brief Constructs a eSocketNotifier.
~eSocketNotifier();
PSignal1<void, int> activated;
- void activate(int what) { /*emit*/ activated(what); }
void start();
void stop();
void setRequested(int req) { requested=req; }
};
+#endif
+
class eTimer;
// werden in einer mainloop verarbeitet
existing_loops.push_back(this);
pthread_mutex_init(&recalcLock, 0);
}
- virtual ~eMainloop()
- {
- existing_loops.remove(this);
- pthread_mutex_destroy(&recalcLock);
- for (std::map<int, eSocketNotifier*>::iterator it(notifiers.begin());it != notifiers.end();++it)
- it->second->stop();
- }
+ virtual ~eMainloop();
int looplevel() { return loop_level; }
}
};
+#ifndef SWIG
// ... und Timer
/**
* \brief Gives a callback after a specified timeout.
bool bSingleShot;
bool bActive;
void addTimeOffset(int);
+ void activate();
public:
/**
* \brief Constructs a timer.
~eTimer() { if (bActive) stop(); }
PSignal0<void> timeout;
- void activate();
bool isActive() { return bActive; }
+
timeval &getNextActivation() { return nextActivation; }
void start(long msec, bool b=false);
void stop();
void changeInterval(long msek);
-#ifndef SWIG
- bool operator<(const eTimer& t) const { return nextActivation < t.nextActivation; }
-#endif
void startLongTimer( int seconds );
+ bool operator<(const eTimer& t) const { return nextActivation < t.nextActivation; }
};
+#endif // SWIG
+
#endif