Mon 21 Jul 22:43:21 CEST 2025
This commit is contained in:
parent
c9129e1f96
commit
391ec653ed
101
js/top/libdos.js
Normal file
101
js/top/libdos.js
Normal file
|
@ -0,0 +1,101 @@
|
|||
/**
|
||||
** ==============================
|
||||
** O O O OOOO
|
||||
** O O O O O O
|
||||
** O O O O O O
|
||||
** OOOO OOOO O OOO OOOO
|
||||
** O O O O O O O
|
||||
** O O O O O O O
|
||||
** OOOO OOOO O O OOOO
|
||||
** ==============================
|
||||
** Dr. Stefan Bosse http://www.bsslab.de
|
||||
**
|
||||
** COPYRIGHT: THIS SOFTWARE, EXECUTABLE AND SOURCE CODE IS OWNED
|
||||
** BY THE AUTHOR(S).
|
||||
** THIS SOURCE CODE MAY NOT BE COPIED, EXTRACTED,
|
||||
** MODIFIED, OR OTHERWISE USED IN A CONTEXT
|
||||
** OUTSIDE OF THE SOFTWARE SYSTEM.
|
||||
**
|
||||
** $AUTHORS: Stefan Bosse
|
||||
** $INITIAL: (C) 2006-2017 bLAB
|
||||
** $CREATED: 1-10-17 by sbosse.
|
||||
** $VERSION: 1.1.3
|
||||
**
|
||||
** $INFO:
|
||||
**
|
||||
** DOS library - can be embedded in any application
|
||||
**
|
||||
** $ENDOFINFO
|
||||
*/
|
||||
var Io = Require('com/io');
|
||||
var Comp = Require('com/compat');
|
||||
var Name = Require('com/pwgen');
|
||||
|
||||
var Buf = Require('dos/buf');
|
||||
var Conn = Require('dos/connection');
|
||||
var Cs = Require('dos/capset');
|
||||
var Dios = Require('dos/dios');
|
||||
var Dns = Require('dos/dns');
|
||||
var HostSrv = Require('dos/hostsrv');
|
||||
var Net = Require('dos/network');
|
||||
var Sch = Require('dos/scheduler');
|
||||
var Rpc = Require('dos/rpc');
|
||||
var Run = Require('dos/run');
|
||||
var RunSrv = Require('dos/runsrv');
|
||||
var Std = Require('dos/std');
|
||||
var Router = Require('dos/router');
|
||||
var util = require('util');
|
||||
|
||||
function dos(options) {
|
||||
if (!(this instanceof dos)) return new dos(options);
|
||||
this.options = options||{};
|
||||
this.env = options.env||{};
|
||||
this.verbose = options.verbose||0;
|
||||
|
||||
this.run = false;
|
||||
this.looprun = none;
|
||||
|
||||
this.broker = options.http||options.tcpnet;
|
||||
this.bport = options.bport||3001;
|
||||
this.bip = options.bip;
|
||||
|
||||
this.privhostport = Net.uniqport();
|
||||
this.pubhostport = Net.prv2pub(this.privhostport);
|
||||
|
||||
if (this.verbose>1) Io.out('[DOS] public port: '+Net.Print.port(this.pubhostport));
|
||||
options.pubhostport = this.pubhostport;
|
||||
this.scheduler = options.scheduler || Sch.TaskScheduler();
|
||||
this.network = options.network || Conn.setup(options,1);
|
||||
|
||||
this.router = this.network.router;
|
||||
// this.router.log(2);
|
||||
// network.XX uses global scheduler
|
||||
this.rpc = this.network.rpc;
|
||||
this.std = this.network.std;
|
||||
this.dns = this.network.dns;
|
||||
this.cs = this.network.cs;
|
||||
this.dios = Dios.Dios(this.network.rpc,this.network.env);
|
||||
}
|
||||
dos.prototype.init = function() {
|
||||
this.scheduler.Init();
|
||||
this.network.init();
|
||||
}
|
||||
dos.prototype.start = function(callback) {
|
||||
this.scheduler.Run();
|
||||
this.network.start(callback);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
dos:dos,
|
||||
Buffer:Buf,
|
||||
Connection:Conn,
|
||||
Cs:Cs,
|
||||
Dios:Dios,
|
||||
Network:Net,
|
||||
Rpc:Rpc,
|
||||
Router:Router,
|
||||
Run:Run,
|
||||
Scheduler:Sch,
|
||||
Std:Std
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user