Archive for the ‘Qt’ Category

libmaia: XML-RPC with Qt4

Saturday, March 8th, 2008

So, now that my exams are all done I finally found some time to put up a library you might find useful.
Two semesters ago Karl Glatz and I both needed a XML-RPC library for Trolltechs Qt 4.

Qt4

We first looked around what was already there:

  • QuteXR: a very good lib implementing the server and client side. Sadly only Qt 3. Has many features and so wasn’t easy to port over to Qt4 in the short time we had for our Projects.
  • KRPC: only implements the client side. But we could use some code here.
  • QxtXmlRpc: I found out about this one only recently. And also only implements the client.

So we had to create something new. Luckily we were able to use some code from KRPC and had some inspiration from QuteXR.

To demonstrate how easy it is to use libmaia: two examples.

Let’s create a Server first using these simple lines of code:

QLineEdit *sometext = new QLineEdit(this);
MaiaXmlRpcServer *server = new MaiaXmlRpcServer(8080, this);
server->addMethod("examples.displaytext", sometext, "setText");

First we create a QLineEdit for demonstration purpose.
Then we start the XmlRpc Server on port 8080.
In line 3 we register the Method “examples.displaytext” to the QLineEdits slot “setText”.
You can now remotely call “examples.displaytext” with a String as parameter and change the content of your LineEdit.

Now create a client:

MaiaXmlRpcClient *rpc = new MaiaXmlRpcClient(QUrl("http://localhost:8080/RPC2"), this);
rpc->call("examples.displaytext", QDateTime::currentDateTime().toString("hh:mm:ss"),
this, SLOT(testResponse(QVariant &)),
this, SLOT(testFault(int, const QString &)));

Here we create the client object by passing the server URL to the constructor.
Calling a Method is as easy as passing its name, the arguments and two slots to the “call” method.
The first of the two slots is used to handle the response, the second can be used to catch errors.

Looks easy to get started with? Right, so checkout directly from subversion here:

svn co https://svn.frubar.net/svn/libmaia/trunk/

You’ll also find further examples there.

Have fun with it :)

Announcement: Vine - Visualized Networking

Monday, January 14th, 2008

Today we finished the website for a project Michael Wagner and I am working on at the moment.
The project is called Vine which stands for Visualized Networking.
And thats what it’s all about: gathering information of IP networks and visualize them in a simple graph.

To get the information from the network we use different technics. For example there is an Avahi component resolving all announced Services. Planned is also an Nmap component and one using simple ICMP echo requests.

As some of these technics only work on the local link we separate the discovery part from the GUI (called Vine Control Center) into a daemon application (called Vine Agent) you can run in different network segments.

The Control Center receives the information from all your daemons and puts the puzzle together presenting you with a nice map of your network and all its devices. Clicking on a Device will show you everything Vine could find out about it. To for query more detailed data there is a SNMP client integrated as well.

Both parts are written in C++ and Qt, so they’ll run on quite a lot of platforms. As the Agent also requires Avahi it won’t be able to run it on Windows though.

At the moment it isn’t really usable yet, but you can check the progress with the WebSVN. For a sneak peek of the user interface have a look at the Screenshots.

If you’d like to help just leave a comment :)