qsusestudio

What is it?

It is a Qt-based wrapper around the SUSE Studio developers API.  It allows you to work with Studio using C++ without having to keep track of the API or deal with XML.  It handles all network connections for you, returning data asynchronously in the form of QVariantMaps.
It is licensed under the LGPL.

How do I get it?

Pull it from git:

git clone git://qsusestudio.git.sourceforge.net/gitroot/qsusestudio/qsusestudio

and then run qmake QSUSEStudio.pro && make

One of these days there will be pre-built RPMs and DEB packages.  The sourceforge project page is here.

How do I use it?

All calls return QVariantMap representations of the data.  Documentation on those values as well as the API calls are on-going and will be documented in the wiki, but you can call printMap(map) to dump out the structure so you can see what you're working with.
A basic guide to using the library:

#include <QSUSEStudio/QSUSEStudio_global.hpp>
#include <QSUSEStudio/qsusestudio.hpp>


class Example : public QObject
{
Q_OBJECT
public:
    Example() {}
    void run();

public slots:
    void receivedResponse(QVariantMap map);

private:
    QSUSEStudio *pStudio;
};


void Example::run()
{
    studio = new QSUSEStudio("my_user_name", "my_api_key");
    connect (studio, SIGNAL(responseReady(QVariantMap), this, SLOT(receivedResponse(QVariantMap));
    studio->listAppliances();
}


void Example::receivedResponse(QVariantMap map)
{
    QSUSEStudio::printMap(map);
}

It doesn't work

There is a mailing list you can turn to, or email the author, Matt Barringer, directly (firstletter and lastname@suse.de).