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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? application.h

?? This software aims to create an applet and panel tools to manage a wireless interface card, such as
?? H
字號(hào):
//
// Application.h
//
// $Id: //poco/Main/Util/include/Util/Application.h#4 $
//
// Definition of the Application class.
//
// Copyright (c) 2004-2005, 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 Util_Application_INCLUDED
#define Util_Application_INCLUDED


#ifndef Util_Util_INCLUDED
#include "Util/Util.h"
#endif
#ifndef Util_Subsystem_INCLUDED
#include "Util/Subsystem.h"
#endif
#ifndef Util_LayeredConfiguration_INCLUDED
#include "Util/LayeredConfiguration.h"
#endif
#ifndef Util_OptionSet_INCLUDED
#include "Util/OptionSet.h"
#endif
#ifndef Foundation_AutoPtr_INCLUDED
#include "Foundation/AutoPtr.h"
#endif
#ifndef Foundation_Logger_INCLUDED
#include "Foundation/Logger.h"
#endif
#ifndef Foundation_Path_INCLUDED
#include "Foundation/Path.h"
#endif
#ifndef STD_VECTOR_INCLUDED
#include <vector>
#define STD_VECTOR_INCLUDED
#endif


Util_BEGIN


class OptionSet;


class Util_API Application: public Subsystem
	/// The Application class implements the main subsystem
	/// in a process. The application class is responsible for
	/// initializing all its subsystems.
	///
	/// Subclasses can and should override the following virtual methods:
	///   - initialize() (the one-argument, protected variant)
	///   - uninitialize()
	///   - reinitialize()
	///   - defineOptions()
	///   - handleOptions()
	///   - main()
	///
	/// The application's main logic should be implemented in
	/// the main() method.
	///
	/// There may be at most one instance of the Application class
	/// in a process.
{
public:
	enum ExitCode
		/// Commonly used exit status codes.
		/// Based on the definitions in the 4.3BSD <sysexits.h> header file.
	{
		EXIT_OK          = 0,  /// successful termination
		EXIT_USAGE	     = 64, /// command line usage error
		EXIT_DATAERR     = 65, /// data format error
		EXIT_NOINPUT     = 66, /// cannot open input
		EXIT_NOUSER      = 67, /// addressee unknown
		EXIT_NOHOST      = 68, /// host name unknown
		EXIT_UNAVAILABLE = 69, /// service unavailable
		EXIT_SOFTWARE    = 70, /// internal software error
		EXIT_OSERR	     = 71, /// system error (e.g., can't fork)
		EXIT_OSFILE      = 72, /// critical OS file missing
		EXIT_CANTCREAT   = 73, /// can't create (user) output file
		EXIT_IOERR       = 74, /// input/output error
		EXIT_TEMPFAIL    = 75, /// temp failure; user is invited to retry
		EXIT_PROTOCOL    = 76, /// remote error in protocol
		EXIT_NOPERM      = 77, /// permission denied
		EXIT_CONFIG      = 78  /// configuration error
	};
	
	Application();
		/// Creates the Application.

	Application(int argc, char* argv[]);
		/// Creates the Application and calls initialize(argc, argv).

	void addSubsystem(Subsystem* pSubsystem);
		/// Adds a new subsystem to the application. The
		/// application immediately takes ownership of it, so that a
		/// call in the form
		///     Application::instance().addSubsystem(new MySubsystem);
		/// is okay.

	void init(int argc, char* argv[]);
		/// Initializes the application and all registered subsystems,
		/// using the given command line arguments.

	bool initialized() const;
		/// Returns true iff the application is in initialized state
		/// (that means, has been initialized but not yet uninitialized).

	void setUnixOptions(bool flag);
		/// Specify whether command line option handling is Unix-style
		/// (flag == true; default) or Windows/OpenVMS-style (flag == false).

	int loadConfiguration();
		/// Loads configuration information from a default location.
		///
		/// The configuration file(s) must be located in the same directory
		/// as the executable, and must have the same base name as the
		/// executable, with one of the following extensions:
		/// .properties, .ini or .xml.
		///
		/// The .properties file, if it exists, is loaded first, followed
		/// by the .ini file and the .xml file.
		///
		/// Returns the number of configuration files loaded, which may be zero.
		///
		/// This method must not be called before initialize(argc, argv)
		/// has been called.

	void loadConfiguration(const std::string& path);
		/// Loads configuration information from the file specified by
		/// the given path. The file type is determined by the file
		/// extension. The following extensions are supported:
		///
		///   - .properties - properties file (PropertyFileConfiguration)
		///   - .ini        - initialization file (IniFileConfiguration)
		///   - .xml        - XML file (XMLConfiguration)
		///
		/// Extensions are not case sensitive.

	template <class C> C& getSubsystem() const;
		/// Returns a reference to the subsystem of the class
		/// given as template argument.
		///
		/// Throws a NotFoundException if such a subsystem has
		/// not been registered.

	int run();
		/// Runs the application by performing additional initializations
		/// and calling the main() method.

	std::string commandName() const;
		/// Returns the command name used to invoke the application.

	LayeredConfiguration& config() const;
		/// Returns the application's configuration.
		
	Foundation::Logger& logger() const;
		/// Returns the application's logger.
		
	const OptionSet& options() const;
		/// Returns the application's option set.

	static Application& instance();
		/// Returns a reference to the Application singleton.
		///
		/// Throws a NullPointerException if no Application instance exists.

	const char* name() const;

protected:
	void initialize(const Application& self);
		/// Initializes the application and all registered subsystems.
		/// Subsystems are always initialized in the exact same order
		/// in which they have been registered.
		///
		/// Overriding implementations must call the base class implementation.
		
	void uninitialize();
		/// Uninitializes the application and all registered subsystems.
		/// Subsystems are always uninitialized in reverse order in which
		/// they have been initialized. 
		///
		/// Overriding implementations must call the base class implementation.

	void reinitialize(const Application& self);
		/// Re-nitializes the application and all registered subsystems.
		/// Subsystems are always reinitialized in the exact same order
		/// in which they have been registered.
		///
		/// Overriding implementations must call the base class implementation.

	virtual void defineOptions(OptionSet& options);
		/// Called before command line processing begins.
		/// If a subclass wants to support command line arguments,
		/// it must override this method.
		/// The default implementation does not define any options.
		///
		/// Overriding implementations should call the base class implementation.

	virtual void handleOption(const std::string& name, const std::string& value);
		/// Called when the option with the given name is encountered
		/// during command line arguments processing.
		/// The default implementation does nothing.
		///
		/// Overriding implementations should call the base class implementation.

	virtual int main(const std::vector<std::string>& args);
		/// The application's main logic.
		///
		/// Unprocessed command line arguments are passed in args.
		/// Note that all original command line arguments are available
		/// via the properties application.argc and application.argv[<n>].
		///
		/// Returns an exit code which should be one of the values
		/// from the ExitCode enumeration.

	~Application();
		/// Destroys the Application and deletes all registered subsystems.

private:
	void setup();
	void setArgs(int argc, char* argv[]);
	void getApplicationPath(Foundation::Path& path);
	void processOptions();

	typedef Foundation::AutoPtr<Subsystem> SubsystemPtr;
	typedef std::vector<SubsystemPtr> SubsystemVec;
	typedef Foundation::AutoPtr<LayeredConfiguration> ConfigPtr;
	typedef std::vector<std::string> ArgVec;
	
	ConfigPtr           _pConfig;
	SubsystemVec        _subsystems;
	bool                _initialized;
	std::string         _command;
	ArgVec              _args;
	OptionSet           _options;
	bool                _unixOptions;
	Foundation::Logger& _logger;

	static Application* _pInstance;
};


//
// inlines
//
template <class C> C& Application::getSubsystem() const
{
	for (SubsystemVec::const_iterator it = _subsystems.begin(); it != _subsystems.end(); ++it)
	{
		if (dynamic_cast<C*>(*it))
			return **it;
	}
	throw Foundation::NotFoundException("The subsystem has not been registered");
}


inline bool Application::initialized() const
{
	return _initialized;
}


inline LayeredConfiguration& Application::config() const
{
	return *const_cast<LayeredConfiguration*>(_pConfig.get());
}


inline Foundation::Logger& Application::logger() const
{
	return _logger;
}


inline const OptionSet& Application::options() const
{
	return _options;
}


inline Application& Application::instance()
{
	poco_check_ptr (_pInstance);
	return *_pInstance;
}


Util_END


#endif // Util_Application_INCLUDED

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人蜜臀av电影| 欧美精品在欧美一区二区少妇| 亚洲美女电影在线| 欧美一级二级三级蜜桃| 97国产精品videossex| 国产成都精品91一区二区三| 精品一二线国产| 亚洲r级在线视频| 亚洲欧洲成人av每日更新| 久久久一区二区三区| 日韩午夜在线影院| 国产精品美女一区二区三区 | 亚洲一区二区欧美激情| 国产调教视频一区| 久久久亚洲综合| 艳妇臀荡乳欲伦亚洲一区| 亚洲精品高清在线| 亚洲一区在线看| 国产精品一区二区在线观看网站| 成人91在线观看| 国产精品911| 欧美三级视频在线观看| 色婷婷久久一区二区三区麻豆| 成人av在线资源网| 日韩视频一区二区在线观看| 亚洲精品欧美二区三区中文字幕| 精油按摩中文字幕久久| 欧美三级三级三级爽爽爽| 国产精品素人一区二区| 蜜臀av性久久久久蜜臀aⅴ| 理论电影国产精品| 国产在线精品国自产拍免费| 国产一区二区三区在线观看免费视频 | 欧美午夜精品一区二区蜜桃| 99热99精品| 色域天天综合网| 久久新电视剧免费观看| 久久精品视频网| 视频一区国产视频| 国产一区999| 欧美日韩视频第一区| 中文字幕在线一区二区三区| 亚洲免费三区一区二区| 国产成人免费视| 色女孩综合影院| 亚洲国产成人在线| 一区二区三区欧美久久| 成人av高清在线| 久久免费偷拍视频| 久久国产尿小便嘘嘘尿| 欧美日本高清视频在线观看| 久久精品人人做| 久久精品国产精品亚洲红杏 | 精品一区二区三区日韩| 91麻豆精品国产91久久久久久| 欧美一级二级三级蜜桃| 婷婷国产v国产偷v亚洲高清| 国产一区二区毛片| 欧美不卡123| 亚洲色图欧洲色图| 另类小说图片综合网| 7878成人国产在线观看| 亚洲成a人片在线不卡一二三区| 在线观看亚洲一区| 精品福利av导航| 亚洲男人电影天堂| av一二三不卡影片| 中文字幕亚洲不卡| 91啦中文在线观看| 欧美精品一区二区三区一线天视频 | 一本色道久久加勒比精品| 国产精品久久久久三级| www.亚洲色图| 亚洲人成网站影音先锋播放| 色婷婷狠狠综合| 亚洲va国产va欧美va观看| 欧美日韩国产区一| 日韩av在线发布| 欧美性生活大片视频| 亚洲第一会所有码转帖| 91精品国产91久久久久久最新毛片 | 三级久久三级久久| 777午夜精品免费视频| 日韩电影在线免费看| 欧美大片一区二区| 亚洲最大色网站| 欧美高清你懂得| 久久99国产精品尤物| 久久久久88色偷偷免费| 91网站最新地址| 污片在线观看一区二区| 日韩一卡二卡三卡国产欧美| 激情文学综合插| 欧美一级黄色大片| 国产一区二区三区久久久| 国产精品久久久久久久久快鸭| 99精品热视频| 日本中文字幕不卡| 中文无字幕一区二区三区| 91首页免费视频| 视频一区欧美日韩| 久久久精品国产免费观看同学| 91在线视频免费观看| 午夜亚洲国产au精品一区二区| 精品处破学生在线二十三| 成人久久久精品乱码一区二区三区| 亚洲激情校园春色| 欧美一级久久久| 成人免费av网站| 婷婷丁香激情综合| 欧美国产一区在线| 欧美日韩精品欧美日韩精品| 激情欧美一区二区| 亚洲欧美一区二区久久| 日韩一区二区精品在线观看| 成人午夜视频在线观看| 亚洲国产视频一区二区| 91看片淫黄大片一级在线观看| 五月婷婷综合在线| 欧美国产精品一区| 91精品欧美久久久久久动漫| 成人精品高清在线| 日本欧美在线观看| 成人欧美一区二区三区小说| 日韩一区和二区| 91免费版在线| 国内精品免费**视频| 夜夜精品视频一区二区| 久久久久国产精品麻豆ai换脸| 欧美无砖砖区免费| 国产成人在线免费观看| 日日夜夜精品视频免费| 国产精品电影院| 精品久久久影院| 欧美日韩在线不卡| 成人爽a毛片一区二区免费| 日本怡春院一区二区| 亚洲色图在线看| 国产欧美日韩在线观看| 波多野结衣中文字幕一区二区三区| 亚洲超碰精品一区二区| 亚洲欧美一区二区在线观看| 精品国一区二区三区| 欧美日韩激情在线| 91麻豆高清视频| 国产一区二区三区在线观看免费| 亚洲成人资源网| 一区二区在线观看视频在线观看| 国产免费成人在线视频| www国产精品av| 在线成人午夜影院| 欧美亚洲国产一卡| av一二三不卡影片| 岛国一区二区三区| 国内精品写真在线观看| 免费观看91视频大全| 国产欧美1区2区3区| 日韩免费视频线观看| 欧美色爱综合网| 色欧美乱欧美15图片| 91社区在线播放| 成人av在线一区二区三区| 高清不卡一区二区| 国产精品影音先锋| 久久99精品久久久久久动态图| 免费久久精品视频| 男人的天堂久久精品| 奇米综合一区二区三区精品视频| 午夜成人在线视频| 五月天激情综合网| 日韩国产欧美在线视频| 亚洲第一福利视频在线| 亚洲成人免费在线| 香蕉加勒比综合久久| 亚洲成av人片一区二区| 天堂成人国产精品一区| 三级久久三级久久久| 欧美aaa在线| 久久精品二区亚洲w码| 捆绑紧缚一区二区三区视频| 免费在线观看不卡| 久久99精品国产.久久久久| 激情综合色综合久久| 国产一区亚洲一区| 成人一区二区三区视频在线观看| 国产suv精品一区二区6| 岛国精品在线观看| 91丨porny丨蝌蚪视频| 在线视频一区二区三| 欧美精三区欧美精三区| 日韩欧美一卡二卡| 久久久高清一区二区三区| 国产欧美一区二区精品性色超碰| 国产精品每日更新在线播放网址| 国产精品久久精品日日| 亚洲人成网站影音先锋播放| 亚洲电影中文字幕在线观看| 视频在线观看国产精品| 精品一区二区三区免费观看 | 亚洲激情校园春色|