in aws/kinesis/core/kinesis_record.cc [175:211]
void KinesisRecord::after_remove(const std::shared_ptr<UserRecord>& ur) {
cached_accurate_size_valid_ = false;
aggregated_record_.mutable_records()->RemoveLast();
estimated_size_ -= ur->data().length() + 3;
{
auto pk_rm_result = partition_keys_.remove_one(ur->partition_key());
if (pk_rm_result.first) {
aggregated_record_.mutable_partition_key_table()->RemoveLast();
for (int i = 0; i < aggregated_record_.records_size(); i++) {
auto r = aggregated_record_.mutable_records(i);
if (r->partition_key_index() > pk_rm_result.second) {
r->set_partition_key_index(r->partition_key_index() - 1);
}
}
estimated_size_ -= ur->partition_key().length() + 3;
}
estimated_size_ -= 2;
}
auto ehk = ur->explicit_hash_key();
if (ehk) {
auto ehk_rm_result = explicit_hash_keys_.remove_one(ehk.get());
if (ehk_rm_result.first) {
aggregated_record_.mutable_explicit_hash_key_table()->RemoveLast();
for (int i = 0; i < aggregated_record_.records_size(); i++) {
auto r = aggregated_record_.mutable_records(i);
if (r->explicit_hash_key_index() > ehk_rm_result.second) {
r->set_explicit_hash_key_index(r->explicit_hash_key_index() - 1);
}
}
estimated_size_ -= ehk->length() + 3;
}
estimated_size_ -= 2;
}
}