// This is the SIP interface definition for TQSemaphore. // // Copyright (c) 2007 // Riverbank Computing Limited // // This file is part of PyTQt. // // This copy of PyTQt 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. // // PyTQt 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 // PyTQt; see the file LICENSE. If not, write to the Free Software Foundation, // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. %ExportedDoc TQSemaphore (TQt v2.2+) TQSemaphore is fully implemented. The += and -= operators have also been implemented, but require Python v2.0 or later. %End %If (TQt_THREAD_SUPPORT) %If (TQt_3_0_0 -) class TQSemaphore { %TypeHeaderCode #include %End public: TQSemaphore(int); int available() const; int total() const; TQSemaphore &operator+=(int); %MethodCode // Some versions of TQt 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 TQSemaphore &operator-=(int); %MethodCode // Some versions of TQt 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: TQSemaphore(const TQSemaphore &); }; %End %If (TQt_2_2_0 - TQt_3_0_0) class TQSemaphore : TQt { %TypeHeaderCode #include %End public: TQSemaphore(int); int available() const; int total() const; TQSemaphore &operator+=(int); TQSemaphore &operator-=(int); private: TQSemaphore(const TQSemaphore &); }; %End %End