/* * node-rdkafka - Node.js wrapper for RdKafka C/C++ library * * Copyright (c) 2016 Blizzard Entertainment * * This software may be modified and distributed under the terms * of the MIT license. See the LICENSE.txt file for details. */ var librdkafka = require('../librdkafka'); module.exports = Topic; var topicKey = 'RdKafka::Topic::'; var topicKeyLength = topicKey.length; // Take all of the topic special codes from librdkafka and add them // to the object // You can find this list in the C++ code at // https://github.com/edenhill/librdkafka/blob/master/src-cpp/rdkafkacpp.h#L1250 for (var key in librdkafka.topic) { // Skip it if it doesn't start with ErrorCode if (key.indexOf('RdKafka::Topic::') !== 0) { continue; } // Replace/add it if there are any discrepancies var newKey = key.substring(topicKeyLength); Topic[newKey] = librdkafka.topic[key]; } /** * Create a topic. Just returns the string you gave it right now. * * Looks like a class, but all it does is return the topic name. * This is so that one day if there are interface changes that allow * different use of topic parameters, we can just add to this constructor and * have it return something richer */ function Topic(topicName) { return topicName; }