home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2240.zip / wxWindows-2.4.0 / include / wx / snglinst.h < prev    next >
C/C++ Source or Header  |  2002-08-31  |  2KB  |  68 lines

  1. ///////////////////////////////////////////////////////////////////////////////
  2. // Name:        wx/snglinst.h
  3. // Purpose:     wxSingleInstanceChecker can be used to restrict the number of
  4. //              simultaneously running copies of a program to one
  5. // Author:      Vadim Zeitlin
  6. // Modified by:
  7. // Created:     08.06.01
  8. // RCS-ID:      $Id: snglinst.h,v 1.4 2002/08/31 11:29:11 GD Exp $
  9. // Copyright:   (c) 2001 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
  10. // Licence:     wxWindows licence
  11. ///////////////////////////////////////////////////////////////////////////////
  12.  
  13. #ifndef _WX_SNGLINST_H_
  14. #define _WX_SNGLINST_H_
  15.  
  16. #if defined(__GNUG__) && !defined(__APPLE__)
  17.     #pragma interface "snglinst.h"
  18. #endif
  19.  
  20. #if wxUSE_SNGLINST_CHECKER
  21.  
  22. // ----------------------------------------------------------------------------
  23. // wxSingleInstanceChecker
  24. // ----------------------------------------------------------------------------
  25.  
  26. class WXDLLEXPORT wxSingleInstanceChecker
  27. {
  28. public:
  29.     // default ctor, use Create() after it
  30.     wxSingleInstanceChecker() { Init(); }
  31.  
  32.     // like Create() but no error checking (dangerous!)
  33.     wxSingleInstanceChecker(const wxString& name,
  34.                             const wxString& path = wxEmptyString)
  35.     {
  36.         Init();
  37.         Create(name, path);
  38.     }
  39.  
  40.     // name must be given and be as unique as possible, it is used as the mutex
  41.     // name under Win32 and the lock file name under Unix -
  42.     // wxTheApp->GetAppName() may be a good value for this parameter
  43.     //
  44.     // path is optional and is ignored under Win32 and used as the directory to
  45.     // create the lock file in under Unix (default is wxGetHomeDir())
  46.     //
  47.     // returns FALSE if initialization failed, it doesn't mean that another
  48.     // instance is running - use IsAnotherRunning() to check it
  49.     bool Create(const wxString& name, const wxString& path = wxEmptyString);
  50.  
  51.     // is another copy of this program already running?
  52.     bool IsAnotherRunning() const;
  53.  
  54.     // dtor is not virtual, this class is not meant to be used polymorphically
  55.     ~wxSingleInstanceChecker();
  56.  
  57. private:
  58.     // common part of all ctors
  59.     void Init() { m_impl = NULL; }
  60.  
  61.     // the implementation details (platform specific)
  62.     class WXDLLEXPORT wxSingleInstanceCheckerImpl *m_impl;
  63. };
  64.  
  65. #endif // wxUSE_SNGLINST_CHECKER
  66.  
  67. #endif // _WX_SNGLINST_H_
  68.