From bd3ba18da423f206a058ff6f4bffd2a6208df3fa Mon Sep 17 00:00:00 2001 From: Tommaso Pecorella Date: Mon, 6 Oct 2014 22:36:50 -0700 Subject: [PATCH] [Doxygen] LTE Asn1Header --- src/lte/model/lte-asn1-header.h | 348 +++++++++++++++++++++++++++++++- 1 file changed, 337 insertions(+), 11 deletions(-) diff --git a/src/lte/model/lte-asn1-header.h b/src/lte/model/lte-asn1-header.h index bd34d15ac..c77611ccf 100644 --- a/src/lte/model/lte-asn1-header.h +++ b/src/lte/model/lte-asn1-header.h @@ -26,8 +26,6 @@ #include #include -#include "ns3/lte-rrc-sap.h" - namespace ns3 { /** @@ -41,7 +39,10 @@ public: Asn1Header (); virtual ~Asn1Header (); - // Inherited from ns3::Header base class + /** + * \brief Get the type ID. + * \return the object TypeId + */ static TypeId GetTypeId (void); virtual TypeId GetInstanceTypeId (void) const; uint32_t GetSerializedSize (void) const; @@ -58,91 +59,416 @@ public: * this function is needed to store the result, so its length can be retrieved * with Header::GetSerializedSize() function. * This method is pure virtual in this class (needs to be implemented in child classes) - * as the meningful information elements are in the subclasses. + * as the meaningful information elements are in the subclasses. */ virtual void PreSerialize (void) const = 0; protected: - mutable uint8_t m_serializationPendingBits; - mutable uint8_t m_numSerializationPendingBits; - mutable bool m_isDataSerialized; - mutable Buffer m_serializationResult; + mutable uint8_t m_serializationPendingBits; //!< pending bits + mutable uint8_t m_numSerializationPendingBits; //!< number of pending bits + mutable bool m_isDataSerialized; //!< true if data is serialized + mutable Buffer m_serializationResult; //!< serialization result - // Function to write in m_serializationResult, after resizing its size + /** + * Function to write in m_serializationResult, after resizing its size + * \param octet bits to write + */ void WriteOctet (uint8_t octet) const; // Serialization functions + + /** + * Serialize a bool + * \param value value to serialize + */ void SerializeBoolean (bool value) const; + /** + * Serialize an Integer + * \param n value to serialize + * \param nmin min value to serialize + * \param nmax max value to serialize + */ void SerializeInteger (int n, int nmin, int nmax) const; - void SerializeOctetstring (std::string s) const; + // void SerializeOctetstring (std::string s) const; + /** + * Serialize a Sequence + * \param numElems element number to serialize + * \param nMax max value to serialize + * \param nMin min value to serialize + */ void SerializeSequenceOf (int numElems, int nMax, int nMin) const; + /** + * Serialize a Choice (set of options) + * \param numOptions number of options + * \param selectedOption selected option + * \param isExtensionMarkerPresent true if extension mark is present + */ void SerializeChoice (int numOptions, int selectedOption, bool isExtensionMarkerPresent) const; + /** + * Serialize an Enum + * \param numElems number of elements in the enum + * \param selectedElem selected element + */ void SerializeEnum (int numElems, int selectedElem) const; + /** + * Serialize nothing (null op) + */ void SerializeNull () const; + /** + * Finalizes an in progress serialization. + */ void FinalizeSerialization () const; + /** + * Serialize a bitset + * \param data data to serialize + */ template void SerializeBitset (std::bitset data) const; + /** + * Serialize a sequence + * \param optionalOrDefaultMask Mask to serialize + * \param isExtensionMarkerPresent true if Extension Marker is present + */ template void SerializeSequence (std::bitset optionalOrDefaultMask, bool isExtensionMarkerPresent) const; + /** + * Serialize a sequence + * \param optionalOrDefaultMask Mask to serialize + * \param isExtensionMarkerPresent true if Extension Marker is present + */ void SerializeSequence (std::bitset<0> optionalOrDefaultMask, bool isExtensionMarkerPresent) const; + /** + * Serialize a sequence + * \param optionalOrDefaultMask Mask to serialize + * \param isExtensionMarkerPresent true if Extension Marker is present + */ void SerializeSequence (std::bitset<1> optionalOrDefaultMask, bool isExtensionMarkerPresent) const; + /** + * Serialize a sequence + * \param optionalOrDefaultMask Mask to serialize + * \param isExtensionMarkerPresent true if Extension Marker is present + */ void SerializeSequence (std::bitset<2> optionalOrDefaultMask, bool isExtensionMarkerPresent) const; + /** + * Serialize a sequence + * \param optionalOrDefaultMask Mask to serialize + * \param isExtensionMarkerPresent true if Extension Marker is present + */ void SerializeSequence (std::bitset<3> optionalOrDefaultMask, bool isExtensionMarkerPresent) const; + /** + * Serialize a sequence + * \param optionalOrDefaultMask Mask to serialize + * \param isExtensionMarkerPresent true if Extension Marker is present + */ void SerializeSequence (std::bitset<4> optionalOrDefaultMask, bool isExtensionMarkerPresent) const; + /** + * Serialize a sequence + * \param optionalOrDefaultMask Mask to serialize + * \param isExtensionMarkerPresent true if Extension Marker is present + */ void SerializeSequence (std::bitset<5> optionalOrDefaultMask, bool isExtensionMarkerPresent) const; + /** + * Serialize a sequence + * \param optionalOrDefaultMask Mask to serialize + * \param isExtensionMarkerPresent true if Extension Marker is present + */ void SerializeSequence (std::bitset<6> optionalOrDefaultMask, bool isExtensionMarkerPresent) const; + /** + * Serialize a sequence + * \param optionalOrDefaultMask Mask to serialize + * \param isExtensionMarkerPresent true if Extension Marker is present + */ void SerializeSequence (std::bitset<9> optionalOrDefaultMask, bool isExtensionMarkerPresent) const; + /** + * Serialize a sequence + * \param optionalOrDefaultMask Mask to serialize + * \param isExtensionMarkerPresent true if Extension Marker is present + */ void SerializeSequence (std::bitset<10> optionalOrDefaultMask, bool isExtensionMarkerPresent) const; + /** + * Serialize a sequence + * \param optionalOrDefaultMask Mask to serialize + * \param isExtensionMarkerPresent true if Extension Marker is present + */ void SerializeSequence (std::bitset<11> optionalOrDefaultMask, bool isExtensionMarkerPresent) const; + /** + * Serialize a bitstring + * \param bitstring bitstring to serialize + */ template void SerializeBitstring (std::bitset bitstring) const; + /** + * Serialize a bitstring + * \param bitstring bitstring to serialize + */ void SerializeBitstring (std::bitset<1> bitstring) const; + /** + * Serialize a bitstring + * \param bitstring bitstring to serialize + */ void SerializeBitstring (std::bitset<2> bitstring) const; + /** + * Serialize a bitstring + * \param bitstring bitstring to serialize + */ void SerializeBitstring (std::bitset<8> bitstring) const; + /** + * Serialize a bitstring + * \param bitstring bitstring to serialize + */ void SerializeBitstring (std::bitset<10> bitstring) const; + /** + * Serialize a bitstring + * \param bitstring bitstring to serialize + */ void SerializeBitstring (std::bitset<16> bitstring) const; + /** + * Serialize a bitstring + * \param bitstring bitstring to serialize + */ void SerializeBitstring (std::bitset<27> bitstring) const; + /** + * Serialize a bitstring + * \param bitstring bitstring to serialize + */ void SerializeBitstring (std::bitset<28> bitstring) const; + /** + * Serialize a bitstring + * \param bitstring bitstring to serialize + */ void SerializeBitstring (std::bitset<32> bitstring) const; // Deserialization functions + + /** + * Deserialize a bitset + * \param data buffer to store the result + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ template Buffer::Iterator DeserializeBitset (std::bitset *data, Buffer::Iterator bIterator); + /** + * Deserialize a bitset + * \param data buffer to store the result + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeBitset (std::bitset<8> *data, Buffer::Iterator bIterator); + /** + * Deserialize a boolean + * \param value buffer to store the result + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeBoolean (bool *value, Buffer::Iterator bIterator); + /** + * Deserialize an integer + * \param n buffer to store the result + * \param nmin min value to serialize + * \param nmax max value to serialize + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeInteger (int *n, int nmin, int nmax, Buffer::Iterator bIterator); + /** + * Deserialize a Choice (set of options) + * \param numOptions number of options + * \param isExtensionMarkerPresent true if extension mark is present + * \param selectedOption buffer to store the result + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeChoice (int numOptions, bool isExtensionMarkerPresent, int *selectedOption, Buffer::Iterator bIterator); + /** + * Deserialize an Enum + * \param numElems number of elements in the enum + * \param selectedElem buffer to store the result + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeEnum (int numElems, int *selectedElem, Buffer::Iterator bIterator); + /** + * Deserialize a sequence + * \param optionalOrDefaultMask buffer to store the result + * \param isExtensionMarkerPresent true if Extension Marker is present + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ template + /** + * Deserialize a sequence + * \param optionalOrDefaultMask buffer to store the result + * \param isExtensionMarkerPresent true if Extension Marker is present + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeSequence (std::bitset *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator); + /** + * Deserialize a sequence + * \param optionalOrDefaultMask buffer to store the result + * \param isExtensionMarkerPresent true if Extension Marker is present + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeSequence (std::bitset<0> *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator); + /** + * Deserialize a sequence + * \param optionalOrDefaultMask buffer to store the result + * \param isExtensionMarkerPresent true if Extension Marker is present + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeSequence (std::bitset<1> *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator); + /** + * Deserialize a sequence + * \param optionalOrDefaultMask buffer to store the result + * \param isExtensionMarkerPresent true if Extension Marker is present + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeSequence (std::bitset<2> *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator); + /** + * Deserialize a sequence + * \param optionalOrDefaultMask buffer to store the result + * \param isExtensionMarkerPresent true if Extension Marker is present + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeSequence (std::bitset<3> *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator); + /** + * Deserialize a sequence + * \param optionalOrDefaultMask buffer to store the result + * \param isExtensionMarkerPresent true if Extension Marker is present + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeSequence (std::bitset<4> *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator); + /** + * Deserialize a sequence + * \param optionalOrDefaultMask buffer to store the result + * \param isExtensionMarkerPresent true if Extension Marker is present + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeSequence (std::bitset<5> *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator); + /** + * Deserialize a sequence + * \param optionalOrDefaultMask buffer to store the result + * \param isExtensionMarkerPresent true if Extension Marker is present + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeSequence (std::bitset<6> *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator); + /** + * Deserialize a sequence + * \param optionalOrDefaultMask buffer to store the result + * \param isExtensionMarkerPresent true if Extension Marker is present + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeSequence (std::bitset<9> *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator); + /** + * Deserialize a sequence + * \param optionalOrDefaultMask buffer to store the result + * \param isExtensionMarkerPresent true if Extension Marker is present + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeSequence (std::bitset<10> *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator); + /** + * Deserialize a sequence + * \param optionalOrDefaultMask buffer to store the result + * \param isExtensionMarkerPresent true if Extension Marker is present + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeSequence (std::bitset<11> *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator); - template + /** + * Deserialize a bitstring + * \param bitstring buffer to store the result + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ + template Buffer::Iterator DeserializeBitstring (std::bitset *bitstring, Buffer::Iterator bIterator); + /** + * Deserialize a bitstring + * \param bitstring buffer to store the result + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeBitstring (std::bitset<1> *bitstring, Buffer::Iterator bIterator); + /** + * Deserialize a bitstring + * \param bitstring buffer to store the result + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeBitstring (std::bitset<2> *bitstring, Buffer::Iterator bIterator); + /** + * Deserialize a bitstring + * \param bitstring buffer to store the result + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeBitstring (std::bitset<8> *bitstring, Buffer::Iterator bIterator); + /** + * Deserialize a bitstring + * \param bitstring buffer to store the result + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeBitstring (std::bitset<10> *bitstring, Buffer::Iterator bIterator); + /** + * Deserialize a bitstring + * \param bitstring buffer to store the result + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeBitstring (std::bitset<16> *bitstring, Buffer::Iterator bIterator); + /** + * Deserialize a bitstring + * \param bitstring buffer to store the result + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeBitstring (std::bitset<27> *bitstring, Buffer::Iterator bIterator); + /** + * Deserialize a bitstring + * \param bitstring buffer to store the result + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeBitstring (std::bitset<28> *bitstring, Buffer::Iterator bIterator); + /** + * Deserialize a bitstring + * \param bitstring buffer to store the result + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeBitstring (std::bitset<32> *bitstring, Buffer::Iterator bIterator); + /** + * Deserialize nothing (null op) + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeNull (Buffer::Iterator bIterator); + /** + * Deserialize a Sequence + * \param numElems buffer to store the result + * \param nMax max value to serialize + * \param nMin min value to serialize + * \param bIterator buffer iterator + * \returns the modified buffer iterator + */ Buffer::Iterator DeserializeSequenceOf (int *numElems, int nMax, int nMin, Buffer::Iterator bIterator); };