1.0.0 • Published 3 years ago

nv-facutil-pool v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

nv-facutil-pool

  • nv-facutil-pool for reusable-object

install

  • npm install nv-facutil-pool

usage

  const {_Cfg,Pool} = require("nv-facutil-pool");

  var pool = new Pool(cfg)

  //cfg
      {
          this.cache     = undefined;
          this.ctrl      = 0;
          this.size      = 100000;
          this.init_func = (pool)=>0;
          this.is_inuse  = (r)=>r!==0;
          this.rtrn_func = (r)=>0;
          this.rent_func = (r,id,pool)=>1;
      }

  //pool.rtrn(id)
  //pool.rent():[id,O] 
   
       

example

    var init_func = (pool)=> {
       let o = {_used:false}
       return(o)
    }
    
    var is_inuse = (r) => r._used!==false ;
    
    var rtrn_func = (r) => {
        r._used=false;
        return(r)
    } ;
    
    var rent_func = (r,id,pool) => {
        r._used=true;
        return(r)
    } ;
    var pool = new Pool({
        size:10,
        init_func,
        is_inuse,
        rtrn_func,
        rent_func
    })
    
    > pool
    Pool [{
        "size_": 10,
        "used_": 0,
        "lefted_": 10,
        "ctrl_": 0
    }] {}
    >


    > pool.rent()
    [ 0, { _used: true } ]
    > pool.rent()
    [ 1, { _used: true } ]
    > pool.rent()
    [ 2, { _used: true } ]
    > pool.rent()
    [ 3, { _used: true } ]
    > pool.rent()
    [ 4, { _used: true } ]
    > pool.rent()
    [ 5, { _used: true } ]
    > pool.rent()
    [ 6, { _used: true } ]
    > pool.rent()
    [ 7, { _used: true } ]
    > pool.rent()
    [ 8, { _used: true } ]
    > pool.rent()
    [ 9, { _used: true } ]
    > pool.rent()
    [ -1, undefined ]
    > pool.rent()
    [ -1, undefined ]
    > pool.rtrn(4)
    > pool.rent()
    [ 4, { _used: true } ]

METHODS

pool.cache_                pool.constructor           pool.ctrl_                 pool.init_func_            pool.is_full
pool.is_inuse_             pool.is_inuse_at           pool.is_usable_at          pool.lefted_               pool.rent
pool.rent_func_            pool.reset                 pool.rtrn                  pool.rtrn_func_            pool.size_
pool.used_

LICENSE

  • ISC