summaryrefslogtreecommitdiffstats
path: root/scripts/t/Dpkg_Shlibs/patterns.cpp
blob: 8bfcb4dad132ef80f650ac9b2e59100d6c3883c3 (plain)
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#define EXPORT(x) x {}

namespace NSA
{
    class ClassA
    {
	private:
	    class Private
	    {
		public:
		    Private();
		    virtual ~Private();
		    void privmethod1(int);
		    void privmethod2(int);
	    };
	    Private *p;
	    class Internal
	    {
		public:
		    Internal();
		    virtual ~Internal();
		    void internal_method1(char);
		    void internal_method2(char);
	    };
	    Internal *i;
	public:
	    ClassA();
	    virtual ~ClassA();
	    virtual void generate_vt(const char *) const;
    };

    EXPORT(ClassA::Private::Private());
    EXPORT(ClassA::Private::~Private());
    EXPORT(void ClassA::Private::privmethod1(int));
    EXPORT(void ClassA::Private::privmethod2(int));

    EXPORT(ClassA::Internal::Internal());
    EXPORT(ClassA::Internal::~Internal());
    EXPORT(void ClassA::Internal::internal_method1(char));
    EXPORT(void ClassA::Internal::internal_method2(char));

    EXPORT(ClassA::ClassA());
    EXPORT(ClassA::~ClassA());
    EXPORT(void ClassA::generate_vt(const char *) const);
};

class ClassB
{
    public:
	ClassB();
	virtual ~ClassB();
	virtual void generate_vt(const char *) const;
};

EXPORT(ClassB::ClassB());
EXPORT(ClassB::~ClassB());
EXPORT(void ClassB::generate_vt(const char *) const);

class ClassC
{
    public:
	ClassC();
	virtual ~ClassC();
	virtual void generate_vt(const char *) const;
};

EXPORT(ClassC::ClassC());
EXPORT(ClassC::~ClassC());
EXPORT(void ClassC::generate_vt(const char *) const);

namespace NSB
{
    class ClassD : public NSA::ClassA, public ClassB, public ClassC
    {
	public:
	    ClassD();
	    virtual ~ClassD();
	    virtual void generate_vt(const char *) const override;
    };

    EXPORT(ClassD::ClassD());
    EXPORT(ClassD::~ClassD());
    EXPORT(void ClassD::generate_vt(const char *) const);

    class Symver {
	public:
	    Symver();
	    ~Symver();

	    void symver_method1();
	    void symver_method2();
    };

    EXPORT(Symver::Symver());
    EXPORT(Symver::~Symver());
    EXPORT(void Symver::symver_method1());
    EXPORT(void Symver::symver_method2());

    class SymverOptional {
	public:
	    SymverOptional();
	    ~SymverOptional();
    };

    EXPORT(SymverOptional::SymverOptional());
    EXPORT(SymverOptional::~SymverOptional());
};