Browse Source

copy and deepcopy, and now for the last… ;-)

PYADPT-55
Volker Birk 9 years ago
parent
commit
02645da219
  1. 14
      src/identity.cc
  2. 3
      src/identity.hh
  3. 14
      src/message.cc
  4. 2
      src/message.hh
  5. 9
      src/message_api.cc
  6. 4
      src/pEpmodule.cc

14
src/identity.cc

@ -116,6 +116,20 @@ namespace pEp {
return _color(rating()); return _color(rating());
} }
Identity Identity::copy()
{
pEp_identity *dup = ::identity_dup(*this);
if (!dup)
throw bad_alloc();
return Identity(dup);
}
Identity Identity::deepcopy(dict&)
{
return copy();
}
Identity identity_attr(pEp_identity *&ident) Identity identity_attr(pEp_identity *&ident)
{ {
if (!ident) if (!ident)

3
src/identity.hh

@ -56,6 +56,9 @@ namespace pEp {
int rating(); int rating();
int color(); int color();
Identity copy();
Identity deepcopy(dict& memo);
}; };
Identity identity_attr(pEp_identity *&ident); Identity identity_attr(pEp_identity *&ident);

14
src/message.cc

@ -164,7 +164,7 @@ namespace pEp {
} }
Message::Message(message *msg) Message::Message(message *msg)
: _msg(msg) : _msg(msg, &free_message)
{ {
} }
@ -312,9 +312,17 @@ namespace pEp {
return _color(outgoing_rating()); return _color(outgoing_rating());
} }
Message Message::deepcopy(dict& memo) Message Message::copy()
{ {
return Message(_str()); message *dup = message_dup(*this);
if (!dup)
throw bad_alloc();
return Message(dup);
}
Message Message::deepcopy(dict&)
{
return copy();
} }
Message outgoing_message(Identity me) Message outgoing_message(Identity me)

2
src/message.hh

@ -129,7 +129,7 @@ namespace pEp {
int outgoing_rating(); int outgoing_rating();
int outgoing_color(); int outgoing_color();
Message deepcopy(dict& memo); Message deepcopy(dict& memo);
Message copy() { return *this; } Message copy();
}; };
Message outgoing_message(Identity me); Message outgoing_message(Identity me);

9
src/message_api.cc

@ -23,13 +23,10 @@ namespace pEp {
free_stringlist(_extra); free_stringlist(_extra);
_throw_status(status); _throw_status(status);
if (!_dst || _dst == _src) { if (!_dst || _dst == _src)
Message dst(src); return Message(_src);
return dst;
}
Message dst(_dst); return Message(_dst);
return dst;
} }
boost::python::tuple decrypt_message(Message src) boost::python::tuple decrypt_message(Message src)

4
src/pEpmodule.cc

@ -92,7 +92,9 @@ BOOST_PYTHON_MODULE(pEp)
(void(Identity::*)(identity_flags_t)) &Identity::flags, (void(Identity::*)(identity_flags_t)) &Identity::flags,
"flags (p≡p internal)") "flags (p≡p internal)")
.add_property("rating", &Identity::rating, "rating of Identity") .add_property("rating", &Identity::rating, "rating of Identity")
.add_property("color", &Identity::color, "color of Identity"); .add_property("color", &Identity::color, "color of Identity")
.def("__deepcopy__", &Identity::deepcopy)
.def("__copy__", &Identity::copy);
identity_class.attr("PEP_OWN_USERID") = "pEp_own_userId"; identity_class.attr("PEP_OWN_USERID") = "pEp_own_userId";

Loading…
Cancel
Save