[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/base/strigi/src/daemon/dbus
From: Jos van den Oever <jos () vandenoever ! info>
Date: 2006-08-31 21:28:11
Message-ID: 1157059691.595574.1302.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 579345 by vandenoever:
Fixes to messages (de)marshalling in the DBus interface.
M +1 -1 dbusclientinterface.cpp
M +39 -2 dbusmessagereader.cpp
M +4 -1 dbusmessagereader.h
M +17 -17 dbusmessagewriter.cpp
M +1 -1 dbusserver.h
M +17 -0 dbustestinterface.cpp
M +1 -0 dbustestinterface.h
M +4 -0 testinterface.cpp
M +1 -0 testinterface.h
--- trunk/playground/base/strigi/src/daemon/dbus/dbusclientinterface.cpp #579344:579345
@@ -1,4 +1,4 @@
-// generated by makecode.pl
+// generated from dbusclientinterface.h by makecode.pl
#include "dbusclientinterface.h"
#include "dbusmessagereader.h"
#include "dbusmessagewriter.h"
--- trunk/playground/base/strigi/src/daemon/dbus/dbusmessagereader.cpp #579344:579345
@@ -10,16 +10,50 @@
}
}
DBusMessageReader&
-DBusMessageReader::operator>>(int32_t s) {
+DBusMessageReader::operator>>(uint32_t& s) {
if (!isOk()) return *this;
+ if (DBUS_TYPE_UINT32 != dbus_message_iter_get_arg_type(&it)) {
+ close();
+ return *this;
+ }
+ dbus_message_iter_get_basic(&it, &s);
+ dbus_message_iter_next(&it);
+ return *this;
+}
+DBusMessageReader&
+DBusMessageReader::operator>>(int32_t& s) {
+ if (!isOk()) return *this;
if (DBUS_TYPE_INT32 != dbus_message_iter_get_arg_type(&it)) {
close();
return *this;
}
dbus_message_iter_get_basic(&it, &s);
+ dbus_message_iter_next(&it);
return *this;
}
DBusMessageReader&
+DBusMessageReader::operator>>(uint64_t& s) {
+ if (!isOk()) return *this;
+ if (DBUS_TYPE_UINT64 != dbus_message_iter_get_arg_type(&it)) {
+ close();
+ return *this;
+ }
+ dbus_message_iter_get_basic(&it, &s);
+ dbus_message_iter_next(&it);
+ return *this;
+}
+DBusMessageReader&
+DBusMessageReader::operator>>(int64_t& s) {
+ if (!isOk()) return *this;
+ if (DBUS_TYPE_INT64 != dbus_message_iter_get_arg_type(&it)) {
+ close();
+ return *this;
+ }
+ dbus_message_iter_get_basic(&it, &s);
+ dbus_message_iter_next(&it);
+ return *this;
+}
+DBusMessageReader&
DBusMessageReader::operator>>(std::string& s) {
if (!isOk()) return *this;
if (DBUS_TYPE_STRING != dbus_message_iter_get_arg_type(&it)) {
@@ -29,6 +63,7 @@
const char* c;
dbus_message_iter_get_basic(&it, &c);
s.assign(c);
+ dbus_message_iter_next(&it);
return *this;
}
DBusMessageReader&
@@ -48,6 +83,7 @@
dbus_message_iter_get_basic(&sub, &value);
s.insert(value);
} while(dbus_message_iter_next(&sub));
+ dbus_message_iter_next(&it);
return *this;
}
@@ -65,7 +101,8 @@
int length = dbus_message_iter_get_array_len(&sub);
char* array;
dbus_message_iter_get_fixed_array(&sub, &array, &length);
-// s.assign(array, array+length);
+ s.assign(array, array+length);
+ dbus_message_iter_next(&it);
return *this;
}
--- trunk/playground/base/strigi/src/daemon/dbus/dbusmessagereader.h #579344:579345
@@ -29,7 +29,10 @@
DBusMessageReader& operator>>(std::set<std::string>& s);
DBusMessageReader& operator>>(std::vector<char>& s);
DBusMessageReader& operator>>(std::string& s);
- DBusMessageReader& operator>>(int32_t s);
+ DBusMessageReader& operator>>(uint32_t& s);
+ DBusMessageReader& operator>>(int32_t& s);
+ DBusMessageReader& operator>>(uint64_t& s);
+ DBusMessageReader& operator>>(int64_t& s);
bool isOk() const { return ok; }
};
--- trunk/playground/base/strigi/src/daemon/dbus/dbusmessagewriter.cpp #579344:579345
@@ -25,7 +25,6 @@
}
DBusMessageWriter&
DBusMessageWriter::operator<<(bool b) {
- printf("added bool\n");
dbus_message_iter_append_basic(&it, DBUS_TYPE_BOOLEAN, &b);
return *this;
}
@@ -48,7 +47,6 @@
DBusMessageWriter::operator<<(const std::string& s) {
const char* c = s.c_str();
dbus_message_iter_append_basic(&it, DBUS_TYPE_STRING, &c);
- printf("hi\n");
return *this;
}
DBusMessageWriter&
@@ -99,38 +97,40 @@
DBusMessageIter sub;
DBusMessageIter ssub;
DBusMessageIter sssub;
+ DBusMessageIter ssssub;
dbus_message_iter_open_container(&it, DBUS_TYPE_ARRAY,
- "sdsssxxa{ss}", &sub);
+ "(sdsssxxa{ss})", &sub);
vector<jstreams::IndexedDocument>::const_iterator i;
for (i=s.hits.begin(); i!=s.hits.end(); ++i) {
+ dbus_message_iter_open_container(&sub, DBUS_TYPE_STRUCT, 0, &ssub);
const char* c = i->uri.c_str();
- dbus_message_iter_append_basic(&sub, DBUS_TYPE_STRING, &c);
+ dbus_message_iter_append_basic(&ssub, DBUS_TYPE_STRING, &c);
double d = i->score;
- dbus_message_iter_append_basic(&sub, DBUS_TYPE_DOUBLE, &d);
+ dbus_message_iter_append_basic(&ssub, DBUS_TYPE_DOUBLE, &d);
c = i->fragment.c_str();
- dbus_message_iter_append_basic(&sub, DBUS_TYPE_STRING, &c);
+ dbus_message_iter_append_basic(&ssub, DBUS_TYPE_STRING, &c);
c = i->mimetype.c_str();
- dbus_message_iter_append_basic(&sub, DBUS_TYPE_STRING, &c);
+ dbus_message_iter_append_basic(&ssub, DBUS_TYPE_STRING, &c);
c = i->sha1.c_str();
- dbus_message_iter_append_basic(&sub, DBUS_TYPE_STRING, &c);
+ dbus_message_iter_append_basic(&ssub, DBUS_TYPE_STRING, &c);
int64_t n = i->size;
- dbus_message_iter_append_basic(&sub, DBUS_TYPE_INT64, &n);
+ dbus_message_iter_append_basic(&ssub, DBUS_TYPE_INT64, &n);
n = i->mtime;
- dbus_message_iter_append_basic(&sub, DBUS_TYPE_INT64, &n);
- dbus_message_iter_open_container(&sub, DBUS_TYPE_ARRAY, "{ss}", &ssub);
+ dbus_message_iter_append_basic(&ssub, DBUS_TYPE_INT64, &n);
+ dbus_message_iter_open_container(&ssub, DBUS_TYPE_ARRAY, "{ss}",&sssub);
map<string, string>::const_iterator j;
for (j = i->properties.begin(); j != i->properties.end(); ++j) {
- dbus_message_iter_open_container(&ssub, DBUS_TYPE_DICT_ENTRY, 0,
- &sssub);
+ dbus_message_iter_open_container(&sssub, DBUS_TYPE_DICT_ENTRY, 0,
+ &ssssub);
c = j->first.c_str();
- dbus_message_iter_append_basic(&sssub, DBUS_TYPE_STRING, &c);
+ dbus_message_iter_append_basic(&ssssub, DBUS_TYPE_STRING, &c);
c = j->second.c_str();
- dbus_message_iter_append_basic(&sssub, DBUS_TYPE_STRING, &c);
- dbus_message_iter_close_container(&ssub, &sssub);
+ dbus_message_iter_append_basic(&ssssub, DBUS_TYPE_STRING, &c);
+ dbus_message_iter_close_container(&sssub, &ssssub);
}
+ dbus_message_iter_close_container(&ssub, &sssub);
dbus_message_iter_close_container(&sub, &ssub);
}
dbus_message_iter_close_container(&it, &sub);
- printf("%i results\n", s.hits.size());
return *this;
}
--- trunk/playground/base/strigi/src/daemon/dbus/dbusserver.h #579344:579345
@@ -28,7 +28,7 @@
Interface* interface;
void* run(void*);
public:
- DBusServer(Interface* i) :interface(i) {}
+ DBusServer(Interface* i) :StrigiThread("DBusServer"), interface(i) {}
~DBusServer() {}
/**
* return true if the system stopped normally
--- trunk/playground/base/strigi/src/daemon/dbus/dbustestinterface.cpp #579344:579345
@@ -7,6 +7,7 @@
DBusTestInterface::DBusTestInterface(TestInterface* i)
:DBusObjectInterface("vandenoever.dbustest"), impl(i) {
handlers["upload"] = &DBusTestInterface::upload;
+ handlers["concat"] = &DBusTestInterface::concat;
handlers["helloWorld"] = &DBusTestInterface::helloWorld;
handlers["giveMap"] = &DBusTestInterface::giveMap;
}
@@ -30,6 +31,11 @@
<< " <arg name='upload' type='ay' direction='in'/>\n"
<< " <arg name='out' type='b' direction='out'/>\n"
<< " </method>\n"
+ << " <method name='concat'>\n"
+ << " <arg name='a' type='s' direction='in'/>\n"
+ << " <arg name='b' type='s' direction='in'/>\n"
+ << " <arg name='out' type='s' direction='out'/>\n"
+ << " </method>\n"
<< " <method name='helloWorld'>\n"
<< " <arg name='name' type='s' direction='in'/>\n"
<< " <arg name='out' type='s' direction='out'/>\n"
@@ -51,6 +57,17 @@
}
}
void
+DBusTestInterface::concat(DBusMessage* msg, DBusConnection* conn) {
+ DBusMessageReader reader(msg);
+ DBusMessageWriter writer(conn, msg);
+ std::string a;
+ std::string b;
+ reader >> a >> b;
+ if (reader.isOk()) {
+ writer << impl->concat(a,b);
+ }
+}
+void
DBusTestInterface::helloWorld(DBusMessage* msg, DBusConnection* conn) {
DBusMessageReader reader(msg);
DBusMessageWriter writer(conn, msg);
--- trunk/playground/base/strigi/src/daemon/dbus/dbustestinterface.h #579344:579345
@@ -12,6 +12,7 @@
std::map<std::string, handlerFunction> handlers;
DBusHandlerResult handleCall(DBusConnection* connection, DBusMessage* msg);
void upload(DBusMessage* msg, DBusConnection* conn);
+ void concat(DBusMessage* msg, DBusConnection* conn);
void helloWorld(DBusMessage* msg, DBusConnection* conn);
void giveMap(DBusMessage* msg, DBusConnection* conn);
public:
--- trunk/playground/base/strigi/src/daemon/dbus/testinterface.cpp #579344:579345
@@ -5,6 +5,10 @@
TestInterface::helloWorld(const std::string& name) {
return "Hello "+name;
}
+std::string
+TestInterface::concat(const std::string& a, const std::string& b) {
+ return a+b;
+}
bool
TestInterface::upload(const std::vector<char>& upload) {
printf("got file of size %i uploaded\n", upload.size());
--- trunk/playground/base/strigi/src/daemon/dbus/testinterface.h #579344:579345
@@ -9,6 +9,7 @@
public:
TestInterface() {}
std::string helloWorld(const std::string& name);
+ std::string concat(const std::string& a, const std::string& b);
bool upload(const std::vector<char>& upload);
std::map<std::string, std::string> giveMap();
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic