OpenCPN Partial API docs
instance_check.h
1 /***************************************************************************
2  * Copyright (C) 2023 Alec Leamas *
3  * *
4  * This program is free software; you can redistribute it and/or modify *
5  * it under the terms of the GNU General Public License as published by *
6  * the Free Software Foundation; either version 2 of the License, or *
7  * (at your option) any later version. *
8  * *
9  * This program is distributed in the hope that it will be useful, *
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12  * GNU General Public License for more details. *
13  * *
14  * You should have received a copy of the GNU General Public License *
15  * along with this program; if not, write to the *
16  * Free Software Foundation, Inc., *
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
18  **************************************************************************/
19 
20 #ifndef INSTANCE_CHECK_H__
21 #define INSTANCE_CHECK_H__
22 
23 #include <memory>
24 
27 public:
29  static InstanceCheck& GetInstance();
30 
31  virtual ~InstanceCheck() = default;
32 
34  virtual bool IsMainInstance() = 0;
35 
37  virtual void WaitUntilValid() {};
38 
43  virtual void CleanUp() {};
44 
46  virtual void OnExit () {};
47 };
48 
51 public:
52  static InstanceCheck& GetInstance() {
53  static DummyInstanceChk instance;
54  return instance;
55  }
56 
57  virtual bool IsMainInstance() { return true; }
58 };
59 
60 #endif // INSTANCE_CHECK_H__
Empty place holder, primarely for Android.
virtual bool IsMainInstance()
Return true if this process is the primary opencpn instance.
Common interface for all instance checkers.
static InstanceCheck & GetInstance()
virtual bool IsMainInstance()=0
Return true if this process is the primary opencpn instance.
virtual void CleanUp()
Remove all persistent instance state, including possible lock file and defunct opencpn processes.
virtual void OnExit()
Do whatever needed before wxWidget's checks triggers.
virtual void WaitUntilValid()
Wait until this object can be used for example for Dbus connection.