ProteoWizard
Once.hpp
Go to the documentation of this file.
1 //
2 // $Id: Once.hpp 2043 2010-06-11 19:46:18Z chambm $
3 //
4 //
5 // Original author: Matt Chambers <matt.chambers .@. vanderbilt.edu>
6 //
7 // Copyright 2010 Vanderbilt University - Nashville, TN 37232
8 //
9 // Licensed under the Apache License, Version 2.0 (the "License");
10 // you may not use this file except in compliance with the License.
11 // You may obtain a copy of the License at
12 //
13 // http://www.apache.org/licenses/LICENSE-2.0
14 //
15 // Unless required by applicable law or agreed to in writing, software
16 // distributed under the License is distributed on an "AS IS" BASIS,
17 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 // See the License for the specific language governing permissions and
19 // limitations under the License.
20 //
21 
22 #ifndef _ONCE_HPP_
23 #define _ONCE_HPP_
24 
25 #include <boost/thread/once.hpp>
26 
27 
28 namespace pwiz {
29 namespace util {
30 
31 
32 // since the call_once implementation may be defined as an aggregate,
33 // this proxy class can be used for initializing per-instance once_flags
35 {
36  boost::once_flag flag;
37 };
38 
39 /// this proxy class can be used for initializing per-instance once_flag_proxy(s)
40 static once_flag_proxy init_once_flag_proxy = {BOOST_ONCE_INIT};
41 
42 
43 } // namespace util
44 } // namespace pwiz
45 
46 #endif // _ONCE_HPP_