kitech / libmaia

XML-RPC lib for Qt4

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

about libmaia
-------------

libmaia is a easy-to-use XML-RCP library for Qt4!



compiling libmaia
-----------------

 # qmake 
 # make



Qt Datatypes
------------

	Allowed types for Argument and Return Values:

	C++/Qt-Types	XMLRPC-Types
	----------------------------------------
	* int           <int></int>
	* bool          <bool></bool>
	* double        <double></double>
	* QString       <string></string>
	* QDateTime     <datetime.iso8601></datetime.iso8601>
	* ByteArray     <base64></base64>
	* QVariantMap   <struct></struct>
	* QVariantList  <array></array>



using libmaia
-------------

1) 	qmake: your Project file (.pro) should contain

====================================
 INCLUDEPATH += /path/to/libmaia
 LIBS += /path/to/libmaia/libmaia.a
 QT   += xml network
====================================
		

2) in your header file include
 #include "maiaXmlRpcClient.h"
 AND/OR
 #include "maiaXmlRpcServer.h"


4) create object
	
	server:
		MaiaXmlRpcServer *server = new MaiaXmlRpcServer(8080, this);

	client: 
		MaiaXmlRpcClient *client = new MaiaXmlRpcClient(QUrl("http://localhost:8080/RPC2"), this);


5) register a method

	your method has to be a Qt Slot.
	

	// example method:
	QString MyClass::myMethod(int param1, QString param2) {
		if(param1 > 5)
			return param2;
		else
			return "not bigger than 5";
	}

	// register it:
	// "example.methodName" <- used to identify the method over xml-rpc
	// this <- pointer to the class which contains the method you would export
	// "myMethod" the name of the method
	server->addMethod("example.methodName", this, "myMethod");


6) call a method

	when calling a method you need three things:
	1) a Slot for the MethodResponse
	2) a Slot for the FaultResponse
	3) a QVariantList containig the arguments for the RPC-Method

	
		void MyClientClass::myResponseMethod(QVariant &arg) {
			// do something with the arg
		}
	
		void MyClientClass::myFaultResponse(int error, const QString &message) {
			qDebug() << "An Error occoured, Code: " << error << " Message: " << message;
		}


		QVariantList args;
		args << 5;
		args << "this is a string, no, not what you think :>";

		rpcClient->call("example.methodName", args,
			this, SLOT(myResponseMethod(QVariant&)),
			this, SLOT(myFaultResponse(int, const QString &)));




About

XML-RPC lib for Qt4

License:Other


Languages

Language:C++ 96.5%Language:Prolog 3.5%