obcon-scada / app /include /Queue.js
chanmin0723's picture
Initial obcon SCADA deploy
e4bf523
Raw
History Blame Contribute Delete
1.33 kB
'use strict'
/**
* Copyright (c) 2017~2020, OBCon Inc.
* All rights reserved.
*/
/**
* @file
* @copyright 2017~2020, OBCon Inc.
* @author gye hyun james kim [pnuskgh@gmail.com]
*/
class Queue { //--- FIFO (First In First Out)
constructor(data) {
this._maxSize = 0; //--- 0. 크기 제한 없음
this._data = data || [];
}
get maxSize() {
return this._maxSize;
}
set maxSize(newValue) {
this._maxSize = newValue;
}
getBuffer() { //--- Stack 복사
return this._data.slice();
}
isEmpty() {
return this._data.length == 0;
}
peek() { //--- 첫번째 항목 조회
return (this.isEmpty()) ? null : this._data[0];
}
enqueue(item) { //--- 항목 추가
this._data.push(item);
if ((0 < this._maxSize) && (this._maxSize < this._data.length)) {
this._data.slice();
}
}
dequeue() { //--- 항목 제거
return this._data.shift();
}
}
module.exports = Queue;