dlib C++ Library - sync_extension_kernel_1.h

// Copyright (C) 2003 Davis E. King (davis@dlib.net)
// License: Boost Software License See LICENSE.txt for the full license.
#ifndef DLIB_SYNC_EXTENSION_KERNEl_1_
#define DLIB_SYNC_EXTENSION_KERNEl_1_
#include "../threads.h"
#include "../algs.h"
#include "sync_extension_kernel_abstract.h"
namespace dlib
{
 template <
 typename base
 >
 class sync_extension_kernel_1 : public base
 {
 rmutex m;
 rsignaler s;
 public:
 sync_extension_kernel_1 () : s(m) {}
 template < typename T >
 sync_extension_kernel_1 (const T& one) : base(one),s(m) {}
 template < typename T, typename U >
 sync_extension_kernel_1 (const T& one, const U& two) : base(one,two),s(m) {}
 const rmutex& get_mutex(
 ) const { return m; }
 void lock (
 ) const { m.lock(); }
 void unlock (
 ) const { m.unlock(); }
 void wait (
 ) const { s.wait(); }
 bool wait_or_timeout (
 unsigned long milliseconds
 ) const { return s.wait_or_timeout(milliseconds); }
 
 void broadcast (
 ) const { s.broadcast(); }
 void signal (
 ) const { s.signal(); }
 };
 template <
 typename base
 >
 inline void swap (
 sync_extension_kernel_1<base>& a, 
 sync_extension_kernel_1<base>& b 
 ) { a.swap(b); }
}
#endif // DLIB_SYNC_EXTENSION_KERNEl_1_

AltStyle によって変換されたページ (->オリジナル) /