|
1 | | -// Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved |
| 1 | +// Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved |
2 | 2 |
|
3 | 3 | //----------------------------------------------------------------------------- |
4 | 4 | // |
|
22 | 22 | const nodbUtil = require('./util.js'); |
23 | 23 |
|
24 | 24 | //----------------------------------------------------------------------------- |
25 | | -// deqOne |
| 25 | +// deqOne() |
26 | 26 | // Returns a single message from the queue, if one is available. |
27 | 27 | //----------------------------------------------------------------------------- |
28 | | -function deqOne(cb) { |
29 | | - nodbUtil.checkAsyncArgs(arguments, 1, 1); |
30 | | - this._deqOne(cb); |
| 28 | +async function deqOne() { |
| 29 | + nodbUtil.checkArgCount(arguments, 0, 0); |
| 30 | + return await this._deqOne(); |
31 | 31 | } |
32 | 32 |
|
33 | 33 |
|
34 | 34 | //----------------------------------------------------------------------------- |
35 | | -// deqMany |
| 35 | +// deqMany() |
36 | 36 | // Returns an array of messages from the queue, up to the maximum specified, |
37 | 37 | // if any are available. |
38 | 38 | //---------------------------------------------------------------------------- |
39 | | -function deqMany(maxMessages, cb) { |
40 | | - nodbUtil.checkAsyncArgs(arguments, 2, 2); |
| 39 | +async function deqMany(maxMessages) { |
| 40 | + nodbUtil.checkArgCount(arguments, 1, 1); |
41 | 41 | nodbUtil.assert(typeof maxMessages === 'number', 'NJS-005', 1); |
42 | | - |
43 | | - this._deqMany(maxMessages, cb); |
| 42 | + return await this._deqMany(maxMessages); |
44 | 43 | } |
45 | 44 |
|
46 | 45 |
|
47 | 46 | //----------------------------------------------------------------------------- |
48 | | -// enqOne |
| 47 | +// enqOne() |
49 | 48 | // Enqueues a single message into the queue. |
50 | 49 | //----------------------------------------------------------------------------- |
51 | | -function enqOne(message, cb) { |
52 | | - nodbUtil.checkAsyncArgs(arguments, 2, 2); |
| 50 | +async function enqOne(message) { |
| 51 | + nodbUtil.checkArgCount(arguments, 1, 1); |
53 | 52 | nodbUtil.assert(typeof message === 'object' || typeof message === 'string', |
54 | 53 | 'NJS-005', 1); |
55 | | - |
56 | | - this._enqOne(message, cb); |
| 54 | + return await this._enqOne(message); |
57 | 55 | } |
58 | 56 |
|
59 | 57 |
|
60 | 58 | //----------------------------------------------------------------------------- |
61 | | -// enqMany |
62 | | -// Returns an array of messages from the queue, up to the maximum specified, |
63 | | -// if any are available. |
| 59 | +// enqMany() |
| 60 | +// Enqueues multiple messages into the queue at the same time, avoiding |
| 61 | +// multiple round-trips. |
64 | 62 | //---------------------------------------------------------------------------- |
65 | | -function enqMany(messages, cb) { |
66 | | - nodbUtil.checkAsyncArgs(arguments, 2, 2); |
| 63 | +async function enqMany(messages) { |
| 64 | + nodbUtil.checkArgCount(arguments, 1, 1); |
67 | 65 | nodbUtil.assert(Array.isArray(messages), 'NJS-005', 1); |
68 | | - |
69 | | - this._enqMany(messages, cb); |
| 66 | + return await this._enqMany(messages); |
70 | 67 | } |
71 | 68 |
|
72 | 69 |
|
73 | 70 | class AqQueue { |
74 | 71 |
|
75 | | - _extend(oracledb) { |
76 | | - this.deqOne = nodbUtil.promisify(oracledb, deqOne); |
77 | | - this.deqMany = nodbUtil.promisify(oracledb, deqMany); |
78 | | - this.enqOne = nodbUtil.promisify(oracledb, enqOne); |
79 | | - this.enqMany = nodbUtil.promisify(oracledb, enqMany); |
| 72 | + _extend() { |
| 73 | + this.deqOne = nodbUtil.callbackify(deqOne); |
| 74 | + this.deqMany = nodbUtil.callbackify(deqMany); |
| 75 | + this.enqOne = nodbUtil.callbackify(enqOne); |
| 76 | + this.enqMany = nodbUtil.callbackify(enqMany); |
80 | 77 | } |
81 | 78 |
|
82 | 79 | } |
|
0 commit comments