File: serverintrospection.h

package info (click to toggle)
qxmlrpc 0.0.svn6-2
  • links: PTS
  • area: main
  • in suites: buster, jessie, jessie-kfreebsd, stretch, wheezy
  • size: 392 kB
  • ctags: 200
  • sloc: cpp: 1,621; python: 29; makefile: 23
file content (53 lines) | stat: -rw-r--r-- 1,596 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// vim:tabstop=4:shiftwidth=4:expandtab:cinoptions=(s,U1,m1
// Copyright (C) 2007
// Author Dmitry Poplavsky <dmitry.poplavsky@gmail.com>

#ifndef SERVERINTROSPECTION_H
#define SERVERINTROSPECTION_H

#include "xmlrpc/variant.h"
namespace  xmlrpc {

/**
 * \brief ServerIntrospection class implements introspection
 *        functionality to the xmlrpc::Server.
 * 
 * \class xmlrpc::ServerIntrospection serverintrospection.h
 *
 * It provides information about methods of the xmlrpc server to
 * clients and allows to perform method name and parameters type
 * checks on the server before calling user code.
 *
 * ServerIntrospection is usually not used directly but from
 * the xmlrpc::Server.
 * 
 * Check http://scripts.incutio.com/xmlrpc/introspection.html
 * for more information about XML-RPC introspection.
 **/
class ServerIntrospection {
public:
    ServerIntrospection();
    virtual ~ServerIntrospection();

    void registerMethod( QString methodName, QVariant::Type returnType, QList<QVariant::Type> parameterTypes );
    void setMethodHelpText( QString methodName, QString helpText );
    void clear();

    bool isEmpty() const;

    bool isMethodSupported( QString methodName ) const;
    bool checkMethodParameters( QString methodName, const QList<xmlrpc::Variant>& parameters, QVariant::Type *returnType = 0 ) const;


    QStringList listMethods() const;
    QStringList methodSignatures( QString methodName ) const;
    QString methodHelp( QString methodName );

private:
    class Private;
	QSharedDataPointer<Private> d;
};

}; // namespace
 
#endif //SERVERINTROSPECTION_H