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

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

?? rmill.java

?? 與postgresql數據庫結合的數據庫水印軟件包
?? JAVA
字號:
/* *  * Copyright 2003,2004 The Watermill Team * * This file is part of Watermill. * *    Watermill is free software; you can redistribute it and/or modify *    it under the terms of the GNU General Public License as published by *    the Free Software Foundation; either version 2 of the License, or *    (at your option) any later version. * *    Watermill 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 Watermill; if not, write to the Free Software *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA * */package Watermill.rmill;import java.io.*;import java.util.*;import Watermill.relational.*;import Watermill.kernel.*;import org.gnu.readline.*;import java.net.*;public class Rmill {        // channels used to communicate with psql    private static BufferedReader psqlReader;    private static BufferedReader psqlErrorReader;    private static BufferedWriter psqlWriter;        // channels used to communicate with users    private static BufferedReader instream;    private static BufferedWriter outstream;    //private static BufferedWriter verbose;        private static StringWriter buffer;    private static CommandParser parser;    private static Command command;    private static Manager manager;    private static Process psql;        private static String fileToRead=null;        final static int CMD = 0;    final static int FILE = 1;    final static int SVR = 2;    private static int mode = CMD;    private static boolean newCmd = true;    private static File history = null;    private static void frontEndMessage(){	System.out.println("Error connection to the psql frontend.");	System.exit(-1);    }            private static int parseArg(int ipos,String args[]){	try {	    int pos=ipos;	    	    if(args[pos].equals("--debug")){		Msg.setDebug();		return pos+1;	    }	    	    if(args[pos].equals("--verbose")){		Msg.setVerbose();		return pos+1;	    }	    	    if(args[pos].equals("--file")){		fileToRead=args[pos+1];		mode = FILE;		return pos+2;	    }	    if(args[pos].equals("--server")){		mode = SVR;		return pos+1;	    }	    	    System.out.println("Incorrect command line parameter.");	    System.exit(-1);	}	catch (ArrayIndexOutOfBoundsException e){	    System.out.println("Incorrect command line parameter.");	    System.exit(-1);	}	return 0; // never reaching this point.    }        private static void parseCommandLine(String args[]){	for(int pos=0;pos<args.length;){	    pos=parseArg(pos,args);	}    }    private static void run() {	try {	    if (mode == CMD)		runCommand();	    if (mode == FILE)		runFile();	    if (mode == SVR)		runServer();	}	catch (EOFException e) {	    // user entered logout command, capture and stop	}	catch (FileNotFoundException e) {	    System.err.println("Unable to locate file :"+fileToRead);	}	catch (Exception e) {	    Msg.debug("Program interrupted "+e);	}    }    private static void runServer() throws Exception {	System.out.println("Running rmill server on localhost:"+Constant.port);	ServerSocket serversocket = new ServerSocket(Constant.port);	while (true) {	    try {		Socket socket = serversocket.accept(); 		instream = new BufferedReader(new InputStreamReader(socket.getInputStream()));		outstream = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); // should be dev null		loop();		socket.close();	    }	    catch (IOException e) {		Msg.debug("Connexion abnormaly aborted");	    }	}    }    private static void runCommand() throws Exception{	instream = new BufferedReader(new InputStreamReader(System.in));	outstream = new BufferedWriter(new OutputStreamWriter(System.out));		System.out.println("Welcome to Watermill-enabled psql, the PostgreSQL interactive terminal.");	System.out.println("Type:  \\copyright for distribution terms");	System.out.println("       \\h for help with SQL commands");	System.out.println("       \\? for help on internal slash commands");	System.out.println("       \\g or terminate with semicolon to execute query");	System.out.println("       \\q to quit");		while (true) 	    loop();    }    private static void runFile() throws Exception {	instream = new BufferedReader(new FileReader(fileToRead));	outstream = new BufferedWriter(new OutputStreamWriter(System.out));	while (true) 	    loop();    }        private static void readPsqlAnswer(BufferedWriter outstream) {	try {	    int i =0;	    while (!psqlReader.ready() & !psqlErrorReader.ready()) {}	    while (psqlErrorReader.ready()) {		outstream.write(psqlErrorReader.readLine());		outstream.newLine();		outstream.flush();	    }	    while (psqlReader.ready()) {		outstream.write(psqlReader.readLine());		outstream.newLine();		outstream.flush();	    }	}	catch(IOException e) {		Msg.debug(e);	}    }    private static Command getCommand(String message) throws Exception{	parser.ReInit(new StringReader(message));	try{	    return parser.parse();	}	catch (ParseException e) {	    Msg.debug("Not a Watermill command, going to psql");	    return null;	}	catch (TokenMgrError e) {	    Msg.debug("Not a Watermill command, going to psql");	    return null;	}    }    private static String getLine(BufferedReader instream) throws IOException {	String line = null;	if (mode == CMD) {	    String prompt;	    if (newCmd)		prompt = "=>";	    else		prompt = "->";	    line = Readline.readline(prompt);	    if (line == null)		line = "";	}	else 	    line=instream.readLine();//} // reading it    	if (line.trim().startsWith("#")) // deleting comments.	    line="";	return line;    }    private static void loop() throws Exception {		String line=getLine(instream);	newCmd = true;	try{	    buffer.write(line);	} 	catch(Exception e){frontEndMessage();}	    	Msg.verbose("Current buffer:"+buffer.toString());		if (line.trim().equals("\\q")) // \q is now a rmill command, do not send it to postgres	    throw new Exception();		if (line.trim().endsWith(";")|line.trim().startsWith("\\")){ // check if it is the last line	    buffer.flush();	    try {		command = getCommand(buffer.toString());				if (command == null) { // since this is not a Watermill command, we send it to postgres		    try{ 			String s = buffer.toString();			Msg.debug("Sending:"+s+" to postgres");				psqlWriter.write(s);				psqlWriter.newLine();				psqlWriter.flush();				readPsqlAnswer(outstream);		    }catch(IOException e2){frontEndMessage();} 		}		else if (command instanceof ExecuteCommand){ // this is a file command		    ExecuteCommand executeCommand=(ExecuteCommand)command;		    try {			instream=new BufferedReader(new FileReader(executeCommand.filename));		    }		    catch (FileNotFoundException e) {			outstream.write("Unable to find command file :"+executeCommand.filename);		    }		}		else { // this is a regular command		    command.execute(manager);		    Msg.debug("Command successfully executed");		}	    }	    catch (Exception e3) {		frontEndMessage();	    }	    buffer = new StringWriter();	} 	else 	    newCmd = false;    }        private static void init() throws Exception {		try {	    Readline.load(ReadlineLibrary.GnuReadline);	}	catch (UnsatisfiedLinkError e) {	    System.err.println("couldn't load readline lib. Using simple stdin");	}		Readline.initReadline("rmill");	 	Runtime.getRuntime()                       	    .addShutdownHook(new Thread() {        		    public void run() {			Readline.cleanup();		    }		});	history = new File(".rmill_history");	try {	    if (history.exists())		Readline.readHistoryFile(history.getName());	}	catch (Exception e) {	    System.err.println("Error reading history file");	}	manager = new RManager();	psql = null;	parser = new CommandParser(new StringReader(""));	command=new EmptyCommand();	psql=Runtime.getRuntime().exec("psql -U "+Constant.masterDBuser+" "+Constant.masterDBname);			psqlReader=new BufferedReader(new InputStreamReader(psql.getInputStream())); //stdout for psql	psqlErrorReader=new BufferedReader(new InputStreamReader(psql.getErrorStream()));	psqlWriter=new BufferedWriter(new OutputStreamWriter(psql.getOutputStream()));;	buffer = new StringWriter();	    }        private static void clean() throws Exception {	try {	    Msg.debug("Closing history file");	    Readline.writeHistoryFile(history.getName());	}	catch (Exception e) {	    System.err.println("Error writing history file!");	}	try {	    Msg.debug("Ending psql process");	    psqlWriter.write("\\q");	    psqlWriter.newLine();	    psqlWriter.flush();	}	catch (IOException e) {}	try{	    Msg.debug("Closing client streams");	    instream.close();	    outstream.close();	}	catch (IOException e) {}	Readline.cleanup();    }    public static void main(String args[]){	try {	    init();	    	    parseCommandLine(args);	    	    run();		    clean();	}	catch (Exception e) {	    System.err.println("Unable to launch watermill");	    System.err.println("An error has occured "+e);	    e.printStackTrace();	    	}		    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕中文乱码欧美一区二区| 欧美男女性生活在线直播观看| 三级一区在线视频先锋| 国产精品电影一区二区| 国产精品全国免费观看高清| 国产亚洲欧美日韩在线一区| 久久色在线视频| 欧美精品一区二| 国产欧美一区在线| 国产亚洲美州欧州综合国| 久久久久亚洲蜜桃| 国产精品伦理一区二区| 亚洲欧美综合在线精品| 亚洲综合区在线| 日本少妇一区二区| 久久99国产精品成人| 国产一区二区三区免费在线观看| 国产精品亚洲一区二区三区妖精| 国产精品综合久久| 色久综合一二码| 91精品国产一区二区| 2023国产精品视频| 国产精品久久久久久久久免费桃花| 亚洲免费在线观看| 日韩精品一二三区| 岛国一区二区三区| 欧美日韩精品欧美日韩精品| 日韩欧美精品三级| 中文字幕亚洲欧美在线不卡| 日韩精品一级二级 | 久久亚洲二区三区| 亚洲色图视频网| 蜜桃视频一区二区三区在线观看| 成人禁用看黄a在线| 欧美在线不卡视频| 久久一区二区视频| 亚洲午夜免费电影| 成人中文字幕合集| 日韩精品一区二区三区四区视频| 国产精品美女久久久久aⅴ| 一区二区在线观看视频| 国产麻豆精品95视频| 欧美日韩欧美一区二区| 久久综合999| 日韩电影免费在线看| 99久久精品国产观看| 精品av久久707| 亚洲一区二区在线视频| 成人国产精品免费观看视频| 精品国产成人系列| 亚洲一区二区三区四区在线观看| 国产黑丝在线一区二区三区| 欧美老肥妇做.爰bbww| 国产精品美女久久久久aⅴ国产馆| 日本不卡免费在线视频| 91片黄在线观看| 欧美韩日一区二区三区四区| 免费成人结看片| 在线成人高清不卡| 亚洲va欧美va国产va天堂影院| 93久久精品日日躁夜夜躁欧美| 久久一留热品黄| 国精品**一区二区三区在线蜜桃| 在线电影国产精品| 亚洲第四色夜色| 欧美中文字幕亚洲一区二区va在线 | 欧美xfplay| 欧美bbbbb| 欧美精品高清视频| 日韩黄色一级片| 欧美高清视频一二三区| 一二三区精品视频| 精品污污网站免费看| 亚洲成va人在线观看| 欧美最新大片在线看| 亚洲成av人片在www色猫咪| 欧美视频一区二区在线观看| 亚洲电影一区二区| 欧美色成人综合| 日本中文字幕不卡| 日韩一区二区三区四区| 久久99精品久久久久| 久久日韩精品一区二区五区| 国产成人自拍高清视频在线免费播放| 精品国产免费视频| 国产一区 二区| 国产精品白丝在线| 91久久精品国产91性色tv| 亚洲一区二区视频在线| 91精品国产色综合久久不卡蜜臀| 麻豆精品久久久| 国产日韩欧美一区二区三区综合| 成人激情文学综合网| 亚洲美女免费在线| 日本二三区不卡| 免费高清在线视频一区·| 久久久精品国产99久久精品芒果| 国产不卡视频在线播放| 亚洲影视在线播放| 日韩美一区二区三区| www.爱久久.com| 亚洲6080在线| 久久婷婷国产综合国色天香| 91麻豆成人久久精品二区三区| 亚洲妇女屁股眼交7| 欧美成人精品1314www| thepron国产精品| 午夜视频在线观看一区二区三区 | eeuss国产一区二区三区| 亚洲精品日日夜夜| 欧美mv日韩mv国产网站app| 本田岬高潮一区二区三区| 亚洲bdsm女犯bdsm网站| 国产欧美综合在线观看第十页| 欧美日韩一区二区三区不卡| 国产综合久久久久久鬼色| 亚洲一级片在线观看| 欧美国产日本视频| 日韩一区二区精品葵司在线| a美女胸又www黄视频久久| 奇米四色…亚洲| 亚洲精品久久7777| 国产日韩欧美不卡| 欧美一区二区久久| 色猫猫国产区一区二在线视频| 国产永久精品大片wwwapp| 亚洲一区二区三区四区中文字幕| 国产免费成人在线视频| 欧美高清dvd| 色天使色偷偷av一区二区| 丁香六月综合激情| 久久99这里只有精品| 亚洲国产乱码最新视频| 亚洲女女做受ⅹxx高潮| 国产精品久久久久久久第一福利| 精品国产sm最大网站免费看| 欧美日韩一区成人| 一本久道中文字幕精品亚洲嫩| 粉嫩一区二区三区性色av| 久久99国产精品免费网站| 香蕉成人啪国产精品视频综合网| 亚洲欧美福利一区二区| 国产精品传媒入口麻豆| 欧美激情一区在线观看| 国产婷婷色一区二区三区四区| 精品欧美一区二区三区精品久久 | 国产嫩草影院久久久久| 久久综合九色综合97_久久久| 日韩一区二区三区视频在线观看| 欧美日韩国产高清一区二区 | 欧美日韩免费观看一区二区三区| 色88888久久久久久影院野外| 成人av在线播放网址| 国产黑丝在线一区二区三区| 东方aⅴ免费观看久久av| 顶级嫩模精品视频在线看| 风间由美一区二区av101| 国产69精品久久99不卡| www.色精品| 在线亚洲人成电影网站色www| 在线观看不卡视频| 欧美久久婷婷综合色| 欧美一级高清片| 久久免费国产精品| 国产精品传媒入口麻豆| 亚洲最新在线观看| 日韩国产精品91| 国产一区二区久久| 91视频精品在这里| 欧美午夜精品一区二区蜜桃| 在线成人高清不卡| 久久午夜老司机| 日韩一区在线看| 日韩电影在线一区二区三区| 九一九一国产精品| 波多野结衣在线一区| 欧美最猛性xxxxx直播| 欧美成人aa大片| 欧美国产成人在线| 性感美女久久精品| 国产呦萝稀缺另类资源| 色综合久久久久久久久| 日韩一区二区三区视频在线观看| 久久久久久久久久久久久女国产乱 | 欧美一区日韩一区| 久久夜色精品一区| 一区二区三区在线观看动漫| 免费成人在线观看视频| 成人黄页毛片网站| 欧美日韩免费在线视频| 久久久综合激的五月天| 亚洲精品大片www| 狠狠色狠狠色综合系列| 91影院在线观看| 日韩欧美一区二区在线视频| 国产精品久久看| 免费成人在线视频观看| 色天使色偷偷av一区二区| 精品裸体舞一区二区三区| 亚洲精品va在线观看|