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

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

?? mfile.h

?? 功能較全面的反匯編器:反匯編器ht-2.0.15.tar.gz
?? H
字號:
/* *	HT Editor *	mfile.h * *	Copyright (C) 1999-2003 Stefan Weyergraf (stefan@weyergraf.de) * *	This program is free software; you can redistribute it and/or modify *	it under the terms of the GNU General Public License version 2 as *	published by the Free Software Foundation. * *	This program is distributed in the hope that it will be useful, *	but WITHOUT ANY WARRANTY; without even the implied warranty of *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *	GNU General Public License for more details. * *	You should have received a copy of the GNU General Public License *	along with this program; if not, write to the Free Software *	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */#ifndef __MFILE_H__#define __MFILE_H__#include "stream.h"/* *   File areas */class FileArea: public Object {public:	FileOfs start;	FileOfs size;				FileArea(FileOfs start, FileOfs size);	/* extends Object */	virtual	int		compareTo(const Object *obj) const;};class ModifiedFileArea: public FileArea {public:	byte *buf;				ModifiedFileArea(FileOfs start, FileOfs size);	virtual			~ModifiedFileArea();	/* extends Object */	virtual	ObjectID	getObjectID() const;};class CopiedFileArea: public FileArea {public:	FileOfs src_start;				CopiedFileArea(FileOfs start, FileOfs size, FileOfs src_start);	/* extends Object */	virtual	ObjectID	getObjectID() const;};/** *	File modification layer. *	This is a file modification layer. Ie. a file-layer that keeps track *	of all modifications made to it, without forwarding (or "flushing") them to *	the underlying (possibly physical) file. *	This is invisible however to the user of this object as all modifications are *	reflected back when retrieving information through the <b>File</b> interface. *	"Flushing" (ie. applying the modifications) must be done explicitly through *	a call to <b>fcntl(FCNTL_MODS_FLUSH)</b>. * *	This object is (esp. for big files) much more memory- and time-efficient *	compared to an "all-in-memory"- or even a "modpages-in-memory"-approach: * *	"all-in-memory" approach<br> *	========================<br> *	This can be achieved using the MemoryFile object (with little modification). *	The whole underlying <b>File</b> is read once on creation of this object and *	then kept in memory until destruction. *	Modifications received through the <b>File</b> interface are instantly applied to the *	this "in-memory image". * *	Performance analysis (performance grades are relative to the probability of the event): *		- read() and write() cause a single call to 'memcpy'. optimal performance. *		- truncate() and extend() cause a single call to 'realloc'. good performance. *		- insert() and cut() cause a single call to 'memmove'. bad performance. *		- memory consumption is constantly high. not memory-efficient. *	This approach is naive and very easy to implement, which is why: *	This is a very common approach for text- and hex-editors (although *	it is VERY BAD for huge files).<p> * *	"modpages-in-memory" approach<br> *	=============================<br> *	This approach divides the underlying <b>File</b> into seamless blocks of *	equal size. These blocks are called "pages". Two kinds of pages exist: *	modified and unmodified pages. *	Right after construction, all pages are unmodified. (We may use a tree *	that contains only modified pages. So this tree is empty right after *	construction). *	If a write-(or read-)operation spans multiple pages, it is treated as *	multiple discrete write-(or read-)operations not spanning multiple pages. *	Whenever an attempt is made to <b>write()</b> to a page, it is made sure *	that this page is modified. If it is not modified, "page-size" bytes of *	memory are allocated and filled with the corresponding bytes from the *	underlying file. The write is then performed in memory.  *	<b>read()</b>s are served from modified pages if possible. *	<b>extend()</b> and <b>truncate()</b> are treated like writes with zeros. *	But they must create new pages and/or change the size of the last page *	and <b>realloc()</b>. *	<b>insert()</b> and <b>cut()</b> have "naive" implementations, which *	translates them into a combination of extend()/read()/write() and *	read()/write()/truncate(), respectively. * *	Performance analysis (performance grades are relative to the probability of the event): *		- read() and write() cause little trouble. good performance. *		- truncate() and extend() cause little trouble. good performance. *		- insert() and cut() cause big trouble. bad performance. *		- memory consumption is high only for insert()/extend(). kind-of memory-efficient. *	This approach is easy to implement. It has been used extensively used *	in HT 0.7.x and its predecessors.<p> * *	"modareas-in-memory" approach<br> *	=============================<br> *	This is the approach used by a <b>FileModificator</b>. This is meant *	to be a more progressive approach compared to the above. *	As is well known from complexity-theory (and a programmer's all-day *	work) you can often save memory by wasting some more (CPU-)time and *	vice-versa. *	As pointed out in both analyses above the <b>insert()</b> and <b>cut()</b> *	operations cause these approaches to comsume very much memory (about as much *	as the file's size !). *	We will combine these two statements into a new approach: *	It's derived from the "modpages-in-memory" approach, with some exceptions: *	- "seamless blocks of equal size" become "seamless, dynamically sized blocks". *	  We will call them areas. *	- due to their dynamic size, areas also have dynamic start offsets. * *	Taking the notions from "modpages-in-memory" we have then also: *	"modified and unmodified areas". *	But we will now call the unmodified areas "copied areas". *	(And both copied and modified areas must to registered in a tree). *	<b>insert()</b> and <b>cut()</b> can now be implemented by simple *	operations on the areas. Memory consumption drops drastically on huge *	files (as compared to all other methods). *	This approach is hard to implement (the code written is complex). *	It will be used in (at least) HT 2.x.x . */class FileModificator: public FileLayer {protected:	AVLTree mods;	FileOfs newsize;	FileOfs pos;	int mcount;	int inv_mcount;		bool		cut1(ObjHandle h, FileOfs rstart, FileOfs size);		ObjHandle	findArea(FileOfs o);		void		flushMods();		void		invalidateMods();		bool		isModified() const;		bool		isModifiedByte(FileOfs o);		void 		makeAreaModified(ObjHandle h, FileOfs rstart, FileOfs size);		void		read1(FileArea *a, FileOfs rstart, byte *buf, uint count);		void		write1(FileArea *a, FileOfs rstart, const byte *buf, uint count);public:				FileModificator(File *file, bool own_file);	/* <debug> */		void		checkSanity();		void		debug();	/* </debug> */	/* extends FileLayer */	virtual	FileOfs		copyAllTo(Stream *stream);	virtual	FileOfs		copyTo(Stream *stream, FileOfs count);	virtual	void		cut(FileOfs size);	virtual	void		extend(FileOfs newsize);	virtual String &	getDesc(String &result) const;	virtual	FileOfs		getSize() const;	virtual	uint		read(void *buf, uint size);	virtual	void		seek(FileOfs offset);	virtual	FileOfs		tell() const;	virtual	void		truncate(FileOfs newsize);	virtual	int		vcntl(uint cmd, va_list vargs);	virtual	uint		write(const void *buf, uint size);	virtual	void		insert(const void *buf, FileOfs size);};#endif /* __MFILE_H__ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久国产综合精品色伊| 久久精品国产77777蜜臀| 91网站最新网址| 亚洲欧美日韩系列| 欧美日韩国产中文| 免费一级欧美片在线观看| 日韩欧美国产麻豆| 国产一区在线观看麻豆| 国产精品拍天天在线| 色婷婷综合视频在线观看| 亚洲资源中文字幕| 91麻豆精品国产91久久久久久 | 国产精品久久久99| 99久久精品免费看国产| 亚洲黄色小说网站| 日韩欧美成人一区| 国产一区亚洲一区| 亚洲精品日韩专区silk| 91精品国产乱码久久蜜臀| 日韩国产欧美在线观看| 久久久美女毛片| 色综合色狠狠天天综合色| 午夜国产精品一区| 国产无一区二区| 色8久久精品久久久久久蜜| 丝袜诱惑亚洲看片| 国产欧美日韩麻豆91| 欧美日韩一区二区三区在线| 免费在线观看视频一区| 国产精品亲子伦对白| 欧美日韩一区二区在线视频| 国产在线不卡一卡二卡三卡四卡| 国产精品对白交换视频| 欧美一卡二卡在线观看| 99久久99精品久久久久久 | 欧美精品少妇一区二区三区| 国产在线一区观看| 一区二区三区在线免费观看| 日韩欧美的一区二区| 91麻豆蜜桃一区二区三区| 青草av.久久免费一区| 亚洲免费视频成人| 久久免费美女视频| 欧美老年两性高潮| 99精品国产99久久久久久白柏| 免费观看在线色综合| 亚洲日本在线a| 久久久久久黄色| 欧美久久久一区| 色综合久久中文字幕综合网| 精久久久久久久久久久| 亚洲va国产va欧美va观看| 亚洲欧美在线视频观看| 久久麻豆一区二区| 日韩免费视频一区二区| 欧美性受极品xxxx喷水| www.一区二区| 成人毛片老司机大片| 精品影视av免费| 日本在线不卡一区| 亚洲一区二区中文在线| 亚洲男帅同性gay1069| 国产精品视频一二三区| 久久综合九色欧美综合狠狠| 日韩手机在线导航| 制服丝袜在线91| 欧美男女性生活在线直播观看| 91污在线观看| 色婷婷av一区二区三区软件 | 九色综合狠狠综合久久| 午夜国产不卡在线观看视频| 亚洲综合视频在线观看| 亚洲天堂av一区| 亚洲色图另类专区| 亚洲欧美日本韩国| 国产精品视频看| 国产精品久久久久久妇女6080| 国产日韩欧美制服另类| 久久久久久久久久久久久久久99 | 日韩高清在线观看| 亚洲国产精品久久一线不卡| 依依成人精品视频| 亚洲在线观看免费视频| 一区二区三区四区亚洲| 一区二区免费看| 午夜精品久久久久久不卡8050| 亚洲电影一级黄| 日韩av一二三| 美脚の诱脚舐め脚责91| 狠狠色丁香久久婷婷综| 国产成人在线看| 91视视频在线观看入口直接观看www | 亚洲欧洲性图库| 亚洲精品国产无套在线观| 亚洲午夜成aⅴ人片| 午夜电影网一区| 开心九九激情九九欧美日韩精美视频电影 | 国产iv一区二区三区| eeuss鲁片一区二区三区在线看| 成人av在线网站| 色伊人久久综合中文字幕| 欧美理论电影在线| 精品成人a区在线观看| 国产精品麻豆99久久久久久| 一区二区三区欧美日韩| 蜜桃视频在线一区| 高清视频一区二区| 欧洲在线/亚洲| 精品国产乱子伦一区| 国产精品嫩草影院av蜜臀| 亚洲一区二区三区美女| 精品综合免费视频观看| 91亚洲精品久久久蜜桃| 欧美日韩高清一区二区三区| 欧美精品一区二区三| 一区在线观看免费| 五月天激情综合网| 高清视频一区二区| 欧美精品免费视频| 日本一区二区高清| 日韩二区在线观看| 成人激情电影免费在线观看| 欧美日韩国产综合视频在线观看| 2023国产精华国产精品| 一区二区三区av电影 | 国产东北露脸精品视频| 欧美伊人久久久久久久久影院| 精品久久久久久久一区二区蜜臀| 亚洲欧洲日本在线| 久久精品国产免费| 91福利在线看| 国产蜜臀97一区二区三区| 丝袜美腿成人在线| 99国产欧美另类久久久精品 | 欧美日韩大陆一区二区| 日本一区二区三区四区在线视频| 亚洲图片一区二区| 97国产精品videossex| 欧美成人精品福利| 亚洲成人免费在线观看| a4yy欧美一区二区三区| 久久久久一区二区三区四区| 日本vs亚洲vs韩国一区三区| 91免费在线看| 国产精品久久久久影视| 国产乱国产乱300精品| 91精品国产一区二区| 亚洲最大的成人av| 久久女同精品一区二区| 天堂成人国产精品一区| 91电影在线观看| 成人欧美一区二区三区在线播放| 国产在线精品免费av| 日韩精品一区在线| 偷拍与自拍一区| 欧美日韩另类一区| 亚洲综合一区二区精品导航| 99久精品国产| 综合激情成人伊人| a亚洲天堂av| 亚洲图片另类小说| 91丨九色porny丨蝌蚪| 亚洲欧美日韩成人高清在线一区| 国产精品综合av一区二区国产馆| 日韩欧美在线一区二区三区| 日韩av电影免费观看高清完整版 | 日韩免费一区二区| 日本午夜精品视频在线观看| 欧美精品一二三区| 婷婷综合另类小说色区| 欧美日韩一区二区不卡| 午夜精品久久久久久| 91精品一区二区三区在线观看| 香蕉久久一区二区不卡无毒影院| 欧美欧美欧美欧美首页| 日本成人在线一区| 日韩久久久久久| 国内成人免费视频| 国产精品情趣视频| 91小宝寻花一区二区三区| 亚洲影院久久精品| 欧美一区二区视频在线观看2022| 天天操天天干天天综合网| 欧美一区二区三区在线看| 久久er99精品| 国产精品女主播av| 日本乱码高清不卡字幕| 丝袜亚洲另类丝袜在线| 精品国产91乱码一区二区三区| 国产在线播放一区三区四| 国产精品色婷婷久久58| 91碰在线视频| 日本少妇一区二区| 国产天堂亚洲国产碰碰| 91丨porny丨中文| 日韩av电影免费观看高清完整版在线观看 | 日韩精品一区二区三区四区 | 美国十次了思思久久精品导航| 日韩视频在线观看一区二区| 国产a精品视频|