mirror of
https://github.com/gnh1201/welsonjs.git
synced 2024-11-26 15:31:42 +00:00
Update pipe-ipc.js
This commit is contained in:
parent
145be2a894
commit
4a3d044f02
|
@ -54,9 +54,8 @@ var CdoUTF_7 = "utf-7";
|
|||
var CdoUTF_8 = "utf-8";
|
||||
|
||||
function PipeIPC() {
|
||||
var EOL = "\r\n";
|
||||
|
||||
this.path = "data\\.pipe_:pipename";
|
||||
this.delimiter = "\r\n";
|
||||
this.reader = null;
|
||||
this.writer = null;
|
||||
this.recorder = null;
|
||||
|
@ -65,6 +64,7 @@ function PipeIPC() {
|
|||
this.charset = CdoUTF_8;
|
||||
this.lastReadTime = -1;
|
||||
this.lastWriteTime = -1;
|
||||
this.maxSentences = 0;
|
||||
|
||||
this.getCurrentTime = function() {
|
||||
return new Date().getTime();
|
||||
|
@ -73,6 +73,14 @@ function PipeIPC() {
|
|||
this.setCharset = function(charset) {
|
||||
this.charset = charset;
|
||||
};
|
||||
|
||||
this.setDelimiter = function(delimiter) {
|
||||
this.delimiter = delimiter;
|
||||
};
|
||||
|
||||
this.setMaxSentences = function(maxSentences) {
|
||||
this.maxSentences = maxSentences;
|
||||
};
|
||||
|
||||
this.connect = function(pipename, callback) {
|
||||
this.path = this.path.replace(":pipename", pipename);
|
||||
|
@ -141,7 +149,7 @@ function PipeIPC() {
|
|||
};
|
||||
|
||||
this._write = function(message) {
|
||||
this.writer.Write(message + EOL);
|
||||
this.writer.Write(message + this.delimiter);
|
||||
};
|
||||
|
||||
this.write = function(message) {
|
||||
|
@ -172,11 +180,12 @@ function PipeIPC() {
|
|||
};
|
||||
|
||||
this.record = function(message) {
|
||||
var _this = this; // Because of the variable scope
|
||||
var commit = function(src, dst, charset) {
|
||||
// Open a temporary file
|
||||
var fso = CreateObject("Scripting.FileSystemObject").OpenTextFile(src, ForReading, true, TristateTrue);
|
||||
var str = fso.ReadAll();
|
||||
var StripBOM = function(adoObj) {
|
||||
var isCommited = false;
|
||||
|
||||
// define functions
|
||||
var StripAdoBOM = function(adoObj) {
|
||||
var newAdoObj = CreateObject("ADODB.Stream");
|
||||
newAdoObj.Type = adTypeBinary;
|
||||
newAdoObj.Mode = adModeReadWrite;
|
||||
|
@ -184,22 +193,54 @@ function PipeIPC() {
|
|||
adoObj.Position = 3;
|
||||
adoObj.CopyTo(newAdoObj);
|
||||
adoObj.Flush();
|
||||
//adoObj.Close();
|
||||
adoObj.Close();
|
||||
return newAdoObj;
|
||||
};
|
||||
|
||||
// Convert UTF-16 BOM to UTF-8
|
||||
var ado = CreateObject("ADODB.Stream");
|
||||
ado.Type = adTypeText;
|
||||
ado.Charset = charset;
|
||||
ado.Open();
|
||||
ado.WriteText(str);
|
||||
StripBOM(ado).SaveToFile(dst, adSaveCreateOverWrite);
|
||||
//ado.SaveToFile(savefile, adSaveCreateOverWrite);
|
||||
ado.Close();
|
||||
while (!isCommited) {
|
||||
try {
|
||||
// Open a temporary file
|
||||
var fso = CreateObject("Scripting.FileSystemObject").OpenTextFile(src, ForReading, true, TristateTrue);
|
||||
var text = fso.ReadAll();
|
||||
var sentences = text.split(_this.delimiter);
|
||||
var newSentences = [], str = '';
|
||||
|
||||
// if enabled "maxSentences" feature
|
||||
if (_this.maxSentences > 0) {
|
||||
while (sentences.length > 0 && newSentences.length < _this.maxSentences) {
|
||||
newSentences.push(sentences.pop());
|
||||
}
|
||||
str = newSentences.reverse().join(_this.delimiter);
|
||||
} else {
|
||||
str = text;
|
||||
}
|
||||
|
||||
// Convert UTF-16 BOM to UTF-8
|
||||
var ado = CreateObject("ADODB.Stream");
|
||||
ado.Type = adTypeText;
|
||||
ado.Charset = charset;
|
||||
ado.Open();
|
||||
ado.WriteText(str);
|
||||
ado = StripAdoBOM(ado);
|
||||
ado.SaveToFile(dst, adSaveCreateOverWrite);
|
||||
ado.Close();
|
||||
|
||||
/*
|
||||
// Write a new temporary file
|
||||
var _fso = CreateObject("Scripting.FileSystemObject").OpenTextFile(src, ForWriting, true, TristateTrue);
|
||||
_fso.Write(str);
|
||||
_fso.Close();
|
||||
*/
|
||||
|
||||
// Set a result
|
||||
isCommited = true;
|
||||
} catch (e) {
|
||||
isCommited = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Close a temporary file
|
||||
fso.Close();
|
||||
fso.Close();
|
||||
};
|
||||
|
||||
var isRecorded = false;
|
||||
|
@ -264,7 +305,6 @@ function PipeIPC() {
|
|||
this.closeReader();
|
||||
this.closeRecorder();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
exports.create = function() {
|
||||
|
@ -278,8 +318,9 @@ exports.connect = function(path, callback) {
|
|||
exports.ForReading = ForReading;
|
||||
exports.ForWriting = ForWriting;
|
||||
exports.ForAppending = ForAppending;
|
||||
exports.CdoUTF_8 = CdoUTF_8;
|
||||
|
||||
exports.VERSIONINFO = "PIPE-based IPC Module (pipe-ipc.js) version 0.1.4";
|
||||
exports.VERSIONINFO = "PIPE-based IPC Module (pipe-ipc.js) version 0.1.5";
|
||||
exports.AUTHOR = "abuse@catswords.net";
|
||||
exports.global = global;
|
||||
exports.require = require;
|
||||
|
|
Loading…
Reference in New Issue
Block a user