]> git.lyx.org Git - lyx.git/blobdiff - src/Server.h
Update Win installer for new dictionary links. Untested.
[lyx.git] / src / Server.h
index b277284ace9b66b099750720903e437aa272972d..215b7e930d5854e6c7b08c0d073d6d793e72957f 100644 (file)
@@ -14,8 +14,8 @@
 #ifndef SERVER_H
 #define SERVER_H
 
-#include "support/signals.h"
-
+#include <memory>
+#include <string>
 #include <vector>
 
 #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<int>(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<void> p() const { return p_; }
+private:
+       std::shared_ptr<void> 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_;
 };