summaryrefslogtreecommitdiffstats
path: root/arts/kde/mcop-dcop/mcopdcopobject.h
blob: 4c7e70cf5161acd6b86f059d2f343f0b20c32ea5 (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
/*
   Copyright (c) 2001 Nikolas Zimmermann <wildfox@kde.org>

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

*/

#ifndef MCOPDCOPOBJECT_H
#define MCOPDCOPOBJECT_H

#include <dcopobject.h>

#include <qvaluelist.h>
#include <qcstring.h>

typedef QValueList<QCString> QCStringList;

class MCOPDCOPObjectPrivate;

class MCOPEntryInfo
{
public:
	MCOPEntryInfo()
	{ }
	
	~MCOPEntryInfo()
	{ }

	QCString functionType()
	{ return m_functionType; }
	
	QCString functionName()
	{ return m_functionName; }

	QCString signature()
	{ return m_signature; }
	
	QCStringList signatureList()
	{ return m_signatureList; }
	
	void setFunctionType(QCString s)
	{ m_functionType = s; }

	void setFunctionName(QCString s)
	{ m_functionName = s; }

	void setSignature(QCString s)
	{ m_signature = s; }

	void setSignatureList(QCStringList s)
	{ m_signatureList = s; }

private:
	QCString m_functionType, m_functionName, m_signature;
	QCStringList m_signatureList;
};

class MCOPDCOPObject : public DCOPObject
{
public:
	MCOPDCOPObject(QCString name);
	~MCOPDCOPObject();

	virtual bool processDynamic(const QCString &fun, const QByteArray &data, QCString &replyType, QByteArray &replyData);
	virtual QCStringList functionsDynamic();

	void addDynamicFunction(QCString value, MCOPEntryInfo *entry);

	Arts::Buffer *callFunction(MCOPEntryInfo *entry, QCString ifaceName, const QByteArray &data);
	
private:
    MCOPDCOPObjectPrivate *d;
};


#endif