aboutsummaryrefslogtreecommitdiffhomepage
path: root/tdactor/td
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2022-10-01 23:48:03 +0300
committerlevlam <levlam@telegram.org>2022-10-01 23:48:03 +0300
commit49e840aae541026b9bec2639e494da462133894b (patch)
tree2f7019448302fd06e9f9eea67d1a834d19f37cd4 /tdactor/td
parentd4d365d31fb4acfeae27d089b403b5e60b1c3680 (diff)
Minor improvements.
Diffstat (limited to 'tdactor/td')
-rw-r--r--tdactor/td/actor/impl/ActorId-decl.h4
-rw-r--r--tdactor/td/actor/impl/ActorId.h5
2 files changed, 7 insertions, 2 deletions
diff --git a/tdactor/td/actor/impl/ActorId-decl.h b/tdactor/td/actor/impl/ActorId-decl.h
index 220abcdb3..2b60c7247 100644
--- a/tdactor/td/actor/impl/ActorId-decl.h
+++ b/tdactor/td/actor/impl/ActorId-decl.h
@@ -50,6 +50,7 @@ class ActorId {
}
ActorInfo *get_actor_info() const;
+
ActorType *get_actor_unsafe() const;
Slice get_name() const;
@@ -63,8 +64,7 @@ class ActorId {
ObjectPool<ActorInfo>::WeakPtr ptr_;
};
-// threat ActorId as pointer and ActorOwn as
-// unique_ptr<ActorId>
+// treat ActorId as pointer and ActorOwn as unique_ptr<ActorId>
template <class ActorType = Actor>
class ActorOwn {
public:
diff --git a/tdactor/td/actor/impl/ActorId.h b/tdactor/td/actor/impl/ActorId.h
index 389833e19..76ef6d9a8 100644
--- a/tdactor/td/actor/impl/ActorId.h
+++ b/tdactor/td/actor/impl/ActorId.h
@@ -170,19 +170,24 @@ void ActorShared<ActorType>::reset(ActorId<ActorType> other) {
template <class T>
ActorRef::ActorRef(const ActorId<T> &actor_id) : actor_id_(actor_id) {
}
+
template <class T>
ActorRef::ActorRef(ActorId<T> &&actor_id) : actor_id_(actor_id) {
actor_id.clear();
}
+
template <class T>
ActorRef::ActorRef(const ActorShared<T> &actor_id) : actor_id_(actor_id.get()), token_(actor_id.token()) {
}
+
template <class T>
ActorRef::ActorRef(ActorShared<T> &&actor_id) : actor_id_(actor_id.release()), token_(actor_id.token()) {
}
+
template <class T>
ActorRef::ActorRef(const ActorOwn<T> &actor_id) : actor_id_(actor_id.get()) {
}
+
template <class T>
ActorRef::ActorRef(ActorOwn<T> &&actor_id) : actor_id_(actor_id.release()) {
}