DBus-1-TQt 1.0
Loading...
Searching...
No Matches
tqdbusdataconverter.cpp
Go to the documentation of this file.
1/* qdbusdataconverter.cpp TQT_DBusDataConverter template
2 *
3 * Copyright (C) 2007 Kevin Krammer <kevin.krammer@gmx.at>
4 *
5 * Licensed under the Academic Free License version 2.1
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
20 * USA.
21 *
22 */
23
24#include "tqdbusdataconverter.h"
25#include "tqdbusdata.h"
26
27#include <tqpoint.h>
28#include <tqrect.h>
29#include <tqsize.h>
30#include <tqvaluelist.h>
31
32template <>
33TQT_DBusDataConverter::Result TQT_DBusDataConverter::convertFromTQT_DBusData<TQRect>(const TQT_DBusData& dbusData, TQRect& typeData)
34{
35 if (dbusData.type() != TQT_DBusData::Struct) return InvalidSignature;
36
37 TQValueList<TQT_DBusData> members = dbusData.toStruct();
38 if (members.count() != 4) return InvalidSignature;
39
40 TQ_INT32 values[4];
41
44 for (uint i = 0; it != endIt; ++it, ++i)
45 {
46 bool ok = false;
47 values[i] = (*it).toInt32(&ok);
48 if (!ok) return InvalidSignature;
49 }
50
51 typeData = TQRect(values[0], values[1], values[2], values[3]);
52
53 return Success;
54}
55
56template <>
57TQT_DBusDataConverter::Result TQT_DBusDataConverter::convertToTQT_DBusData<TQRect>(const TQRect& typeData, TQT_DBusData& dbusData)
58{
60
61 members << TQT_DBusData::fromInt32(typeData.x());
62 members << TQT_DBusData::fromInt32(typeData.y());
63 members << TQT_DBusData::fromInt32(typeData.width());
64 members << TQT_DBusData::fromInt32(typeData.height());
65
66 dbusData = TQT_DBusData::fromStruct(members);
67
68 return Success;
69}
70
71template <>
72TQT_DBusDataConverter::Result TQT_DBusDataConverter::convertFromTQT_DBusData<TQPoint>(const TQT_DBusData& dbusData, TQPoint& typeData)
73{
74 if (dbusData.type() != TQT_DBusData::Struct) return InvalidSignature;
75
76 TQValueList<TQT_DBusData> members = dbusData.toStruct();
77 if (members.count() != 2) return InvalidSignature;
78
79 TQ_INT32 values[2];
80
83 for (uint i = 0; it != endIt; ++it, ++i)
84 {
85 bool ok = false;
86 values[i] = (*it).toInt32(&ok);
87 if (!ok) return InvalidSignature;
88 }
89
90 typeData = TQPoint(values[0], values[1]);
91
92 return Success;
93}
94
95template <>
96TQT_DBusDataConverter::Result TQT_DBusDataConverter::convertToTQT_DBusData<TQPoint>(const TQPoint& typeData, TQT_DBusData& dbusData)
97{
99
100 members << TQT_DBusData::fromInt32(typeData.x());
101 members << TQT_DBusData::fromInt32(typeData.y());
102
103 dbusData = TQT_DBusData::fromStruct(members);
104
105 return Success;
106}
107
108template <>
109TQT_DBusDataConverter::Result TQT_DBusDataConverter::convertFromTQT_DBusData<TQSize>(const TQT_DBusData& dbusData, TQSize& typeData)
110{
111 if (dbusData.type() != TQT_DBusData::Struct) return InvalidSignature;
112
113 TQValueList<TQT_DBusData> members = dbusData.toStruct();
114 if (members.count() != 2) return InvalidSignature;
115
116 TQ_INT32 values[2];
117
119 TQValueList<TQT_DBusData>::const_iterator endIt = members.end();
120 for (uint i = 0; it != endIt; ++it, ++i)
121 {
122 bool ok = false;
123 values[i] = (*it).toInt32(&ok);
124 if (!ok) return InvalidSignature;
125 }
126
127 typeData = TQSize(values[0], values[1]);
128
129 return Success;
130}
131
132template <>
133TQT_DBusDataConverter::Result TQT_DBusDataConverter::convertToTQT_DBusData<TQSize>(const TQSize& typeData, TQT_DBusData& dbusData)
134{
136
137 members << TQT_DBusData::fromInt32(typeData.width());
138 members << TQT_DBusData::fromInt32(typeData.height());
139
140 dbusData = TQT_DBusData::fromStruct(members);
141
142 return Success;
143}
Result
Conversion result values.
Class for accurately representing D-Bus data types.
Definition tqdbusdata.h:59
Type type() const
Returns the Type of the data object.
TQValueList< TQT_DBusData > toStruct(bool *ok=0) const
Tries to get the encapsulated struct memberList.
static TQT_DBusData fromStruct(const TQValueList< TQT_DBusData > &memberList)
Creates a data object for the given struct's memberList.
static TQT_DBusData fromInt32(TQ_INT32 value)
Creates a data object for the given signed 32-bit integer value.