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());
}
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)
{
if (!ident)

3
src/identity.hh

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

14
src/message.cc

@ -164,7 +164,7 @@ namespace pEp {
}
Message::Message(message *msg)
: _msg(msg)
: _msg(msg, &free_message)
{
}
@ -312,9 +312,17 @@ namespace pEp {
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)

2
src/message.hh

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

9
src/message_api.cc

@ -23,13 +23,10 @@ namespace pEp {
free_stringlist(_extra);
_throw_status(status);
if (!_dst || _dst == _src) {
Message dst(src);
return dst;
}
if (!_dst || _dst == _src)
return Message(_src);
Message dst(_dst);
return dst;
return Message(_dst);
}
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,
"flags (p≡p internal)")
.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";

Loading…
Cancel
Save