mirror of
https://github.com/espressif/openthread.git
synced 2026-08-21 01:49:52 +00:00
[dataset] define Dataset::Tlvs type (#9991)
This commit defines `Dataset::Tlvs` as a core type corresponding to public OT `otOperationalDatasetTlvs` structure.
This commit is contained in:
@@ -251,10 +251,10 @@ void Dataset::ConvertTo(Info &aDatasetInfo) const
|
||||
}
|
||||
}
|
||||
|
||||
void Dataset::ConvertTo(otOperationalDatasetTlvs &aDataset) const
|
||||
void Dataset::ConvertTo(Tlvs &aTlvs) const
|
||||
{
|
||||
memcpy(aDataset.mTlvs, mTlvs, mLength);
|
||||
aDataset.mLength = static_cast<uint8_t>(mLength);
|
||||
memcpy(aTlvs.mTlvs, mTlvs, mLength);
|
||||
aTlvs.mLength = static_cast<uint8_t>(mLength);
|
||||
}
|
||||
|
||||
void Dataset::Set(Type aType, const Dataset &aDataset)
|
||||
@@ -271,10 +271,10 @@ void Dataset::Set(Type aType, const Dataset &aDataset)
|
||||
mUpdateTime = aDataset.GetUpdateTime();
|
||||
}
|
||||
|
||||
void Dataset::SetFrom(const otOperationalDatasetTlvs &aDataset)
|
||||
void Dataset::SetFrom(const Tlvs &aTlvs)
|
||||
{
|
||||
mLength = aDataset.mLength;
|
||||
memcpy(mTlvs, aDataset.mTlvs, mLength);
|
||||
mLength = aTlvs.mLength;
|
||||
memcpy(mTlvs, aTlvs.mTlvs, mLength);
|
||||
}
|
||||
|
||||
Error Dataset::SetFrom(const Info &aDatasetInfo)
|
||||
|
||||
@@ -75,6 +75,12 @@ public:
|
||||
kPending, ///< Pending Dataset
|
||||
};
|
||||
|
||||
/**
|
||||
* Represents a Dataset as a sequence of TLVs.
|
||||
*
|
||||
*/
|
||||
typedef otOperationalDatasetTlvs Tlvs;
|
||||
|
||||
/**
|
||||
* Represents presence of different components in Active or Pending Operational Dataset.
|
||||
*
|
||||
@@ -770,10 +776,10 @@ public:
|
||||
/**
|
||||
* Converts the TLV representation to structure representation.
|
||||
*
|
||||
* @param[out] aDataset A reference to `otOperationalDatasetTlvs` to output the Dataset.
|
||||
* @param[out] aTlvs A reference to output the Dataset as a sequence of TLVs.
|
||||
*
|
||||
*/
|
||||
void ConvertTo(otOperationalDatasetTlvs &aDataset) const;
|
||||
void ConvertTo(Tlvs &aTlvs) const;
|
||||
|
||||
/**
|
||||
* Returns the Dataset size in bytes.
|
||||
@@ -859,10 +865,10 @@ public:
|
||||
/**
|
||||
* Sets the Dataset using @p aDataset.
|
||||
*
|
||||
* @param[in] aDataset The input Dataset as otOperationalDatasetTlvs.
|
||||
* @param[in] aDataset The input Dataset as `Tlvs`.
|
||||
*
|
||||
*/
|
||||
void SetFrom(const otOperationalDatasetTlvs &aDataset);
|
||||
void SetFrom(const Tlvs &aTlvs);
|
||||
|
||||
/**
|
||||
* Appends the MLE Dataset TLV but excluding MeshCoP Sub Timestamp TLV.
|
||||
|
||||
@@ -147,15 +147,15 @@ exit:
|
||||
return error;
|
||||
}
|
||||
|
||||
Error DatasetLocal::Read(otOperationalDatasetTlvs &aDataset) const
|
||||
Error DatasetLocal::Read(Dataset::Tlvs &aDatasetTlvs) const
|
||||
{
|
||||
Dataset dataset;
|
||||
Error error;
|
||||
|
||||
ClearAllBytes(aDataset);
|
||||
ClearAllBytes(aDatasetTlvs);
|
||||
|
||||
SuccessOrExit(error = Read(dataset));
|
||||
dataset.ConvertTo(aDataset);
|
||||
dataset.ConvertTo(aDatasetTlvs);
|
||||
|
||||
exit:
|
||||
return error;
|
||||
@@ -173,11 +173,11 @@ exit:
|
||||
return error;
|
||||
}
|
||||
|
||||
Error DatasetLocal::Save(const otOperationalDatasetTlvs &aDataset)
|
||||
Error DatasetLocal::Save(const Dataset::Tlvs &aDatasetTlvs)
|
||||
{
|
||||
Dataset dataset;
|
||||
|
||||
dataset.SetFrom(aDataset);
|
||||
dataset.SetFrom(aDatasetTlvs);
|
||||
|
||||
return Save(dataset);
|
||||
}
|
||||
|
||||
@@ -134,13 +134,13 @@ public:
|
||||
/**
|
||||
* Retrieves the dataset from non-volatile memory.
|
||||
*
|
||||
* @param[out] aDataset Where to place the dataset.
|
||||
* @param[out] aDatasetTlvs Where to place the dataset.
|
||||
*
|
||||
* @retval kErrorNone Successfully retrieved the dataset.
|
||||
* @retval kErrorNotFound There is no corresponding dataset stored in non-volatile memory.
|
||||
*
|
||||
*/
|
||||
Error Read(otOperationalDatasetTlvs &aDataset) const;
|
||||
Error Read(Dataset::Tlvs &aDatasetTlvs) const;
|
||||
|
||||
/**
|
||||
* Returns the local time this dataset was last updated or restored.
|
||||
@@ -164,13 +164,13 @@ public:
|
||||
/**
|
||||
* Stores the dataset into non-volatile memory.
|
||||
*
|
||||
* @param[in] aDataset The Dataset to save as `otOperationalDatasetTlvs`.
|
||||
* @param[in] aDatasetTlvs The Dataset to save as `Dataset::Tlvs`.
|
||||
*
|
||||
* @retval kErrorNone Successfully saved the dataset.
|
||||
* @retval kErrorNotImplemented The platform does not implement settings functionality.
|
||||
*
|
||||
*/
|
||||
Error Save(const otOperationalDatasetTlvs &aDataset);
|
||||
Error Save(const Dataset::Tlvs &aDatasetTlvs);
|
||||
|
||||
/**
|
||||
* Stores the dataset into non-volatile memory.
|
||||
|
||||
@@ -160,11 +160,11 @@ exit:
|
||||
return error;
|
||||
}
|
||||
|
||||
Error DatasetManager::Save(const otOperationalDatasetTlvs &aDataset)
|
||||
Error DatasetManager::Save(const Dataset::Tlvs &aDatasetTlvs)
|
||||
{
|
||||
Error error;
|
||||
|
||||
SuccessOrExit(error = mLocal.Save(aDataset));
|
||||
SuccessOrExit(error = mLocal.Save(aDatasetTlvs));
|
||||
HandleDatasetUpdated();
|
||||
|
||||
exit:
|
||||
@@ -697,11 +697,11 @@ exit:
|
||||
return error;
|
||||
}
|
||||
|
||||
Error PendingDatasetManager::Save(const otOperationalDatasetTlvs &aDataset)
|
||||
Error PendingDatasetManager::Save(const Dataset::Tlvs &aDatasetTlvs)
|
||||
{
|
||||
Error error;
|
||||
|
||||
SuccessOrExit(error = DatasetManager::Save(aDataset));
|
||||
SuccessOrExit(error = DatasetManager::Save(aDatasetTlvs));
|
||||
StartDelayTimer();
|
||||
|
||||
exit:
|
||||
|
||||
@@ -96,13 +96,13 @@ public:
|
||||
/**
|
||||
* Retrieves the dataset from non-volatile memory.
|
||||
*
|
||||
* @param[out] aDataset Where to place the dataset.
|
||||
* @param[out] aDatasetTlvs Where to place the dataset.
|
||||
*
|
||||
* @retval kErrorNone Successfully retrieved the dataset.
|
||||
* @retval kErrorNotFound There is no corresponding dataset stored in non-volatile memory.
|
||||
*
|
||||
*/
|
||||
Error Read(otOperationalDatasetTlvs &aDataset) const { return mLocal.Read(aDataset); }
|
||||
Error Read(Dataset::Tlvs &aDatasetTlvs) const { return mLocal.Read(aDatasetTlvs); }
|
||||
|
||||
/**
|
||||
* Retrieves the channel mask from local dataset.
|
||||
@@ -261,13 +261,13 @@ protected:
|
||||
/**
|
||||
* Saves the Operational Dataset in non-volatile memory.
|
||||
*
|
||||
* @param[in] aDataset The Operational Dataset.
|
||||
* @param[in] aDatasetTlvs The Operational Dataset as `Dataset::Tlvs`.
|
||||
*
|
||||
* @retval kErrorNone Successfully saved the dataset.
|
||||
* @retval kErrorNotImplemented The platform does not implement settings functionality.
|
||||
*
|
||||
*/
|
||||
Error Save(const otOperationalDatasetTlvs &aDataset);
|
||||
Error Save(const Dataset::Tlvs &aDatasetTlvs);
|
||||
|
||||
/**
|
||||
* Sets the Operational Dataset for the partition.
|
||||
@@ -459,13 +459,13 @@ public:
|
||||
/**
|
||||
* Sets the Operational Dataset in non-volatile memory.
|
||||
*
|
||||
* @param[in] aDataset The Operational Dataset.
|
||||
* @param[in] aDatasetTlvs The Operational Dataset as `Dataset::Tlvs`.
|
||||
*
|
||||
* @retval kErrorNone Successfully saved the dataset.
|
||||
* @retval kErrorNotImplemented The platform does not implement settings functionality.
|
||||
*
|
||||
*/
|
||||
Error Save(const otOperationalDatasetTlvs &aDataset) { return DatasetManager::Save(aDataset); }
|
||||
Error Save(const Dataset::Tlvs &aDatasetTlvs) { return DatasetManager::Save(aDatasetTlvs); }
|
||||
|
||||
#if OPENTHREAD_FTD
|
||||
|
||||
@@ -558,13 +558,13 @@ public:
|
||||
*
|
||||
* Also starts the Delay Timer.
|
||||
*
|
||||
* @param[in] aDataset The Operational Dataset.
|
||||
* @param[in] aDatasetTlvs The Operational Dataset as a sequence of TLVs.
|
||||
*
|
||||
* @retval kErrorNone Successfully saved the dataset.
|
||||
* @retval kErrorNotImplemented The platform does not implement settings functionality.
|
||||
*
|
||||
*/
|
||||
Error Save(const otOperationalDatasetTlvs &aDataset);
|
||||
Error Save(const Dataset::Tlvs &aDatasetTlvs);
|
||||
|
||||
/**
|
||||
* Sets the Operational Dataset for the partition.
|
||||
|
||||
@@ -461,9 +461,9 @@ exit:
|
||||
|
||||
Error TcatAgent::HandleSetActiveOperationalDataset(const Message &aIncommingMessage, uint16_t aOffset, uint16_t aLength)
|
||||
{
|
||||
Dataset dataset;
|
||||
otOperationalDatasetTlvs datasetTlvs;
|
||||
Error error;
|
||||
Dataset dataset;
|
||||
Dataset::Tlvs datasetTlvs;
|
||||
Error error;
|
||||
|
||||
SuccessOrExit(error = dataset.ReadFromMessage(aIncommingMessage, aOffset, aLength));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user