00001
00002
00003
00004
00005 #ifndef SERVERINTROSPECTION_H
00006 #define SERVERINTROSPECTION_H
00007
00008 #include "xmlrpc/variant.h"
00009 namespace xmlrpc {
00010
00027 class ServerIntrospection {
00028 public:
00029 ServerIntrospection();
00030 virtual ~ServerIntrospection();
00031
00032 void registerMethod( QString methodName, QVariant::Type returnType, QList<QVariant::Type> parameterTypes );
00033 void setMethodHelpText( QString methodName, QString helpText );
00034 void clear();
00035
00036 bool isEmpty() const;
00037
00038 bool isMethodSupported( QString methodName ) const;
00039 bool checkMethodParameters( QString methodName, const QList<xmlrpc::Variant>& parameters, QVariant::Type *returnType = 0 ) const;
00040
00041
00042 QStringList listMethods() const;
00043 QStringList methodSignatures( QString methodName ) const;
00044 QString methodHelp( QString methodName );
00045
00046 private:
00047 class Private;
00048 QSharedDataPointer<Private> d;
00049 };
00050
00051 };
00052
00053 #endif //SERVERINTROSPECTION_H