126 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			126 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
head	1.1;
 | 
						|
access;
 | 
						|
symbols;
 | 
						|
locks
 | 
						|
	sbosse:1.1; strict;
 | 
						|
comment	@# @;
 | 
						|
 | 
						|
 | 
						|
1.1
 | 
						|
date	2020.02.03.09.45.01;	author sbosse;	state Exp;
 | 
						|
branches;
 | 
						|
next	;
 | 
						|
 | 
						|
 | 
						|
desc
 | 
						|
@@
 | 
						|
 | 
						|
 | 
						|
1.1
 | 
						|
log
 | 
						|
@.
 | 
						|
@
 | 
						|
text
 | 
						|
@/**
 | 
						|
 **      ==============================
 | 
						|
 **       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
 | 
						|
}
 | 
						|
 | 
						|
@
 |