3 commits - src/kolabconversions.h src/kolabformat.cpp src/kolabformat.h src/utils.cpp src/utils.h src/xcalconversions.h src/xcardconversions.h
Christian Mollekopf
mollekopf at kolabsys.com
Wed Apr 25 16:59:11 CEST 2012
src/kolabconversions.h | 2 +-
src/kolabformat.cpp | 26 +++++++++++++-------------
src/kolabformat.h | 23 ++++++++++++++++-------
src/utils.cpp | 14 ++++++++++++++
src/utils.h | 7 ++++++-
src/xcalconversions.h | 2 +-
src/xcardconversions.h | 2 +-
7 files changed, 52 insertions(+), 24 deletions(-)
New commits:
commit 3d971e3d828669c314f71dbb6674f919738874c8
Merge: 230dcca 2431cf8
Author: Christian Mollekopf <mollekopf at kolabsys.com>
Date: Wed Apr 25 16:58:42 2012 +0200
Merge branch 'master' of ssh://git.kolab.org/git/libkolabxml
commit 230dccad58b9fc04d2712fa6165be0bc9218ea47
Author: Christian Mollekopf <mollekopf at kolabsys.com>
Date: Wed Apr 25 16:00:20 2012 +0200
log warnings too
diff --git a/src/utils.cpp b/src/utils.cpp
index 4b4f60b..4991d14 100644
--- a/src/utils.cpp
+++ b/src/utils.cpp
@@ -156,6 +156,10 @@ void logMessage(const std::string &m, ErrorSeverity s)
break;
case Warning:
std::cerr << "Warning: " << m << std::endl;
+ if (ThreadLocal::inst().errorBit < Warning) {
+ ThreadLocal::inst().errorBit = Warning;
+ ThreadLocal::inst().errorMessage = m;
+ }
break;
case Error:
std::cerr << "Error: " << m << std::endl;
commit 19e7d9e3326dc97823aabfbefd63555e1d680eaf
Author: Christian Mollekopf <mollekopf at kolabsys.com>
Date: Tue Apr 24 09:28:46 2012 +0200
Use passed in product id.
diff --git a/src/kolabconversions.h b/src/kolabconversions.h
index a48c2ae..08f0ee0 100644
--- a/src/kolabconversions.h
+++ b/src/kolabconversions.h
@@ -55,7 +55,7 @@ std::string serializeObject(const Kolab::Note ¬e, const std::string prod = st
created = fromDateTime(timestamp());
}
- KolabXSD::Note n(getUID(note.uid()), prod+KOLAB_LIB_VERSION_STRING, created, fromDateTime(timestamp()));
+ KolabXSD::Note n(getUID(note.uid()), getProductId(prod), created, fromDateTime(timestamp()));
if (!note.categories().empty()) {
KolabXSD::Note::categories_sequence categories;
diff --git a/src/kolabformat.cpp b/src/kolabformat.cpp
index 466d4be..192b48d 100644
--- a/src/kolabformat.cpp
+++ b/src/kolabformat.cpp
@@ -70,9 +70,9 @@ Kolab::Event readEvent(const std::string& s, bool isUrl)
return *ptr;
}
-std::string writeEvent(const Kolab::Event &event)
+std::string writeEvent(const Kolab::Event &event, const std::string& productId)
{
- return XCAL::serializeIncidence< XCAL::IncidenceTrait<Kolab::Event> >(event);
+ return XCAL::serializeIncidence< XCAL::IncidenceTrait<Kolab::Event> >(event, productId);
}
Kolab::Todo readTodo(const std::string& s, bool isUrl)
@@ -84,9 +84,9 @@ Kolab::Todo readTodo(const std::string& s, bool isUrl)
return *ptr;
}
-std::string writeTodo(const Kolab::Todo &event)
+std::string writeTodo(const Kolab::Todo &event, const std::string& productId)
{
- return XCAL::serializeIncidence< XCAL::IncidenceTrait<Kolab::Todo> >(event);
+ return XCAL::serializeIncidence< XCAL::IncidenceTrait<Kolab::Todo> >(event, productId);
}
Journal readJournal(const std::string& s, bool isUrl)
@@ -98,9 +98,9 @@ Journal readJournal(const std::string& s, bool isUrl)
return *ptr;
}
-std::string writeJournal(const Kolab::Journal &j)
+std::string writeJournal(const Kolab::Journal &j, const std::string& productId)
{
- return XCAL::serializeIncidence<XCAL::IncidenceTrait<Kolab::Journal> >(j);
+ return XCAL::serializeIncidence<XCAL::IncidenceTrait<Kolab::Journal> >(j, productId);
}
@@ -113,9 +113,9 @@ Kolab::Contact readContact(const std::string& s, bool isUrl)
return *ptr;
}
-std::string writeContact(const Contact &contact)
+std::string writeContact(const Contact &contact, const std::string& productId)
{
- return XCARD::serializeCard(contact);
+ return XCARD::serializeCard(contact, productId);
}
DistList readDistlist(const std::string& s, bool isUrl)
@@ -127,9 +127,9 @@ DistList readDistlist(const std::string& s, bool isUrl)
return *ptr;
}
-std::string writeDistlist(const DistList &list)
+std::string writeDistlist(const DistList &list, const std::string& productId)
{
- return XCARD::serializeCard(list);
+ return XCARD::serializeCard(list, productId);
}
Note readNote(const std::string& s, bool isUrl)
@@ -142,9 +142,9 @@ Note readNote(const std::string& s, bool isUrl)
return Note();
}
-std::string writeNote(const Note ¬e)
+std::string writeNote(const Note ¬e, const std::string& productId)
{
- return Kolab::KolabObjects::serializeObject<Kolab::Note>(note);
+ return Kolab::KolabObjects::serializeObject<Kolab::Note>(note, productId);
}
Configuration readConfiguration(const std::string& /*s*/, bool /*isUrl*/)
@@ -157,7 +157,7 @@ Configuration readConfiguration(const std::string& /*s*/, bool /*isUrl*/)
return Configuration();
}
-std::string writeConfiguration(const Configuration &/*config*/)
+std::string writeConfiguration(const Configuration &/*config*/, const std::string& /*productId*/)
{
// return serializeConfiguration(config);
return std::string();
diff --git a/src/kolabformat.h b/src/kolabformat.h
index 991bea3..6b016b2 100644
--- a/src/kolabformat.h
+++ b/src/kolabformat.h
@@ -69,26 +69,35 @@ std::string getSerializedUID();
*/
void overrideTimestamp(const Kolab::cDateTime &dt);
+/**
+ * Serializing functions for kolab objects.
+ *
+ * Check error() to see if the operation was successful.
+ *
+ * @param isUrl if true, the file with the url @param s is opened and read.
+ * @param productId Sets the productid on serialization. Note that the versionstring of libkolabxml will be appended to the productId.
+ */
+
Kolab::Event readEvent(const std::string& s, bool isUrl);
-std::string writeEvent(const Kolab::Event &);
+std::string writeEvent(const Kolab::Event &, const std::string& productId = std::string());
Kolab::Todo readTodo(const std::string& s, bool isUrl);
-std::string writeTodo(const Kolab::Todo &);
+std::string writeTodo(const Kolab::Todo &, const std::string& productId = std::string());
Kolab::Journal readJournal(const std::string& s, bool isUrl);
-std::string writeJournal(const Kolab::Journal &);
+std::string writeJournal(const Kolab::Journal &, const std::string& productId = std::string());
Kolab::Contact readContact(const std::string& s, bool isUrl);
-std::string writeContact(const Kolab::Contact &);
+std::string writeContact(const Kolab::Contact &, const std::string& productId = std::string());
Kolab::DistList readDistlist(const std::string& s, bool isUrl);
-std::string writeDistlist(const Kolab::DistList &);
+std::string writeDistlist(const Kolab::DistList &, const std::string& productId = std::string());
Kolab::Note readNote(const std::string& s, bool isUrl);
-std::string writeNote(const Kolab::Note &);
+std::string writeNote(const Kolab::Note &, const std::string& productId = std::string());
Kolab::Configuration readConfiguration(const std::string& s, bool isUrl);
-std::string writeConfiguration(const Kolab::Configuration &);
+std::string writeConfiguration(const Kolab::Configuration &, const std::string& productId = std::string());
}
diff --git a/src/utils.cpp b/src/utils.cpp
index ffbbea0..4b4f60b 100644
--- a/src/utils.cpp
+++ b/src/utils.cpp
@@ -33,6 +33,7 @@
#include <time.h>
#include "base64.h"
#include "uricode.h"
+#include "libkolabxml-version.h"
namespace Kolab {
@@ -265,6 +266,15 @@ std::string fromMailto(const std::string &mailtoUri)
return fromMailto(mailtoUri, n);
}
+std::string getProductId(const std::string& clientProdid)
+{
+ if (clientProdid.empty()) {
+ return KOLAB_LIB_VERSION_STRING;
+ }
+ return clientProdid + " " + KOLAB_LIB_VERSION_STRING;
+}
+
+
} //Namespace
} //Namespace
diff --git a/src/utils.h b/src/utils.h
index fe84d1e..7ed26b9 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -42,7 +42,7 @@ void logMessage(const std::string &, ErrorSeverity s = Warning);
/**
- * The following values must be updated by the serialization/deserialization functinos
+ * The following values must be updated by the serialization/deserialization functions
*/
@@ -121,6 +121,11 @@ std::string toMailto(const std::string &email, const std::string &name = std::st
std::string fromMailto(const std::string &mailtoUri, std::string &name);
std::string fromMailto(const std::string &mailtoUri);
+/**
+ * Appends the libkolabxml productid and returns the string
+ */
+std::string getProductId(const std::string &clientProdid);
+
} //Namespace
} //Namespace
diff --git a/src/xcalconversions.h b/src/xcalconversions.h
index 759893a..5daf9f9 100644
--- a/src/xcalconversions.h
+++ b/src/xcalconversions.h
@@ -1618,7 +1618,7 @@ std::string serializeIncidence(const typename T::IncidenceType &incidence, const
VcalendarType::components_type components;
T::addIncidence(components, inc);
- VcalendarType::properties_type::prodid_type prodid(productid+KOLAB_LIB_VERSION_STRING); //FIXME own version field for lib version
+ VcalendarType::properties_type::prodid_type prodid(getProductId(productid));
VcalendarType::properties_type::version_type version(XCAL_VERSION);
VcalendarType::properties_type::x_kolab_version_type x_kolab_version(KOLAB_FORMAT_VERSION);
diff --git a/src/xcardconversions.h b/src/xcardconversions.h
index 39d6db1..ae6a2f5 100644
--- a/src/xcardconversions.h
+++ b/src/xcardconversions.h
@@ -762,7 +762,7 @@ std::string serializeCard(const T &card, const std::string prod = std::string())
vcard_4_0::vcard::uid_type uid(Shared::toURN(getUID(card.uid())));
setCreatedUid(Shared::fromURN(uid.uri()));
vcard_4_0::vcard::x_kolab_version_type kolab_version(KOLAB_FORMAT_VERSION);
- vcard_4_0::vcard::prodid_type prodid(prod+KOLAB_LIB_VERSION_STRING);
+ vcard_4_0::vcard::prodid_type prodid(getProductId(prod));
vcard_4_0::vcard::rev_type rev(fromDateTime(timestamp()));
vcard_4_0::vcard::kind_type kind(getType<T>());
vcard_4_0::vcard::fn_type fn(card.name());
More information about the commits
mailing list