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

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

?? multfile.cxx

?? c-smile 一個語法類似與JS 又有點像C++的 編譯器
?? CXX
字號:
//-< MULTFILE.CXX >--------------------------------------------------*--------*
// SAL                       Version 1.0         (c) 1997  GARRET    *     ?  *
// (System Abstraction Layer)                                        *   /\|  *
//                                                                   *  /  \  *
//                          Created:     15-Apr-97    K.A. Knizhnik  * / [] \ *
//                          Last update: 21-Nov-97    K.A. Knizhnik  * GARRET *
//-------------------------------------------------------------------*--------*
// File scattered to several segments
//-------------------------------------------------------------------*--------*

#include "multfile.h"

namespace sal {

void multifile::get_error_text(iop_status code,char* buf,size_t buf_size) const
{
    files->get_error_text(code, buf, buf_size);
}

file::iop_status multifile::set_position(fposi_t pos)
{
    cur_pos = pos;
    return ok;
}

file::iop_status multifile::get_position(fposi_t& pos)
{
    pos = cur_pos;
    return ok;
}

file::iop_status multifile::read(void* buf, size_t size)
{
    cs.enter();
    fposi_t pos = cur_pos;
    cur_pos += size;
    cs.leave();
    return read(pos, buf, size);
}

file::iop_status multifile::write(void const* buf, size_t size)
{
    cs.enter();
    fposi_t pos = cur_pos;
    cur_pos += size;
    cs.leave();
    return write(pos, buf, size);
}

file::iop_status multifile::read(fposi_t pos, void* buf, size_t size)
{
    int i = 0;
    int n  = n_files - 1;
    char* dst = (char*)buf; 

    while (True) { 
	if (pos < segments[i].size || i == n) { 
	    if (pos + size <= segments[i].size || i == n) { 
		return files[i].read(pos, dst, size);
	    } else {
		size_t segm_size = size_t(segments[i].size - pos);
                iop_status status = files[i++].read(pos, dst, segm_size);
		if (status == ok) { 
		    pos = 0;
		    dst += segm_size;
		    size -= segm_size;
		} else { 
		    return status;
		}
	    }
	} else { 
	    pos -= segments[i++].size;
	}
    }    
}

file::iop_status multifile::write(fposi_t pos, void const* buf, size_t size)
{
    int i = 0;
    int n  = n_files - 1;
    char* src = (char*)buf; 

    while (True) { 
	if (pos < segments[i].size || i == n) { 
	    if (pos + size <= segments[i].size || i == n) { 
		return files[i].write(pos, src, size);
	    } else {
		size_t segm_size = size_t(segments[i].size - pos);
                iop_status status = files[i++].write(pos, src, segm_size);
		if (status == ok) { 
		    pos = 0;
		    src += segm_size;
		    size -= segm_size;
		} else { 
		    return status;
		}
	    }
	} else { 
	    pos -= segments[i++].size;
	}
    }    
}

file::iop_status multifile::flush()
{
    for (int i = 0; i < n_files; i++) { 
        iop_status status = files[i].flush();
        if (status != ok) {
	    return status; 
	}
    }
    return ok;
}

file::iop_status multifile::open(access_mode mode, int flags)
{
    total_size = 0;
    for (int i = 0; i < n_files; i++) { 
	iop_status status = files[i].open(mode, flags);
	if (status != ok) {
	    while (--i >= 0) {
		files[i].close();
	    } 
	    return status;
	}
	total_size += segments[i].size;
    }
    cur_pos = 0;
    this->mode = mode;
    return ok;
}

file::iop_status multifile::close()
{
    for (int i = 0; i < n_files; i++) { 
	iop_status status = files[i].close();
	if (status != ok) { 
	    return status;
	}
    }
    return ok;
}

file::iop_status multifile::remove()
{
    for (int i = 0; i < n_files; i++) { 
	iop_status status = files[i].remove(); 
	if (status != ok) { 
	    return status;
	}
    }
    return ok;
}

char const* multifile::get_name() const
{
    return files[0].get_name();
}

file::iop_status multifile::set_name(char const*) 
{
    for (int i = 0; i < n_files; i++) { 
	iop_status status = files[i].set_name(segments[i].name); 
	if (status != ok) { 
	    return status;
	}
    }
    return ok;
}

file::iop_status multifile::get_size(fsize_t& size) const
{
    iop_status status = files[n_files-1].get_size(size);
    size += total_size - segments[n_files-1].size; 
    return status;
}

file::iop_status multifile::set_size(fsize_t new_size)
{
    if (new_size > total_size - segments[n_files-1].size) {
	return files[n_files-1].set_size
	    (new_size - total_size + segments[n_files-1].size);
    } 
    return ok;
}
    
multifile::multifile(int n_segments, segment* segm)
{
    assert(n_segments > 0);
    segments = segm;
    n_files = n_segments;
    files = new os_file[n_files]; 
    for (int i = 0; i < n_segments; i++) { 
	files[i].set_name(segments[i].name); 
    }
}

multifile::~multifile()
{
    delete[] files;
}

};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成年人网站在线观看| 欧美一区二区成人6969| 国产在线精品一区二区不卡了| 亚洲一二三区不卡| 亚洲最新视频在线观看| 亚洲综合色在线| 亚洲一二三四久久| 亚洲一二三四久久| 日本中文在线一区| 国内一区二区在线| 国产成人亚洲综合a∨婷婷| 国产精品自拍毛片| 国产精品一区二区91| 国产精品一区不卡| 一本一道波多野结衣一区二区| 97久久精品人人澡人人爽| 91香蕉视频污在线| 欧美日韩国产高清一区二区| 日韩午夜三级在线| 久久久久久久久久久黄色| 中文字幕一区二区三区乱码在线 | 91精品在线一区二区| 欧美一区二区不卡视频| 欧美国产97人人爽人人喊| 中文字幕在线播放不卡一区| 伊人色综合久久天天人手人婷| 亚洲影视资源网| 狠狠色2019综合网| 91成人在线免费观看| 日韩免费观看高清完整版在线观看| 久久综合成人精品亚洲另类欧美 | 国产三级久久久| 一区二区三区免费在线观看| 日韩高清欧美激情| 成人激情黄色小说| 欧美欧美午夜aⅴ在线观看| 久久久久久免费网| 亚洲大尺度视频在线观看| 一本久道久久综合中文字幕| 日韩欧美黄色影院| 亚洲摸摸操操av| 狠狠色丁香久久婷婷综合丁香| 成年人网站91| 久久综合精品国产一区二区三区 | 日韩一区二区影院| 1区2区3区欧美| 国产伦精品一区二区三区免费迷 | 日韩一区二区三区电影 | 日韩高清电影一区| 91色九色蝌蚪| 日韩视频中午一区| 一区二区三区精品| 97精品视频在线观看自产线路二| 欧美大片国产精品| 午夜国产精品影院在线观看| 色综合天天综合网天天看片| 国产午夜精品一区二区| 蜜桃久久久久久| 欧美日韩精品一区二区在线播放| 中文字幕一区免费在线观看| 国产电影精品久久禁18| www成人在线观看| 免费一区二区视频| 91.com视频| 午夜久久久久久久久| 日本高清视频一区二区| 亚洲日本免费电影| 成人晚上爱看视频| 国产精品乱码妇女bbbb| 国产成人av一区| 久久精品一区四区| 国产河南妇女毛片精品久久久| 日韩精品在线看片z| 蜜桃视频在线观看一区| 日韩欧美国产电影| 国产在线视频一区二区三区| 日韩一本二本av| 日韩电影在线看| 欧美一区国产二区| 国模冰冰炮一区二区| 2022国产精品视频| 成人丝袜18视频在线观看| 国产精品欧美久久久久无广告| 国产福利91精品| 国产精品美女久久久久高潮 | 亚洲视频在线一区| 色综合咪咪久久| 亚洲国产精品久久人人爱| 欧美日韩国产bt| 久久精品国产澳门| 国产偷国产偷亚洲高清人白洁 | 91精品国产综合久久精品麻豆| 亚洲bt欧美bt精品| 日韩午夜小视频| 成人黄色在线看| 亚洲黄色免费电影| 欧美日韩精品系列| 色哟哟在线观看一区二区三区| 亚洲男人的天堂av| 欧美另类z0zxhd电影| 精品在线你懂的| 亚洲欧美一区二区三区极速播放 | 日本va欧美va欧美va精品| 久久精品亚洲麻豆av一区二区| 9人人澡人人爽人人精品| 亚洲aaa精品| 国产婷婷色一区二区三区四区| 91啦中文在线观看| 激情五月播播久久久精品| 亚洲少妇30p| 精品国产一区二区精华| 91官网在线免费观看| 久久成人免费网站| 亚洲乱码国产乱码精品精小说 | 国产婷婷色一区二区三区四区| 色综合久久久久综合| 美女在线观看视频一区二区| 亚洲欧洲精品成人久久奇米网| 日韩欧美在线123| 99久久精品免费精品国产| 麻豆一区二区三| 亚洲精品第1页| 国产精品视频yy9299一区| 91精品在线麻豆| 欧美中文字幕一二三区视频| 国产精品12区| 麻豆成人在线观看| 一区二区高清免费观看影视大全 | 亚洲va韩国va欧美va| 国产精品伦理在线| 欧美不卡一区二区| 欧美撒尿777hd撒尿| 97精品超碰一区二区三区| 国产自产v一区二区三区c| 日本不卡视频在线| 午夜精品久久久久影视| 亚洲美女少妇撒尿| 亚洲欧洲色图综合| 国产精品福利一区二区三区| 欧美精品一区二区在线观看| 欧美日韩亚洲综合| 欧美专区日韩专区| 欧美中文字幕亚洲一区二区va在线 | 日韩欧美二区三区| 欧美高清性hdvideosex| 欧美在线不卡一区| 色av一区二区| 在线视频你懂得一区二区三区| 91麻豆swag| 91免费看视频| 色综合久久久久综合体| 色综合久久久久| 色视频成人在线观看免| 在线视频观看一区| 欧美日韩在线播放三区| 在线精品视频小说1| 91精品办公室少妇高潮对白| 91美女视频网站| 欧美撒尿777hd撒尿| 欧美日本国产视频| 日韩一区二区三区精品视频| 欧美电影免费观看高清完整版在线 | 蜜臀av性久久久久蜜臀aⅴ| 日精品一区二区三区| 久久草av在线| 成人免费视频一区二区| 色综合天天综合狠狠| 欧美日韩一级黄| 精品欧美一区二区久久| 中文字幕成人av| 一区二区三区在线免费视频| 亚洲国产成人av网| 美腿丝袜亚洲一区| 粉嫩av亚洲一区二区图片| 99re在线精品| 欧美日韩国产一级| 久久久不卡影院| 亚洲乱码国产乱码精品精小说 | 国产精品资源在线看| 99精品国产热久久91蜜凸| 欧美日韩国产一区| 国产亚洲人成网站| 一区二区三区视频在线看| 久久国产精品99久久人人澡| 成人午夜私人影院| 欧美三级资源在线| 久久精品无码一区二区三区| 亚洲综合一二三区| 久久国产免费看| 91蜜桃视频在线| 日韩视频免费观看高清完整版在线观看 | 麻豆91在线观看| av中文一区二区三区| 日韩色在线观看| 亚洲天堂成人在线观看| 美女脱光内衣内裤视频久久影院| 成人免费看黄yyy456| 欧美性大战久久久| 欧美国产日韩在线观看| 亚洲国产精品一区二区久久|