incron 0.5.10

- Main Page
- Classes
- Files

- File List
- File Members

appinst.h
Go to the documentation of this file.

    00001
    00003
    00021 #ifndef APPINST_H_
    00022 #define APPINST_H_
    00023
    00024
    00025 #include <string>
    00026
    00027
    00028 #define APPLOCK_BASEDIR "/var/run"
    00029
    00030
    00032
    00035 class AppInstException
    00036 {
    00037 public:
    00039
    00042   AppInstException(int iErr) : m_iErr(iErr) {}
    00043
    00045
    00048   inline int GetErrorNumber() const
    00049   {
    00050     return m_iErr;
    00051   }
    00052
    00053 private:
    00054   int m_iErr;
    00055
    00056 };
    00057
    00059
    00064 class AppInstance
    00065 {
    00066 public:
    00068
    00075   AppInstance(const std::string& rName, const std::string& rBase = APPLOCK_BASEDIR);
    00076
    00078   ~AppInstance();
    00079
    00081
    00089   bool Lock();
    00090
    00092
    00097   void Unlock();
    00098
    00100
    00107   bool Exists() const;
    00108
    00110
    00116   bool SendSignal(int iSigNo) const;
    00117
    00119
    00124   inline bool Terminate() const
    00125   {
    00126     return SendSignal(SIGTERM);
    00127   }
    00128
    00129 protected:
    00130   bool DoLock();
    00131
    00132 private:
    00133   std::string m_path;
    00134   bool m_fLocked;
    00135 };
    00136
    00137 #endif /*APPINST_H_*/