in src/tick_loader.cpp [61:81]
uint32_t TickLoader::registerType(const std::string &type_name) {
auto it = type_to_id_.find(type_name);
if (it == type_to_id_.end()) {
int32_t descriptor_id = findDescriptor(type_name);
if (descriptor_id == INT32_MIN)
THROW_EXCEPTION("Type '%s' not found in stream schema.", type_name.c_str());
std::shared_ptr<MessageCodec> new_message_codec =
std::shared_ptr<MessageCodec>(new MessageCodec(descriptors_, descriptor_id));
while (message_codecs_.size() <= next_id_)
message_codecs_.push_back(NULL);
message_codecs_[next_id_] = new_message_codec;
type_to_id_[type_name] = next_id_;
loader_->registerMessageType(next_id_, type_name);
return next_id_++;
}
return it->second;
}