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)); | |
}; | |