syncpoint.h
上传用户:hzhsqp
上传日期:2007-01-06
资源大小:1600k
文件大小:2k
源码类别:

IP电话/视频会议

开发平台:

Visual C++

  1. /*
  2.  * syncpoint.h
  3.  *
  4.  * Single thread synchronisation point (event) class.
  5.  *
  6.  * Portable Windows Library
  7.  *
  8.  * Copyright (c) 1993-1998 Equivalence Pty. Ltd.
  9.  *
  10.  * The contents of this file are subject to the Mozilla Public License
  11.  * Version 1.0 (the "License"); you may not use this file except in
  12.  * compliance with the License. You may obtain a copy of the License at
  13.  * http://www.mozilla.org/MPL/
  14.  *
  15.  * Software distributed under the License is distributed on an "AS IS"
  16.  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
  17.  * the License for the specific language governing rights and limitations
  18.  * under the License.
  19.  *
  20.  * The Original Code is Portable Windows Library.
  21.  *
  22.  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
  23.  *
  24.  * Portions are Copyright (C) 1993 Free Software Foundation, Inc.
  25.  * All Rights Reserved.
  26.  *
  27.  * Contributor(s): ______________________________________.
  28.  *
  29.  * $Log: syncpoint.h,v $
  30.  * Revision 1.5  1999/03/09 02:59:51  robertj
  31.  * Changed comments to doc++ compatible documentation.
  32.  *
  33.  * Revision 1.4  1999/02/16 08:11:17  robertj
  34.  * MSVC 6.0 compatibility changes.
  35.  *
  36.  * Revision 1.3  1998/11/30 02:52:00  robertj
  37.  * New directory structure
  38.  *
  39.  * Revision 1.2  1998/09/23 06:21:34  robertj
  40.  * Added open source copyright license.
  41.  *
  42.  * Revision 1.1  1998/03/23 02:41:34  robertj
  43.  * Initial revision
  44.  *
  45.  */
  46. #define _PSYNCPOINT
  47. #ifdef __GNUC__
  48. #pragma interface
  49. #endif
  50. #include <ptlib/semaphor.h>
  51. /** This class defines a thread synchonisation object.
  52.   This form of semaphore is used to indicate an {it event} has occurred. A
  53.   thread may block on theis sync point and wait until another thread signals
  54.   that it may continue. eg:
  55. begin{verbatim}
  56.     ... thread one
  57.     while (condition) {
  58.       sync.Wait();
  59.       do_something();
  60.     }
  61.     ... thread 2
  62.     do_something_else();
  63.     sync.Signal();    // At this point thread 1 wake up and does something.
  64.     do_yet_more();
  65. end{verbatim}
  66.  */
  67. class PSyncPoint : public PSemaphore
  68. {
  69.   PCLASSINFO(PSyncPoint, PSemaphore);
  70.   public:
  71.     /** Create a new sync point.
  72.      */
  73.     PSyncPoint();
  74. #ifdef DOC_PLUS_PLUS
  75. };
  76. #endif
  77. // Class declaration continued in platform specific header file ///////////////