Tianchi  v0.0.2 build 20130701
C++ library for Qt with VC & mingW
tcsingleinstance.h
1 // **************************************************************************
2 // Tianchi C++ library for Qt (open source)
3 // 天池共享源码库
4 // 版权所有 (C) 天池共享源码库开发组
5 // 授权协议:请阅读天池共享源码库附带的授权协议
6 // **************************************************************************
7 // 文档说明:应用程序单实例类
8 // 使用了 QLocalSocket / QLocalServer 方式实现,为本地多实例应用间通
9 // 讯保留扩展的可能。
10 // ==========================================================================
11 // 开发日志:
12 // 日期 人员 说明
13 // --------------------------------------------------------------------------
14 // 2013.04.19 圣域天子 建立
15 //
16 // ==========================================================================
17 // @file SingleInstance.h 应用程序单实例类
18 // ==========================================================================
19 #ifndef TIANCHI_TCSINGLEINSTANCE_H
20 #define TIANCHI_TCSINGLEINSTANCE_H
21 
22 #include <tianchi/tcglobal.h>
23 
24 #include <QLocalSocket>
25 #include <QLocalServer>
26 
50 class TIANCHI_API TcSingleInstance
51 {
52 public:
55  TcSingleInstance(QString instanceName)
56  {
57  init(0, instanceName);
58  }
62  TcSingleInstance(QObject* parent, QString instanceName)
63  {
64  init(parent, instanceName);
65  }
68  bool first() const { return m_first; }
69 
70 protected:
71  bool m_first;
72  QString m_instanceName;
73  QLocalSocket m_localSocket;
74  QLocalServer* m_localServer;
75 
76 private:
77  void init(QObject* parent, QString instanceName);
78 };
79 
80 #endif // TIANCHI_SINGLEINSTANCE_H