|
WSF
|
A base class for messages sent among simulation communication objects, processors and sensors. More...
#include <WsfMessage.hpp>


Public Member Functions | |
| WsfMessage (WsfStringId aType) | |
| Constructor for XIO (de)serialization. | |
| WsfMessage (WsfStringId aType, const wsf::comm::Address &aSrcAddr, WsfSimulation &aSimulation) | |
| WsfMessage (WsfPlatform *aPlatformPtr) | |
| WsfMessage (WsfStringId aType, WsfPlatform *aPlatformPtr) | |
| WsfMessage (WsfStringId aType, WsfStringId aSubType, WsfPlatform *aPlatformPtr) | |
| WsfMessage (WsfSimulation &aSimulation) | |
| WsfMessage & | operator= (const WsfMessage &aRhs)=default |
| ~WsfMessage () override | |
| virtual WsfMessage * | Clone () const |
| const char * | GetScriptClassName () const override |
| WsfSimulation * | GetSimulation () const |
| Get the simulation that owns the message. | |
| void | SetSimulation (WsfSimulation *aSimulationPtr) |
| WsfStringId | GetOriginator () const |
| void | SetOriginator (WsfPlatform *aPlatformPtr) |
| Set the originator of this message. | |
| size_t | GetOriginatorIndex () const |
| int | GetSizeBits () const |
| void | SetSizeBits (int aSizeBits) |
| int | GetSizeBytes () const |
| void | SetSizeBytes (int aSizeBytes) |
| unsigned int | GetSerialNumber () const |
| void | SetSerialNumber (unsigned int aSerialNumber) |
| double | GetDataTag () const |
| void | SetDataTag (double aDataTag) |
| WsfStringId | GetStaticType () const |
| WsfStringId | GetType () const |
| void | SetType (WsfStringId aType) |
| WsfStringId | GetSubType () const |
| void | SetSubType (WsfStringId aSubType) |
| int | GetPriority () const |
| void | SetPriority (int aPriority) |
| const wsf::comm::Address & | GetSrcAddr () const |
| void | SetSrcAddr (const wsf::comm::Address &aSrcAddr) |
| const wsf::comm::Address & | GetDstAddr () const |
| void | SetDstAddr (const wsf::comm::Address &aDstAddr) |
| const wsf::comm::Address & | GetNextHopAddr () const |
| void | SetNextHopAddr (const wsf::comm::Address &aNextHopAddr) |
| virtual bool | CanBeReplacedBy (const WsfMessage &aMessage) const |
| Public Member Functions inherited from WsfAuxDataEnabled | |
| WsfAuxDataEnabled ()=default | |
| WsfAuxDataEnabled (const WsfAuxDataEnabled &aSrc)=default | |
| WsfAuxDataEnabled & | operator= (const WsfAuxDataEnabled &aRhs) |
| WsfAuxDataEnabled (WsfAuxDataEnabled &&)=default | |
| WsfAuxDataEnabled & | operator= (WsfAuxDataEnabled &&)=default |
| virtual | ~WsfAuxDataEnabled () noexcept |
| void | SetAuxData (const WsfAttributeContainer &aAuxData) |
| void | DeleteAuxData () |
| Delete the aux data container from the object. | |
| void | MergeAuxData (const WsfAuxDataEnabled &aSrc) |
| Merge the object's aux data with aux data from an existing object. | |
| void | UpdateAuxData (const WsfAuxDataEnabled &aSrc) |
| Update the object's aux data with aux data from an existing object. | |
| bool | HasAuxData () const |
| Returns true if this object has aux data. | |
| bool | ProcessInput (UtInput &aInput) |
| template<typename T> | |
| void | Serialize (T &aBuff) |
| (De)serialization for XIO | |
| WsfAttributeContainer & | GetAuxData () |
| const WsfAttributeContainer & | GetAuxData () const noexcept |
| const WsfAttributeContainer & | GetAuxDataConst () const noexcept |
Static Public Member Functions | |
| static WsfStringId | GetTypeId () |
Static Public Attributes | |
| static constexpr size_t | cBITS_IN_BYTE = 8U |
| Static Public Attributes inherited from WsfAuxDataEnabled | |
| static UtCallbackListN< void(const WsfAuxDataEnabled *)> | AuxDataAccessed |
| static UtCallbackListN< void(const WsfAuxDataEnabled *)> | AuxDataDestroyed |
Optional Group Specification Accessor/Mutator | |
Provides the ability to set the group identification for a message. Used by the communications framework for identifying where a message is supposed to go without using addressing for legacy support. This is only for internal usage, and must be placed on the WsfMessage object as legacy usage of comms still utilizes the WsfMessage object instead of WsfCommMessage.
| |
| WsfStringId | GetGroup () const |
| void | SetGroup (WsfStringId aGroup) const |
| void | PrintDataTagPrecise (std::ostream &aStream, std::streamsize aPrecision) const |
| template<typename T> | |
| void | Serialize (T &aBuff) |
| (De)serializer for XIO | |
| WSF_EXPORT std::ostream & | operator<< (std::ostream &aOut, const WsfMessage &aMessage) |
| WsfMessage (const WsfMessage &aSrc)=default | |
Component Info Interface | |
These optional methods define an interface that can be used by subclasses to provide additional information on the component that either generated the message or the data contained in the message. They can be used to filter messages based on the information returned. The methods in the base class will return a null (0) WsfStringId. | |
| virtual WsfStringId | GetComponentNameId () const |
| virtual WsfStringId | GetComponentTypeId () const |
| virtual WsfStringId | GetComponentModeId () const |
A base class for messages sent among simulation communication objects, processors and sensors.
| WsfMessage::WsfMessage | ( | WsfStringId | aType | ) |
Constructor for XIO (de)serialization.
Referenced by WsfAssetMessage::CanBeReplacedBy(), CanBeReplacedBy(), WsfSA_EntityMessage::CanBeReplacedBy(), WsfTrackMessage::CanBeReplacedBy(), wsf::UCI_MessageType< Type, Factory, Reader, Writer, Listener, TypeName >::Clone(), WsfAssetMessage::Clone(), WsfAssociationMessage::Clone(), WsfControlMessage::Clone(), WsfImageMessage::Clone(), WsfL16::JMessage::Clone(), Clone(), WsfSA_EntityMessage::Clone(), WsfStatusMessage::Clone(), WsfTaskAssignMessage::Clone(), WsfTaskCancelMessage::Clone(), WsfTaskControlMessage::Clone(), WsfTaskStatusMessage::Clone(), WsfTrackDropMessage::Clone(), WsfTrackMessage::Clone(), WsfTrackNotifyMessage::Clone(), WsfVideoMessage::Clone(), WsfL16::JMessage::JMessage(), WsfL16::JMessage::JMessage(), operator<<, WsfL16::JMessage::operator=(), operator=(), WsfTaskAssignMessage::operator=(), wsf::UCI_MessageBaseType::UCI_MessageBaseType(), WsfAssetMessage::WsfAssetMessage(), WsfAssetMessage::WsfAssetMessage(), WsfAssetMessage::WsfAssetMessage(), WsfAssociationMessage::WsfAssociationMessage(), WsfAssociationMessage::WsfAssociationMessage(), WsfAssociationMessage::WsfAssociationMessage(), WsfBMAssignmentMessage::WsfBMAssignmentMessage(), WsfBMAssignmentMessage::WsfBMAssignmentMessage(), WsfBMAssignmentMessage::WsfBMAssignmentMessage(), WsfBMAssignmentMessage::WsfBMAssignmentMessage(), WsfBMAssignmentStatusMessage::WsfBMAssignmentStatusMessage(), WsfBMAssignmentStatusMessage::WsfBMAssignmentStatusMessage(), WsfBMAssignmentStatusMessage::WsfBMAssignmentStatusMessage(), WsfBMAssignmentStatusMessage::WsfBMAssignmentStatusMessage(), WsfBMAssignmentTrackMessage::WsfBMAssignmentTrackMessage(), WsfBMAssignmentTrackMessage::WsfBMAssignmentTrackMessage(), WsfBMAssignmentTrackMessage::WsfBMAssignmentTrackMessage(), WsfBMAssignmentTrackMessage::WsfBMAssignmentTrackMessage(), WsfBMCueMessage::WsfBMCueMessage(), WsfBMCueMessage::WsfBMCueMessage(), WsfBMCueMessage::WsfBMCueMessage(), WsfBMCueMessage::WsfBMCueMessage(), WsfBMStatusMessage::WsfBMStatusMessage(), WsfBMStatusMessage::WsfBMStatusMessage(), WsfBMStatusMessage::WsfBMStatusMessage(), WsfBMStatusMessage::WsfBMStatusMessage(), WsfBMTrackMessage::WsfBMTrackMessage(), WsfBMTrackMessage::WsfBMTrackMessage(), WsfBMTrackMessage::WsfBMTrackMessage(), WsfBMTrackMessage::WsfBMTrackMessage(), WsfControlMessage::WsfControlMessage(), WsfControlMessage::WsfControlMessage(), WsfControlMessage::WsfControlMessage(), WsfImageMessage::WsfImageMessage(), WsfImageMessage::WsfImageMessage(), WsfMessage(), WsfMessage(), WsfMessage(), WsfSA_EntityMessage::WsfSA_EntityMessage(), WsfSA_EntityMessage::WsfSA_EntityMessage(), WsfSA_EntityMessage::WsfSA_EntityMessage(), WsfSA_EntityMessage::WsfSA_EntityMessage(), WsfStatusMessage::WsfStatusMessage(), WsfStatusMessage::WsfStatusMessage(), WsfStatusMessage::WsfStatusMessage(), WsfStatusMessage::WsfStatusMessage(), WsfTaskAssignMessage::WsfTaskAssignMessage(), WsfTaskAssignMessage::WsfTaskAssignMessage(), WsfTaskAssignMessage::WsfTaskAssignMessage(), WsfTaskCancelMessage::WsfTaskCancelMessage(), WsfTaskCancelMessage::WsfTaskCancelMessage(), WsfTaskCancelMessage::WsfTaskCancelMessage(), WsfTaskControlMessage::WsfTaskControlMessage(), WsfTaskControlMessage::WsfTaskControlMessage(), WsfTaskStatusMessage::WsfTaskStatusMessage(), WsfTaskStatusMessage::WsfTaskStatusMessage(), WsfTaskStatusMessage::WsfTaskStatusMessage(), WsfTrackDropMessage::WsfTrackDropMessage(), WsfTrackDropMessage::WsfTrackDropMessage(), WsfTrackMessage::WsfTrackMessage(), WsfTrackMessage::WsfTrackMessage(), WsfTrackMessage::WsfTrackMessage(), WsfTrackMessage::WsfTrackMessage(), WsfTrackNotifyMessage::WsfTrackNotifyMessage(), WsfVideoMessage::WsfVideoMessage(), and WsfVideoMessage::~WsfVideoMessage().
| WsfMessage::WsfMessage | ( | WsfStringId | aType, |
| const wsf::comm::Address & | aSrcAddr, | ||
| WsfSimulation & | aSimulation ) |
Constructor
| aType | The message type as a string ID. |
| aSrcAddr | The address of the interface that originated the message. |
| aSimulation | The simulation |
References WsfSimulation::GetCommNetworkManager(), WsfSimulation::GetPlatformByName(), and platformPtr.
| WsfMessage::WsfMessage | ( | WsfPlatform * | aPlatformPtr | ) |
| WsfMessage::WsfMessage | ( | WsfStringId | aType, |
| WsfPlatform * | aPlatformPtr ) |
Constructor.
| aType | The message type as a string ID. |
| aPlatformPtr | The originator of the message. |
References WsfMessage().
| WsfMessage::WsfMessage | ( | WsfStringId | aType, |
| WsfStringId | aSubType, | ||
| WsfPlatform * | aPlatformPtr ) |
Constructor.
| aType | The message type as a string ID. |
| aSubType | The message sub-type as a string ID. |
| aPlatformPtr | The originator of the message. |
References GetSimulation().
| WsfMessage::WsfMessage | ( | WsfSimulation & | aSimulation | ) |
Constructor. //!
| aSimulation | The simulation |
|
override |
|
protecteddefault |
References WsfMessage().
|
virtual |
Can this message be replaced by the new message.
This routine can be used by communications devices to determine if a message that is to be sent should replace a message is in the queue for transmission. For example, a new track update message should replace any queued track update message for the same track ID.
| aMessage | The new message. |
Reimplemented in WsfAssetMessage, WsfSA_EntityMessage, and WsfTrackMessage.
References WsfMessage().
|
virtual |
Clone this object by creating an identical copy and returning a pointer to it.
Reimplemented in wsf::UCI_MessageType< Type, Factory, Reader, Writer, Listener, TypeName >, WsfAssetMessage, WsfAssociationMessage, WsfBMAssignmentMessage, WsfBMAssignmentStatusMessage, WsfBMAssignmentTrackMessage, WsfBMCueMessage, WsfBMStatusMessage, WsfBMTrackMessage, WsfControlMessage, WsfImageMessage, WsfL16::JMessage, WsfSA_EntityMessage, WsfStatusMessage, WsfTaskAssignMessage, WsfTaskCancelMessage, WsfTaskControlMessage, WsfTaskStatusMessage, WsfTrackDropMessage, WsfTrackMessage, WsfTrackNotifyMessage, and WsfVideoMessage.
References WsfMessage().
Referenced by WsfXIO_AutoDisMapping::HandleDisMessage(), WsfDefaultDisseminationImpl::on_message(), operator=(), WsfTaskManager::PendingMessage::operator=(), WsfPlatformPart::SendMessage(), WsfPlatformPart::SendMessageTo(), and WsfPlatformPart::SendMessageToProcessor().
|
inlinevirtual |
Reimplemented in WsfImageMessage, WsfTrackMessage, and WsfVideoMessage.
Referenced by WsfMessageProcessor::Selector::Matches().
|
inlinevirtual |
Reimplemented in WsfImageMessage, WsfTrackMessage, and WsfVideoMessage.
Referenced by WsfMessageProcessor::Selector::Matches().
|
inlinevirtual |
Reimplemented in WsfImageMessage, WsfTrackMessage, and WsfVideoMessage.
Referenced by WsfMessageProcessor::Selector::Matches().
|
inline |
Get the data tag of the underlying data. This is an optional value that may be used to identify the contents of the message. When an object (e.g.: a track or an image) is sent in a message, the data tag from the object is copied to the message. This allows the data to be tracked through the network, even though it may happen through several messages, with interruptions.
Referenced by PrintDataTagPrecise().
|
inline |
Get the address of the final destination interface for which this message in destined.
Referenced by WsfXIO_AutoDisMapping::ForwardMessage(), WsfTaskManager::GetMessageSender(), operator<<, and WsfRIPRProcessor::ReceiveMessage().
|
inline |
|
inline |
Get the address of the next-hop interface for which this message in destined.
Referenced by WsfXIO_AutoDisMapping::ForwardMessage().
|
inline |
Get the platform name identifier of the message originator.
Referenced by WsfTaskManager::GetMessageSender(), WsfDirectionFinderProcessor::ProcessMessage(), and WsfTrackProcessor::ProcessMessage().
|
inline |
Get the platform index of the message originator.
|
inline |
Get the priority of the message.
Referenced by WsfMessageTable::SetMessageProp().
|
override |
Referenced by operator=().
|
inline |
Get the serial number of this message.
Referenced by WsfTaskManager::MessageAcknowledged(), operator<<, WsfMessageProcessor::ProcessMessage(), WsfQuantumTaskerProcessor::ProcessTaskAssignMessage(), WsfTaskManager::ProcessTaskAssignMessage(), WsfTaskManager::ProcessTaskCancelMessage(), WsfQuantumTaskerProcessor::ProcessTaskStatusMessage(), WsfTaskManager::ProcessTaskStatusMessage(), WsfMessageProcessor::ReceiveMessage(), and WsfTaskManager::SendTaskMessage().
|
inline |
Get the simulation that owns the message.
Referenced by WsfTaskCancelMessage::GetAssignee(), WsfTaskControlMessage::GetAssignee(), WsfTaskStatusMessage::GetAssignee(), WsfTaskCancelMessage::GetAssigner(), WsfTaskControlMessage::GetAssigner(), WsfTaskStatusMessage::GetAssigner(), WsfBMTrackMessage::GetIFF(), WsfStatusMessage::GetPlatform(), WsfBMTrackMessage::GetReportingSensorType(), WsfAssociationMessage::GetSensorPlatform(), WsfBMAssignmentStatusMessage::GetSystemicCantcoScope(), WsfBMStatusMessage::GetSystemStatus(), WsfBMTrackMessage::GetTrackingStatus(), WsfBMTrackMessage::SetIFF(), WsfBMTrackMessage::SetReportingSensorType(), WsfBMStatusMessage::SetSystemStatus(), WsfBMTrackMessage::SetTrackingStatus(), wsf::UCI_MessageType< Type, Factory, Reader, Writer, Listener, TypeName >::UCI_MessageType(), wsf::UCI_MessageType< Type, Factory, Reader, Writer, Listener, TypeName >::UCI_MessageType(), wsf::UCI_MessageType< Type, Factory, Reader, Writer, Listener, TypeName >::UCI_MessageType(), and WsfMessage().
|
inline |
Get the length of the message in bits .
Referenced by operator<<, and WsfMessageTable::SetMessageProp().
|
inline |
Get the length of the message in bytes .
References cBITS_IN_BYTE.
|
inline |
Get the address of the source interface that sent this message.
Referenced by WsfXIO_AutoDisMapping::ForwardMessage(), and WsfMessageProcessor::Selector::Matches().
|
inline |
Get the 'static type' of the message. Initially the static type is the same as the message type, but the static type may not be changed.
|
inline |
Get the 'sub-type' of the message.
Referenced by WsfControlMessage::GetFunction(), WsfStatusMessage::GetStatus(), WsfStatusMessage::GetStatusId(), WsfMessageProcessor::Selector::Matches(), WsfDefaultAssetManagerImpl::on_message(), WsfMessageProcessor::ProcessMessage(), WsfRIPRProcessor::ProcessMessage(), WsfScriptMessageHandler::ProcessMessage(), WsfMessageProcessor::ReceiveMessage(), WsfInternalLinks::SendMessage(), WsfInternalLinks::SendMessage(), and WsfMessageTable::SetMessageProp().
|
inline |
Get the 'type' of the message.
Referenced by WsfAssetMessage::CanBeReplacedBy(), WsfSA_EntityMessage::CanBeReplacedBy(), WsfTrackMessage::CanBeReplacedBy(), WsfTaskManager::CheckMessageAcknowledged(), WsfTaskManager::DropFromPurgedTaskList(), WsfXIO_AutoDisMapping::HandleDisMessage(), WsfXIO_MessageService::HandleMessage(), WsfMessageProcessor::Selector::Matches(), WsfDefaultAssetManagerImpl::on_message(), wsf::event::utils::PrintMessageData(), wsf::event::utilsCSV::PrintMessageData(), wsf::UCI_Computer::ProcessMessage(), wsf::UCI_IRST_Component::ProcessMessage(), wsf::UCI_PartComponent::ProcessMessage(), WsfCompositeSensor::ProcessMessage(), WsfCuedLaserWeapon::ProcessMessage(), WsfDirectionFinderProcessor::ProcessMessage(), WsfImageProcessor::ProcessMessage(), WsfMessageProcessor::ProcessMessage(), WsfPerceptionProcessor::ProcessMessage(), WsfPlatformPart::ProcessMessage(), WsfRF_Jammer::ProcessMessage(), WsfRIPRProcessor::ProcessMessage(), WsfSA_Perceive::ProcessMessage(), WsfScriptMessageHandler::ProcessMessage(), WsfTaskManager::ProcessMessage(), WsfTrackProcessor::ProcessMessage(), WsfTrackStateController::ProcessMessage(), WsfUplinkProcessor::ProcessMessage(), WsfWeaponTrackProcessor::ProcessMessage(), wsf::UCI_AMTI_Component::ReceiveMessage(), wsf::UCI_ESM_Component::ReceiveMessage(), wsf::UCI_WeaponComponent::ReceiveMessage(), WsfFusionCenter::ReceiveMessage(), WsfImageProcessor::ReceiveMessage(), WsfMessageProcessor::ReceiveMessage(), WsfRIPRProcessor::ReceiveMessage(), WsfTaskManager::ReceiveMessage(), WsfInternalLinks::SendMessage(), WsfInternalLinks::SendMessage(), and WsfMessageTable::SetMessageProp().
|
static |
Get the message type ID for messages of this class.
Referenced by WsfScriptMessageClass::Create(), and operator=().
|
default |
References Clone(), GetScriptClassName(), GetTypeId(), and WsfMessage().
Referenced by WsfControlMessage::operator=().
| void WsfMessage::PrintDataTagPrecise | ( | std::ostream & | aStream, |
| std::streamsize | aPrecision ) const |
Print function to output a data tag at the provided decimal precision
| aStream | The output stream to which to print the data tag |
| aPrecision | The desired print precision |
References GetDataTag().
|
inline |
(De)serializer for XIO
References WsfAuxDataEnabled::Serialize().
Referenced by WsfAssetMessage::Serialize(), WsfAssociationMessage::Serialize(), WsfControlMessage::Serialize(), WsfSA_EntityMessage::Serialize(), WsfStatusMessage::Serialize(), WsfTaskAssignMessage::Serialize(), WsfTaskCancelMessage::Serialize(), WsfTaskControlMessage::Serialize(), WsfTaskStatusMessage::Serialize(), WsfTrackDropMessage::Serialize(), and WsfTrackMessage::Serialize().
|
inline |
Set the 'data tag' to be associated with the data in the message.
| aDataTag | The data tag to be attached to the message. |
Referenced by WsfTrackMessage::SetTrack(), WsfImageMessage::WsfImageMessage(), and WsfVideoMessage::WsfVideoMessage().
|
inline |
Set the address of the final destination interface for which this message is destined.
| aDstAddr | The address of the destination interface. |
Referenced by WsfXIO_AutoDisMapping::ForwardMessage().
|
inline |
Referenced by WsfL16::ComputerPart::SendJMessage(), WsfBMDisseminateC2::SendMessage(), and WsfTaskManager::SendTaskMessage().
| void WsfMessage::SetNextHopAddr | ( | const wsf::comm::Address & | aNextHopAddr | ) |
Set the address of the next-hop interface for which this message is destined.
| aNextHopAddr | The address of the next-hop interface. |
Referenced by WsfXIO_AutoDisMapping::ForwardMessage().
| void WsfMessage::SetOriginator | ( | WsfPlatform * | aPlatformPtr | ) |
Set the originator of this message.
References WsfPlatform::GetIndex(), and WsfObject::GetNameId().
Referenced by WsfXIO_AutoDisMapping::HandleDisMessage().
|
inline |
Sets the priority of the message.
| aPriority | The message's priority (0 being the lowest priority). |
Referenced by WsfSensorProcessor::SendTrackUpdateMessage(), WsfSensor::SetMessageParameters(), and WsfMessageTable::SetMessageProp().
|
inline |
Set the serial number of this message. The simulation object should be used to get the next available serial number to ensure uniqueness.
| aSerialNumber | The serial number for this message. |
Referenced by WsfScriptAssetMessageClass::Create(), WsfScriptMessageClass::Create(), and WsfScriptSA_EntityMessage::Create().
|
inline |
Set the simulation that owns the message.
Referenced by WsfScriptAssetMessageClass::Create(), WsfScriptMessageClass::Create(), WsfScriptSA_EntityMessage::Create(), WsfXIO_AutoDisMapping::HandleDisMessage(), and WsfBMTrackMessage::WsfBMTrackMessage().
|
inline |
Set the message size in bits.
| aSizeBits | The message size in bits. |
Referenced by WsfL16::JMessage::JMessage(), WsfSensorProcessor::SendTrackUpdateMessage(), WsfSensor::SetMessageParameters(), WsfMessageTable::SetMessageProp(), UT_DEFINE_SCRIPT_METHOD(), WsfImageMessage::WsfImageMessage(), and WsfVideoMessage::WsfVideoMessage().
|
inline |
Set the message size in bytes.
| aSizeBytes | The message size in bytes. |
References cBITS_IN_BYTE.
| void WsfMessage::SetSrcAddr | ( | const wsf::comm::Address & | aSrcAddr | ) |
Set the address of the source interface that sent this message.
| aSrcAddr | The address of the source interface. |
References platformPtr.
Referenced by WsfXIO_AutoDisMapping::ForwardMessage().
|
inline |
Set the 'sub-type' of the message.
| aSubType | The message sub-type as a string ID. |
Referenced by WsfControlMessage::SetFunction(), WsfStatusMessage::SetStatus(), and WsfStatusMessage::SetStatusId().
|
inline |
Set the 'type' of the message.
| aType | The message type as a string ID. |
|
friend |
References GetDstAddr(), GetSerialNumber(), GetSizeBits(), and WsfMessage().
|
staticconstexpr |
Referenced by GetSizeBytes(), and SetSizeBytes().