⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 templatecontainer.cpp

📁 Oracle调用接口
💻 CPP
字号:
#include "TemplateContainer.h"TemplateContainer::TemplateContainer() {}TemplateContainer::TemplateContainer(const char *t_name) {	int f;	struct stat st;	string err;	char r_path[PATH_MAX];	f=open(t_name,O_RDONLY);	if(f==-1) { err=string("Cannot open ")+t_name+" reason:"+strerror(errno); goto OPEN_FAILED; }	if(fstat(f,&st)==-1) { err=string("Cannot stat ")+t_name+" reason:"+strerror(errno); goto STAT_FAILED; }	template_size=st.st_size;	tmpl=(char *)mmap(0,template_size,PROT_READ,MAP_SHARED,f,0);	if(long(tmpl)==-1) { 		err=string("Failed to map ")+t_name+" reason:"+strerror(errno); 		goto MMAP_FAILED; 	}	line=1; pos=0; cur=0; prev_pos=0;	if(!realpath(t_name,r_path)) {		err=string("Cannot get realpath for")+t_name+" reason:"+strerror(errno);		goto REAL_PATH_FAILED;	}	template_dir=r_path;	template_dir=template_dir.erase(template_dir.rfind("/"));	return;REAL_PATH_FAILED:MMAP_FAILED:STAT_FAILED:	close(f);OPEN_FAILED:		throw TemplateError(err);}TemplateContainer::~TemplateContainer() {	if(munmap(tmpl,template_size)==-1) throw TemplateError(string("Failed to munmap reason:")+strerror(errno));}char TemplateContainer::next() {	char c;	if(cur==template_size) return 0;	c=tmpl[cur];	cur++; 	if(c=='\n') { 		line++; prev_pos=pos; pos=0; 	} else { 		pos++; 	}	return c;	}void TemplateContainer::prev() {	if(cur) cur--;	if(pos) pos--; 	else {		if(line) {			line--;			pos=prev_pos; 		} 	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -