/* * Copyright (C) 2015 by Multi-Tech Systems * * This file is part of libmts-io. * * libmts-io is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * libmts-io is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with libmts-io. If not, see . * */ /*! \file MTS_IO_LockFile.h \brief A brief description \date Oct 8, 2014 \author sgodinez A more elaborate description */ #ifndef MTS_IO_LOCKFILE_H_ #define MTS_IO_LOCKFILE_H_ #include #include namespace MTS { namespace IO { class LockFile : MTS::NonCopyable { public: LockFile(const std::string& sFilePath); virtual ~LockFile(); bool lock(uint32_t tryMillis); void unlock(); bool isLocked(); private: std::string m_sFile; int m_iLockFd; int m_iLockErr; }; } } #endif /* MTS_IO_LOCKFILE_H_ */