The following section will regroup all the questions you may ask about n3rv framework, being general, architecture or code related.
A: My name is Clément Gamé and i am the main and only developper of n3rv framework.
A: Yes, feel free to send a pull request on the main n3rv code repository, on github.
A: You can contact me by mail at clement.game[__at__]gmail.com, or via twitter (@WintermeW)
A: Not much actually, you running nodes will keep going as if nothing happened. The only problem is that new nodes and node bindings won’t be able to register, therefore the other nodes will not be aware of them.
A: No, you can’t. If you call service::attach() more than once on the same qhandler*, the last attached callback will win! But you can break your message processing logics into multiple functions that your single callback will call conditionally.
A: Yes you can, no problem. You can even have a single receive callback for all your sockets, but that would be poor design.
A: Yes you can ! n3rv::service::connect() has a qhandler* ref overloading, which means you can use it to connect multiple times with the same handler (& incidentally zeroMQ socket) reference.
A: Well, yes and no..You can perfectly instanciate multiple service controllers on the same network and subscribe some nodes on all of them, but as we speak a given node can’t connect to multiple service controllers at the same time and use indiferently one or the other (by the usual means at least).
A: Mainly because of C++’s lack of reflection capacities, and because:
A: Again this is due to a language limitation. At compile time, the signature of a non static method changes (mangling, this pointer adding,..), this is why they can’t be used as callbacks. The only way to go is to declare a static method and pass the calling object pointer as a void*, casting it back in its true type later in the callback.
A: Copy elision, baby ! ;)
A: Good question, i just thought that since multiple library linkings are necessary in order to use n3rv, one more wouldn’t make much difference.