| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        snglinst.h
 
- // Purpose:     interface of wxSingleInstanceChecker
 
- // Author:      wxWidgets team
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- /**
 
-     @class wxSingleInstanceChecker
 
-     wxSingleInstanceChecker class allows to check that only a single instance of a
 
-     program is running.
 
-     To do it, you should create an object of this class. As long as this object
 
-     is alive, calls to wxSingleInstanceChecker::IsAnotherRunning from other
 
-     processes will return @true.
 
-     As the object should have the life span as big as possible, it makes sense to
 
-     create it either as a global or in wxApp::OnInit.
 
-     For example:
 
-     @code
 
-     bool MyApp::OnInit()
 
-     {
 
-         m_checker = new wxSingleInstanceChecker;
 
-         if ( m_checker->IsAnotherRunning() )
 
-         {
 
-             wxLogError(_("Another program instance is already running, aborting."));
 
-             delete m_checker; // OnExit() won't be called if we return false
 
-             m_checker = NULL;
 
-             return false;
 
-         }
 
-         ... more initializations ...
 
-         return true;
 
-     }
 
-     int MyApp::OnExit()
 
-     {
 
-         delete m_checker;
 
-         return 0;
 
-     }
 
-     @endcode
 
-     Note that by default wxSingleInstanceChecker::CreateDefault() is used to
 
-     create the checker meaning that it will be initialized differently for
 
-     different users and thus will allow different users to run the application
 
-     concurrently which is usually the required behaviour. However if only a
 
-     single instance of a program should be running system-wide, you need to
 
-     call Create() with a custom name which does @em not include wxGetUserId().
 
-     This class is implemented for Win32 and Unix platforms (supporting @c fcntl()
 
-     system call, but almost all of modern Unix systems do) only.
 
-     @library{wxbase}
 
-     @category{appmanagement}
 
- */
 
- class wxSingleInstanceChecker
 
- {
 
- public:
 
-     /**
 
-         Default constructor.
 
-         You may call Create() after using it or directly call
 
-         IsAnotherRunning() in which case CreateDefault() will be implicitly
 
-         used.
 
-     */
 
-     wxSingleInstanceChecker();
 
-     /**
 
-         Constructor calling Create().
 
-         This constructor does exactly the same thing as Create() but doesn't
 
-         allow to check for errors.
 
-     */
 
-     wxSingleInstanceChecker(const wxString& name,
 
-                             const wxString& path = wxEmptyString);
 
-     /**
 
-         Destructor frees the associated resources.
 
-         Note that it is not virtual, this class is not meant to be used polymorphically.
 
-     */
 
-     ~wxSingleInstanceChecker();
 
-     /**
 
-         Initialize the object if it had been created using the default constructor.
 
-         Note that you can't call Create() more than once, so calling it if the
 
-         non default ctor had been used is an error.
 
-         @param name
 
-             Must be given and be as unique as possible. It is used as the
 
-             mutex name under Win32 and the lock file name under Unix.
 
-             wxApp::GetAppName() and wxGetUserId() are commonly used to construct
 
-             this parameter.
 
-         @param path
 
-             The path is optional and is ignored under Win32 and used as the
 
-             directory to create the lock file in under Unix
 
-             (default is wxGetHomeDir()).
 
-         @return
 
-             Returns @false if initialization failed, it doesn't mean that
 
-             another instance is running -- use IsAnotherRunning() to check for
 
-             it.
 
-         @note
 
-             One of possible reasons while Create() may fail on Unix is that the lock
 
-             file used for checking already exists but was not created by the user.
 
-             Therefore applications shouldn't treat failure of this function as fatal
 
-             condition, because doing so would open them to the possibility of a
 
-             Denial of Service attack. Instead, they should alert the user about
 
-             the problem and offer to continue execution without checking if
 
-             another instance is running.
 
-     */
 
-     bool Create(const wxString& name,
 
-                 const wxString& path = wxEmptyString);
 
-     /**
 
-         Calls Create() with default name.
 
-         This method simply calls Create() with a string composed of
 
-         wxApp::GetAppName() and wxGetUserId().
 
-         Because this method uses wxApp::GetAppName(), it may only be called
 
-         after the global application was constructed.
 
-         @since 2.9.1
 
-      */
 
-     bool CreateDefault();
 
-     /**
 
-         Returns @true if another copy of this program is already running and
 
-         @false otherwise.
 
-         Notice that if the object was created using the default constructor
 
-         Create() hadn't been called before this method, it will call
 
-         CreateDefault() automatically.
 
-     */
 
-     bool IsAnotherRunning() const;
 
- };
 
 
  |