亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? activity.h

?? This software aims to create an applet and panel tools to manage a wireless interface card, such as
?? H
字號:
//
// Activity.h
//
// $Id: //poco/Main/Foundation/include/Foundation/Activity.h#5 $
//
// Definition of the Activity template class.
//
// Copyright (c) 2004, Guenter Obiltschnig/Applied Informatics.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
//
// 1. Redistributions of source code must retain the above copyright
//    notice, this list of conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright
//    notice, this list of conditions and the following disclaimer in the
//    documentation and/or other materials provided with the distribution.
//
// 3. Redistributions in any form must be accompanied by information on
//    how to obtain complete source code for this software and any
//    accompanying software that uses this software.  The source code
//    must either be included in the distribution or be available for no
//    more than the cost of distribution plus a nominal fee, and must be
//    freely redistributable under reasonable conditions.  For an
//    executable file, complete source code means the source code for all
//    modules it contains.  It does not include source code for modules or
//    files that typically accompany the major components of the operating
//    system on which the executable file runs.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
//


#ifndef Foundation_Activity_INCLUDED
#define Foundation_Activity_INCLUDED


#ifndef Foundation_Foundation_INCLUDED
#include "Foundation/Foundation.h"
#endif
#ifndef Foundation_RunnableAdapter_INCLUDED
#include "Foundation/RunnableAdapter.h"
#endif
#ifndef Foundation_ThreadPool_INCLUDED
#include "Foundation/ThreadPool.h"
#endif
#ifndef Foundation_Event_INCLUDED
#include "Foundation/Event.h"
#endif
#ifndef Foundation_Mutex_INCLUDED
#include "Foundation/Mutex.h"
#endif


Foundation_BEGIN


template <class C>
class Activity: public Runnable
	/// This template class helps to implement active objects.
	/// An active object uses threads to decouple method
	/// execution from method invocation, or to perform tasks
	/// autonomously, without intervention of a caller.
	///
	/// An activity is a (typically longer running) method
	/// that executes within its own task. Activities can
	/// be started automatically (upon object construction)
	/// or manually at a later time. Activities can also
	/// be stopped at any time. However, to make stopping
	/// an activity work, the method implementing the
	/// activity has to check periodically whether it
	/// has been requested to stop, and if so, return. 
	/// Activities are stopped before the object they belong to is
	/// destroyed. Methods implementing activities cannot have arguments
	/// or return values. 
	///
	/// Activity objects are used as follows:
	///
	///		class ActiveObject
	///		{
	///		public:
	///			ActiveObject(): 
	///				_activity(this, &ActiveObject::runActivity)
	///			{
	///				...
	///			}
	///
	///			...
	///
	///		protected:
	///			void runActivity()
	///			{
	///				while (!_activity.isStopped())
	///				{
	///					...
	///				}
	///			}
	///
	///		private:
	///			Activity<ActiveObject> _activity;
	///		};
{
public:
	typedef RunnableAdapter<C> RunnableAdapterType;
	typedef typename RunnableAdapterType::Callback Callback;

	Activity(C* pOwner, Callback method):
		_pOwner(pOwner),
		_runnable(*pOwner, method),
		_stopped(true),
		_running(false),
		_done(false)
		/// Creates the activity. Call start() to
		/// start it.
	{
		poco_check_ptr (pOwner);
	}
	
	~Activity()
		/// Stops and destroys the activity.
	{
		stop();
		wait();
	}
	
	void start()
		/// Starts the activity by acquiring a
		/// thread for it from the default thread pool.
	{
		FastMutex::ScopedLock lock(_mutex);
		
		if (_stopped)
		{
			_done.reset();
			_stopped = false;
			_running = true;
			try
			{
				ThreadPool::defaultPool().start(*this);
			}
			catch (...)
			{
				_running = false;
				throw;
			}
		}
	}
	
	void stop()
		/// Requests to stop the activity.
	{
		FastMutex::ScopedLock lock(_mutex);

		_stopped = true;
	}
	
	void wait()
		/// Waits for the activity to complete.
	{
		if (_running)
		{
			_done.wait();
		}
	}

	void wait(long milliseconds)
		/// Waits the given interval for the activity to complete.
		/// An TimeoutException is thrown if the activity does not
		/// complete within the given interval.
	{
		if (_running)
		{
			_done.wait(milliseconds);
		}
	}
	
	bool isStopped() const
		/// Returns true if the activity has been requested to stop.
	{
		return _stopped;
	}
	
	bool isRunning() const
		/// Returns true if the activity is running.
	{
		return _running;
	}

protected:
	void run()
	{
		try
		{
			_runnable.run();
		}
		catch (...)
		{
			_running = false;
			_done.set();
			throw;
		}
		_running = false;
		_done.set();
	}
	
private:
	Activity();
	Activity(const Activity&);
	Activity& operator = (const Activity&);

	C*                  _pOwner;
	RunnableAdapterType _runnable;
	volatile bool       _stopped;
	volatile bool       _running;
	Event               _done;
	FastMutex           _mutex;
};


Foundation_END


#endif // Foundation_Activity_INCLUDED

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久爱www久久做| 国产精品国产三级国产普通话99| 日韩精品中文字幕一区二区三区| 精品美女被调教视频大全网站| 国产视频一区在线播放| 亚洲乱码精品一二三四区日韩在线| 亚洲电影一区二区三区| 国产综合成人久久大片91| 99免费精品视频| 欧美狂野另类xxxxoooo| 久久免费看少妇高潮| 亚洲精品乱码久久久久久| 日韩黄色免费电影| 成人免费观看视频| 欧美日韩精品电影| 国产婷婷色一区二区三区在线| 一区二区三区自拍| 激情综合一区二区三区| 在线亚洲一区二区| 欧美精品一区二区三区蜜桃 | 偷偷要91色婷婷| 国产福利视频一区二区三区| 欧美综合欧美视频| 国产色爱av资源综合区| 午夜伊人狠狠久久| 成人h动漫精品| 日韩视频免费观看高清完整版在线观看 | 一区二区三区影院| 国内精品伊人久久久久影院对白| 在线观看欧美日本| 国产肉丝袜一区二区| 午夜影视日本亚洲欧洲精品| 99久久精品国产观看| 欧美mv和日韩mv的网站| 午夜伊人狠狠久久| 91美女蜜桃在线| 日本一区二区免费在线观看视频| 日韩和欧美的一区| 色综合天天性综合| 久久精品夜色噜噜亚洲aⅴ| 日韩精品免费专区| 91国偷自产一区二区使用方法| 国产婷婷色一区二区三区| 蜜乳av一区二区| 欧美日韩黄色影视| 日韩伦理电影网| 国产高清不卡二三区| 欧美一卡二卡三卡四卡| 亚洲成人黄色影院| 99久久国产综合精品女不卡| 精品国产乱码91久久久久久网站| 天天av天天翘天天综合网色鬼国产| 91视频在线观看| 日本一区二区三区在线不卡| 麻豆高清免费国产一区| 欧美日韩激情一区二区| 亚洲永久免费视频| 91论坛在线播放| 亚洲欧洲美洲综合色网| 国产91在线观看丝袜| 久久综合av免费| 极品美女销魂一区二区三区| 日韩精品一区二区三区视频播放| 午夜久久久影院| 欧美日韩国产首页在线观看| 一区二区三区**美女毛片| 91在线观看污| 成人教育av在线| 久久久噜噜噜久噜久久综合| 国内精品伊人久久久久av影院| 日韩精品中文字幕在线不卡尤物| 久久精品国产在热久久| 欧美一激情一区二区三区| 日本在线播放一区二区三区| 9191久久久久久久久久久| 午夜激情久久久| 91精品国产欧美一区二区| 石原莉奈在线亚洲三区| 91精品国产91综合久久蜜臀| 蜜臀av一区二区在线观看| 日韩一区二区在线看片| 久久精品国产久精国产爱| 欧美大片在线观看| 国产一区二区成人久久免费影院| 久久婷婷国产综合国色天香| 国产精品资源站在线| 欧美国产日韩精品免费观看| 99久久精品情趣| 亚洲午夜在线电影| 91.成人天堂一区| 久久超碰97中文字幕| 欧美精品一区二区三| 国产成人丝袜美腿| 亚洲视频在线一区观看| 欧美伊人久久久久久久久影院| 午夜电影一区二区| 日韩精品一区在线| 成人性生交大片免费看中文| 成人欧美一区二区三区小说 | 一区二区三区四区亚洲| 欧美喷水一区二区| 激情丁香综合五月| 国产精品久久久久久户外露出 | 亚洲国产一区在线观看| 91精品久久久久久蜜臀| 国产剧情av麻豆香蕉精品| 国产精品进线69影院| 欧美日韩一区三区四区| 国内成人精品2018免费看| 国产精品视频看| 欧美亚洲综合一区| 久久91精品国产91久久小草 | 色爱区综合激月婷婷| 人禽交欧美网站| 国产欧美视频一区二区三区| 色欧美88888久久久久久影院| 日韩在线播放一区二区| 国产区在线观看成人精品| 91久久一区二区| 久久精品久久99精品久久| 中文字幕在线观看不卡视频| 7777精品伊人久久久大香线蕉的| 国产乱码精品一区二区三区忘忧草| 自拍av一区二区三区| 日韩片之四级片| 97久久人人超碰| 美女视频网站久久| 亚洲人xxxx| 久久综合色综合88| 91在线免费看| 国产乱码字幕精品高清av| 亚洲一区免费在线观看| 久久精品亚洲精品国产欧美| 欧美视频中文一区二区三区在线观看| 韩国成人在线视频| 亚洲最大成人网4388xx| 国产亚洲欧洲997久久综合| 欧美日韩免费观看一区二区三区| 国产很黄免费观看久久| 亚洲3atv精品一区二区三区| 国产精品天美传媒| 日韩视频免费观看高清在线视频| 色综合色综合色综合| 国产乱码精品一区二区三区av| 午夜精品久久久久影视| 椎名由奈av一区二区三区| 精品成人免费观看| 欧美吞精做爰啪啪高潮| av一本久道久久综合久久鬼色| 免费高清在线视频一区·| 亚洲精品福利视频网站| 中文字幕欧美国产| 精品久久久久久久久久久久久久久| 色琪琪一区二区三区亚洲区| 成人美女在线观看| 国产一区在线观看视频| 日韩精品亚洲专区| 亚洲午夜电影网| 亚洲色图都市小说| 中文字幕第一区综合| 久久伊人中文字幕| 日韩欧美一区在线观看| 欧美情侣在线播放| 欧美自拍偷拍午夜视频| 91丨九色porny丨蝌蚪| 顶级嫩模精品视频在线看| 国模冰冰炮一区二区| 毛片av一区二区| 蜜桃av噜噜一区二区三区小说| 丝袜美腿成人在线| 亚洲444eee在线观看| 亚洲成av人片在www色猫咪| 亚洲欧美日韩国产中文在线| 亚洲欧美在线观看| 成人欧美一区二区三区1314| 国产欧美日韩精品在线| 久久久精品免费网站| 久久久久国产精品人| 久久亚洲综合av| 国产亚洲午夜高清国产拍精品 | 成人激情动漫在线观看| 国产激情精品久久久第一区二区| 国内精品久久久久影院色| 国内精品写真在线观看| 国内成人自拍视频| 国产成人免费视频一区| 丰满岳乱妇一区二区三区| 成人中文字幕电影| jlzzjlzz国产精品久久| 99九九99九九九视频精品| 99免费精品视频| 日本道在线观看一区二区| 日本丶国产丶欧美色综合| 欧美视频中文一区二区三区在线观看| 欧美亚洲尤物久久| 欧美日韩二区三区| 日韩欧美国产1| 国产亚洲女人久久久久毛片| 欧美国产一区二区| 自拍偷拍国产精品|