blob: 838ee6753d09584b575f0a45a704e764faeea1e9 [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// pg-index=2
var vanadium = require('vanadium');
/**
* Create a Vanadium runtime using the configuration defined in config.js,
* and bind it to the bakery/cookie/fortune service.
*/
vanadium.init(function(err, rt) {
if (err) { return error(err); }
var ctx = rt.getContext();
var client = rt.newClient();
console.info('Binding to service');
retryBindTo(ctx, client, function(err, fortuneService) {
if (err) { return error(err); }
console.info('Issuing request');
fortuneService.getRandomFortune(ctx, function(err, fortune) {
if (err) { return error(err); }
console.log('Received: ' + fortune);
process.exit(0);
});
});
});
function retryBindTo(ctx, client, cb) {
var timeoutCtx = ctx.withTimeout(2000);
client.bindTo(timeoutCtx, 'bakery/cookie/fortune', function(err, fortuneService) {
if (err) {
console.error(err + '\nRetrying in 100ms...');
return setTimeout(function() {
retryBindTo(ctx, client, cb);
}, 100);
}
cb(null, fortuneService);
});
}
function error(err) {
console.error(err);
process.exit(1);
}