Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | 1x 1x 1x 1x 1x 7x 7x 1x 2x 2x 1x 1x 2x 2x 2x 2x | // Copyright (C) 2017 Norman Breau // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. import {Database} from './Database'; import {MySQLConnection} from './MySQLConnection'; import * as MySQL from 'mysql'; import {getApplicationLogger} from './instance'; export class MySQLDatabase extends Database { private cluster: MySQL.PoolCluster; constructor() { super(); this.cluster = MySQL.createPoolCluster(); } public escape(query: string): string { return MySQL.escape(query); } protected _addNode(nodeID: string, config: MySQL.PoolConfig): void { getApplicationLogger().trace(`Adding node to connection pool: "${nodeID}"`); this.cluster.add(nodeID, config); } protected _removeNode(nodeID: string): void { getApplicationLogger().trace(`Removing node to connection pool: "${nodeID}"`); this.cluster.remove(nodeID); } protected _getConnection(query: string, requireWriteAccess: boolean): Promise<MySQLConnection> { getApplicationLogger().trace(`Querying connection pool for "${query}".`); return new Promise<MySQLConnection>((resolve, reject) => { let instantationStack: string = new Error().stack; this.cluster.getConnection(query, (error: MySQL.MysqlError, connection: MySQL.PoolConnection) => { if (error) { reject(error); return; } resolve(new MySQLConnection(connection, instantationStack, !requireWriteAccess)); }); }); } } |