QXmlRPC 1.1
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