1 // Created by: Peter KURNEV
2 // Copyright (c) 1999-2013 OPEN CASCADE SAS
4 // The content of this file is subject to the Open CASCADE Technology Public
5 // License Version 6.5 (the "License"). You may not use the content of this file
6 // except in compliance with the License. Please obtain a copy of the License
7 // at http://www.opencascade.org and read it completely before using this file.
9 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
10 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
12 // The Original Code and all software distributed under the License is
13 // distributed on an "AS IS" basis, without warranty of any kind, and the
14 // Initial Developer hereby disclaims all such warranties, including without
15 // limitation, any warranties of merchantability, fitness for a particular
16 // purpose or non-infringement. Please see the License for the specific terms
17 // and conditions governing the rights and limitations under the License.
19 #ifndef _BOPDS_Col_HeaderFile
20 #define _BOPDS_Col_HeaderFile
24 // On Windows, function TryEnterCriticalSection has appeared in Windows NT
25 // and is surrounded by #ifdef in MS VC++ 7.1 headers.
26 // Thus to use it we need to define appropriate macro saying that we wil
27 // run on Windows NT 4.0 at least
28 #if ((defined(_WIN32) || defined(__WIN32__)) && !defined(_WIN32_WINNT))
29 #define _WIN32_WINNT 0x0501
35 #define flexible_range blocked_range
36 #define flexible_for parallel_for
40 #define flexible_range serial_range
41 #define flexible_for serial_for
43 //=======================================================================
44 //class : serial_range
46 //=======================================================================
47 template <class Type> class serial_range {
49 serial_range(const Type& aBegin,
51 : myBegin(aBegin), myEnd(aEnd) {
57 const Type& begin() const{
61 const Type& end() const{
70 //=======================================================================
71 //function : serial_for
73 //=======================================================================
74 template<typename Range, typename Body>
75 static void serial_for( const Range& range, const Body& body ) {
76 body.operator()(range);
78 #endif // not HAVE_TBB