X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FServer.h;h=215b7e930d5854e6c7b08c0d073d6d793e72957f;hb=26ba2a65838731ce639a09539f617cb0f0be3b22;hp=b277284ace9b66b099750720903e437aa272972d;hpb=8cb728c2d7a6b70dccb7651f300d9812f645d2ea;p=lyx.git diff --git a/src/Server.h b/src/Server.h index b277284ace..215b7e930d 100644 --- a/src/Server.h +++ b/src/Server.h @@ -14,8 +14,8 @@ #ifndef SERVER_H #define SERVER_H -#include "support/signals.h" - +#include +#include #include #ifdef _WIN32 @@ -30,6 +30,21 @@ namespace lyx { class Server; +/// A small utility to track the lifetime of an object. +class Trackable { +public: + Trackable() : p_(std::make_shared(0)) {} + Trackable(Trackable const &) : Trackable() {} + Trackable(Trackable &&) : Trackable() {} + Trackable & operator=(Trackable const &) { return *this; } + Trackable & operator=(Trackable &&) { return *this; } + // This weak pointer lets you know if the parent object has been destroyed + std::weak_ptr p() const { return p_; } +private: + std::shared_ptr const p_; +}; + + /** This class manages the pipes used for communicating with clients. Usage: Initialize with pipe-filename-base, client class to receive messages, and callback-function that will be called with the messages. @@ -191,7 +206,7 @@ private: bool deferred_loading_; /// Track object's liveness - support::Trackable tracker_; + Trackable tracker_; };