// This is the SIP interface definition for QSemaphore. // // Copyright (c) 2007 // Riverbank Computing Limited // // This file is part of PyQt. // // This copy of PyQt is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by the Free // Software Foundation; either version 2, or (at your option) any later // version. // // PyQt is supplied 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 General Public License for more // details. // // You should have received a copy of the GNU General Public License along with // PyQt; see the file LICENSE. If not, write to the Free Software Foundation, // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. %ExportedDoc QSemaphore (Qt v2.2+) QSemaphore is fully implemented. The += and -= operators have also been implemented, but require Python v2.0 or later. %End %If (Qt_THREAD_SUPPORT) %If (Qt_3_0_0 -) class QSemaphore { %TypeHeaderCode #include %End public: QSemaphore(int); int available() const; int total() const; QSemaphore &operator+=(int); %MethodCode // Some versions of Qt v3 under Windows have a bug where the += // operator doesn't work properly (but ++ does). This way we // make sure that the most common value of n (ie. 1) works // properly with the buggy version. Py_BEGIN_ALLOW_THREADS if (a0 == 1) (*sipCpp)++; else (*sipCpp) += a0; Py_END_ALLOW_THREADS %End QSemaphore &operator-=(int); %MethodCode // Some versions of Qt v3 under Windows have a bug where the -= // operator doesn't work properly (but -- does). This way we // make sure that the most common value of n (ie. 1) works // properly with the buggy version. Py_BEGIN_ALLOW_THREADS if (a0 == 1) (*sipCpp)--; else (*sipCpp) -= a0; Py_END_ALLOW_THREADS %End bool tryAccess(int); private: QSemaphore(const QSemaphore &); }; %End %If (Qt_2_2_0 - Qt_3_0_0) class QSemaphore : Qt { %TypeHeaderCode #include %End public: QSemaphore(int); int available() const; int total() const; QSemaphore &operator+=(int); QSemaphore &operator-=(int); private: QSemaphore(const QSemaphore &); }; %End %End