35 lines
1.4 KiB
JavaScript
35 lines
1.4 KiB
JavaScript
|
var util = require('util');
|
||
|
|
||
|
var EventStorePersistentSubscriptionBase = require('./eventStorePersistentSubscriptionBase');
|
||
|
var messages = require('./core/messages');
|
||
|
|
||
|
function EventStorePersistentSubscription(
|
||
|
subscriptionId, streamId, eventAppeared, subscriptionDropped, userCredentials, log, verboseLogging, settings,
|
||
|
handler, bufferSize, autoAck
|
||
|
) {
|
||
|
bufferSize = bufferSize === undefined ? 10 : bufferSize;
|
||
|
autoAck = autoAck === undefined ? true : !!autoAck;
|
||
|
|
||
|
EventStorePersistentSubscriptionBase.call(this, subscriptionId, streamId, eventAppeared, subscriptionDropped,
|
||
|
userCredentials, log, verboseLogging, settings, bufferSize, autoAck);
|
||
|
|
||
|
this._handler = handler;
|
||
|
}
|
||
|
util.inherits(EventStorePersistentSubscription, EventStorePersistentSubscriptionBase);
|
||
|
|
||
|
EventStorePersistentSubscription.prototype._startSubscription = function(
|
||
|
subscriptionId, streamId, bufferSize, userCredentials, onEventAppeared, onSubscriptionDropped, settings
|
||
|
) {
|
||
|
var self = this;
|
||
|
return new Promise(function(resolve, reject){
|
||
|
function cb(err, result) {
|
||
|
if (err) return reject(err);
|
||
|
resolve(result);
|
||
|
}
|
||
|
self._handler.enqueueMessage(new messages.StartPersistentSubscriptionMessage(cb, subscriptionId, streamId,
|
||
|
bufferSize, userCredentials, onEventAppeared, onSubscriptionDropped, settings.maxRetries,
|
||
|
settings.operationTimeout));
|
||
|
});
|
||
|
};
|
||
|
|
||
|
module.exports = EventStorePersistentSubscription;
|