xmlrpc/serverintrospection.h

    00001 // vim:tabstop=4:shiftwidth=4:expandtab:cinoptions=(s,U1,m1
    00002 // Copyright (C) 2007
    00003 // Author Dmitry Poplavsky <dmitry.poplavsky@gmail.com>
    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 }; // namespace
    00052
    00053 #endif //SERVERINTROSPECTION_H