Hi,

I'm interested in using Qt for a non-GUI core networking daemon for an application I'm creating. The daemon is quite complex and consists of many "components" which accept inputs and produce outputs. This style of design is well-suited to the slots and signals mechanism of Qt.

I have read through a lot of the Qt examples and documentation and it looks like a great dev. environment. However, I have some reservations which I hope somebody here can allay. Please let me know if these questions are silly, or are a bit confusing, and I'll try to restate them.

I need to be able to run the bulk of my deployable code in a simulator (OMNeT++), using simulated time and with multiple instances of the daemon connected via a virtual network. This all needs to run in a single process, which provides its own future event queue and main() function to direct the simulation.

* Does the QCoreApplication model lend itself to multiple instances of my daemon code all running in the same event loop (i.e., in one thread)?
* Would it be easy to modify the event loops used in Qt to operate according to a virtual time provided by the simulator? (I want to run the simulation at much faster than real-time.) Or are these event loops entirely divorced from time (i.e., just queues, not future event queues)?
* If I use mechanisms such as QTimers, can they operate on this virtual time rather than actual system time? Is this the only Qt class that relies on time?
* Would it be easy to then take (essentially) the same code and have it use separate threads for each component when I actually deploy my daemon in the real world?

These sorts of problems are fairly easily solved if I roll my own event loops, etc. (which I have done for a C# prototype), but I'd like to know how much of Qt I could use before having to roll my own in C++.

Thanks,
Dan