42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
var DTraceProvider;
|
|
|
|
function DTraceProviderStub() {}
|
|
DTraceProviderStub.prototype.addProbe = function(name) {
|
|
var p = { 'fire': function () {} };
|
|
this[name] = p;
|
|
return (p);
|
|
};
|
|
DTraceProviderStub.prototype.enable = function() {};
|
|
DTraceProviderStub.prototype.fire = function() {};
|
|
DTraceProviderStub.prototype.disable = function() {};
|
|
|
|
var builds = ['Release', 'default', 'Debug'];
|
|
var err = null;
|
|
|
|
for (var i = 0; i < builds.length; i++) {
|
|
try {
|
|
var binding = require('./src/build/' + builds[i] + '/DTraceProviderBindings');
|
|
DTraceProvider = binding.DTraceProvider;
|
|
break;
|
|
} catch (e) {
|
|
if (err === null) {
|
|
err = e;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (!DTraceProvider) {
|
|
if (process.env.NODE_DTRACE_PROVIDER_REQUIRE === 'hard') {
|
|
throw err;
|
|
} else {
|
|
DTraceProvider = DTraceProviderStub;
|
|
}
|
|
}
|
|
|
|
exports.DTraceProvider = DTraceProvider;
|
|
exports.createDTraceProvider = function(name, module) {
|
|
if (arguments.length == 2)
|
|
return (new exports.DTraceProvider(name, module));
|
|
return (new exports.DTraceProvider(name));
|
|
};
|