type_ = key_info.type_;
key_ = key_info.key_;
values_size_ = key_info.values_size_;
+ uvalues_size_ = key_info.uvalues_size_;
for (unsigned int i = 0; i < key_info.values_.size(); ++i) {
auto* new_value = new (std::nothrow) unsigned char[values_size_[i]];
std::copy(key_info.values_[i].get(),
type_ = key_info.type_;
key_ = key_info.key_;
values_size_ = key_info.values_size_;
+ uvalues_size_ = key_info.uvalues_size_;
for (unsigned int i = 0; i < key_info.values_.size(); ++i) {
auto* new_value = new (std::nothrow) unsigned char[values_size_[i]];
std::copy(key_info.values_[i].get(),
key_ = std::move(key_info.key_);
values_ = std::move(key_info.values_);
values_size_ = std::move(key_info.values_size_);
+ uvalues_size_ = std::move(key_info.uvalues_size_);
}
KeyInfo& KeyInfo::operator = (KeyInfo&& key_info) noexcept {
key_ = std::move(key_info.key_);
values_ = std::move(key_info.values_);
values_size_ = std::move(key_info.values_size_);
+ uvalues_size_ = std::move(key_info.uvalues_size_);
}
return *this;
}
return values_size_;
}
+const std::vector<unsigned int>& KeyInfo::GetUValuesSize() {
+ return uvalues_size_;
+}
+
void KeyInfo::SetValue(const std::vector<unsigned char>& value) {
auto* new_value = new (std::nothrow) unsigned char[value.size()];
std::copy(value.begin(), value.end(), new_value);
values_.emplace_back(new_value);
values_size_.push_back(value.size());
+ uvalues_size_.push_back(static_cast<unsigned int>(value.size()));
}
void KeyInfo::SetValues(const std::vector<std::vector<unsigned char>>& values) {
std::copy(values[i].begin(), values[i].end(), new_value);
values_.emplace_back(new_value);
values_size_.push_back(values[i].size());
+ uvalues_size_.push_back(values[i].size());
}
}
values_.emplace_back(new_value);
values_size_.push_back(value_size);
+ uvalues_size_.push_back(static_cast<unsigned int>(value_size));
}
}
std::copy(value.begin(), value.end(), new_value);
values_[index].reset(new_value);
values_size_[index] = value.size();
+ uvalues_size_[index] = static_cast<unsigned int>(value.size());
}
int KeyInfo::GetSize() const {
const std::string& GetKey();
const std::vector<std::unique_ptr<unsigned char[]>>& GetValues();
const std::vector<std::size_t>& GetValuesSize();
+ const std::vector<unsigned int>& GetUValuesSize();
std::vector<unsigned char> Encode();
void SetValue(int index, const std::vector<unsigned char>& value);
std::string key_;
std::vector<std::unique_ptr<unsigned char[]>> values_;
std::vector<std::size_t> values_size_;
+ std::vector<unsigned int> uvalues_size_;
};
} // namespace internal
auto& values_size = const_cast<std::vector<std::size_t>&>(
key_info->GetValuesSize());
*array_val = reinterpret_cast<void**>(&values[0]);
- *array_len = reinterpret_cast<unsigned int>(values.size());
+ *array_len = static_cast<unsigned int>(values.size());
*array_item_size = reinterpret_cast<size_t*>(&values_size[0]);
return BUNDLE_ERROR_NONE;
}
key_info->GetValues());
auto** values = reinterpret_cast<unsigned char**>(&raw_values[0]);
*bytes_array = reinterpret_cast<void**>(values);
- *len = reinterpret_cast<unsigned int>(raw_values.size());
+ *len = static_cast<unsigned int>(raw_values.size());
- auto& raw_values_size = const_cast<std::vector<std::size_t>&>(
- key_info->GetValuesSize());
+ auto& raw_values_size = const_cast<std::vector<unsigned int>&>(
+ key_info->GetUValuesSize());
*array_element_size = reinterpret_cast<unsigned int*>(&raw_values_size[0]);
return BUNDLE_ERROR_NONE;