/*
* Copyright 2016 The Android Open Source Project
*
* Licensed under the Apache License , Version 2 . 0 ( the " License " ) ;
* you may not use this file except in compliance with the License .
* You may obtain a copy of the License at
*
* http : //www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing , software
* distributed under the License is distributed on an " AS IS " BASIS ,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied .
* See the License for the specific language governing permissions and
* limitations under the License .
*/
#include "avb_messages.h"
#include <stdio.h>
#include <string.h>
namespace avb {
uint32_t RollbackIndexRequest::GetSerializedSize() const {
return sizeof (value_) + sizeof (slot_);
}
uint32_t RollbackIndexRequest::Serialize(uint8_t* payload,
const uint8_t* end) const {
if (payload + GetSerializedSize() > end)
return 0 ;
memcpy(payload, &value_, sizeof (value_));
payload += sizeof (value_);
memcpy(payload, &slot_, sizeof (slot_));
payload += sizeof (slot_);
return GetSerializedSize();
}
int RollbackIndexRequest::Deserialize(const uint8_t* payload,
const uint8_t* end) {
if (payload + GetSerializedSize() != end)
return ERR_NOT_VALID;
memcpy(&value_, payload, sizeof (value_));
payload += sizeof (value_);
memcpy(&slot_, payload, sizeof (slot_));
payload += sizeof (slot_);
return NO_ERROR;
}
uint32_t RollbackIndexResponse::GetSerializedSize() const {
return sizeof (value_);
}
uint32_t RollbackIndexResponse::Serialize(uint8_t* payload,
const uint8_t* end) const {
if (payload + GetSerializedSize() > end)
return 0 ;
memcpy(payload, &value_, sizeof (value_));
payload += sizeof (value_);
return GetSerializedSize();
}
int RollbackIndexResponse::Deserialize(const uint8_t* payload,
const uint8_t* end) {
if (payload + GetSerializedSize() != end)
return ERR_NOT_VALID;
memcpy(&value_, payload, sizeof (value_));
payload += sizeof (value_);
return NO_ERROR;
}
uint32_t GetVersionResponse::GetSerializedSize() const {
return sizeof (version_);
}
uint32_t GetVersionResponse::Serialize(uint8_t* payload,
const uint8_t* end) const {
if (payload + GetSerializedSize() > end)
return 0 ;
memcpy(payload, &version_, sizeof (version_));
payload += sizeof (version_);
return GetSerializedSize();
}
int GetVersionResponse::Deserialize(const uint8_t* payload,
const uint8_t* end) {
if (payload + GetSerializedSize() != end)
return ERR_NOT_VALID;
memcpy(&version_, payload, sizeof (version_));
payload += sizeof (version_);
return NO_ERROR;
}
uint32_t PermanentAttributesMessage::GetSerializedSize() const {
return attributes_size_;
}
uint32_t PermanentAttributesMessage::Serialize(uint8_t* payload,
const uint8_t* end) const {
if (static_cast <uint32_t>(end - payload) != attributes_size_)
return 0 ;
memcpy(payload, attributes_.get(), attributes_size_);
return attributes_size_;
}
int PermanentAttributesMessage::Deserialize(const uint8_t* payload,
const uint8_t* end) {
if (end < payload)
return ERR_NOT_VALID;
attributes_size_ = end - payload;
attributes_.reset(new uint8_t[attributes_size_]);
if (!attributes_.get())
return ERR_NO_MEMORY;
memcpy(attributes_.get(), payload, attributes_size_);
return NO_ERROR;
}
uint32_t LockStateMessage::GetSerializedSize() const {
return sizeof (lock_state_);
}
uint32_t LockStateMessage::Serialize(uint8_t* payload,
const uint8_t* end) const {
if (payload + GetSerializedSize() > end)
return 0 ;
memcpy(payload, &lock_state_, sizeof (lock_state_));
payload += sizeof (lock_state_);
return GetSerializedSize();
}
int LockStateMessage::Deserialize(const uint8_t* payload, const uint8_t* end) {
if (payload + GetSerializedSize() != end)
return ERR_NOT_VALID;
memcpy(&lock_state_, payload, sizeof (lock_state_));
payload += sizeof (lock_state_);
return NO_ERROR;
}
}; // namespace avb
Messung V0.5 in Prozent C=87 H=81 G=83
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-26)
¤
*© Formatika GbR, Deutschland