INET Framework for OMNeT++/OMNEST
inet::TagBase Class Reference

#include <TagBase.h>

Inheritance diagram for inet::TagBase:
inet::IPrintableObject inet::CreationTimeTag inet::CreditGateTag inet::DirectionTag inet::DscpTagBase inet::EcnTagBase inet::EligibilityTimeTag inet::FlowTag inet::FragmentationReq inet::FragmentTag inet::GptpIngressTimeInd inet::HopLimitTagBase inet::IdentityTag inet::ieee80211::LlcProtocolTag inet::Ieee80211SubtypeTagBase inet::Ieee802SapTagBase inet::InterfaceProtocolData inet::InterfaceTagBase inet::Ipv4OptionsTagBase inet::Ipv6ExtHeaderTagBase inet::L3AddressTagBase inet::L4PortTagBase inet::LabelsTag inet::MacAddressTagBase inet::MulticastReq inet::NextHopAddressReq inet::PacketEventTag inet::PcpTagBase inet::physicallayer::Ieee80211ChannelTagBase inet::physicallayer::Ieee80211ModeTagBase inet::ProgressTag inet::ProtocolListTagBase inet::ProtocolTagBase inet::RateTag inet::ResidenceTimeTag inet::SctpCommandReq inet::SequenceNumberTagBase inet::SignalTagBase inet::SocketTagBase inet::StreamTagBase inet::TimeTagBase inet::TosTagBase inet::UserPriorityTagBase inet::VlanTagBase

Public Member Functions

virtual const Ptr< TagBasedupShared () const
 
virtual const Ptr< TagBasechangeRegion (b offsetDelta, b lengthDelta) const
 
virtual void parsimPack (cCommBuffer *buffer) const override
 
virtual void parsimUnpack (cCommBuffer *buffer) override
 
virtual std::ostream & printToStream (std::ostream &stream, int level, int evFlags) const override
 Prints this object to the provided output stream. More...
 
virtual std::ostream & printFieldsToStream (std::ostream &stream, int level, int evFlags) const
 
virtual std::string str () const override
 
- Public Member Functions inherited from inet::IPrintableObject
virtual ~IPrintableObject ()
 
virtual std::string printToString () const
 
virtual std::string printToString (int level, int evFlags=0) const
 
virtual std::string getInfoStringRepresentation (int evFlags=0) const
 
virtual std::string getDetailStringRepresentation (int evFlags=0) const
 
virtual std::string getDebugStringRepresentation (int evFlags=0) const
 
virtual std::string getTraceStringRepresentation (int evFlags=0) const
 
virtual std::string getCompleteStringRepresentation (int evFlags=0) const
 

Additional Inherited Members

- Public Types inherited from inet::IPrintableObject
enum  PrintLevel {
  PRINT_LEVEL_TRACE, PRINT_LEVEL_DEBUG, PRINT_LEVEL_DETAIL, PRINT_LEVEL_INFO,
  PRINT_LEVEL_COMPLETE = INT_MIN
}
 
enum  PrintFlag { PRINT_FLAG_FORMATTED = (1 << 0), PRINT_FLAG_MULTILINE = (1 << 1) }
 

Member Function Documentation

◆ changeRegion()

virtual const Ptr<TagBase> inet::TagBase::changeRegion ( b  offsetDelta,
b  lengthDelta 
) const
inlinevirtual

Reimplemented in inet::IdentityTag.

24 { return const_cast<TagBase *>(this)->shared_from_this(); }

◆ dupShared()

virtual const Ptr<TagBase> inet::TagBase::dupShared ( ) const
inlinevirtual
22 { return Ptr<TagBase>(static_cast<TagBase *>(dup())); }

◆ parsimPack()

virtual void inet::TagBase::parsimPack ( cCommBuffer *  buffer) const
inlineoverridevirtual
26 {}

◆ parsimUnpack()

virtual void inet::TagBase::parsimUnpack ( cCommBuffer *  buffer)
inlineoverridevirtual
27 {}

◆ printFieldsToStream()

std::ostream & inet::TagBase::printFieldsToStream ( std::ostream &  stream,
int  level,
int  evFlags 
) const
virtual
23 {
24  auto descriptor = getDescriptor();
25  // TODO make this more sophisticated, e.g. add properties to fields to control what is printed
26  if (level <= PRINT_LEVEL_DETAIL)
27  for (int i = 0; i < descriptor->getFieldCount(); i++)
28  if (!descriptor->getFieldIsArray(i) && strcmp("omnetpp::cObject", descriptor->getFieldDeclaredOn(i)))
29  stream << ", " << EV_BOLD << descriptor->getFieldName(i) << EV_NORMAL << " = " << descriptor->getFieldValueAsString(toAnyPtr(this), i, 0);
30  return stream;
31 }

Referenced by printToStream(), and str().

◆ printToStream()

std::ostream & inet::TagBase::printToStream ( std::ostream &  stream,
int  level,
int  evFlags 
) const
overridevirtual

Prints this object to the provided output stream.

Reimplemented from inet::IPrintableObject.

13 {
14  std::string className = getClassName();
15  auto index = className.rfind("::");
16  if (index != std::string::npos)
17  className = className.substr(index + 2);
18  stream << EV_FAINT << className << EV_NORMAL;
19  return printFieldsToStream(stream, level, evFlags);
20 }

◆ str()

std::string inet::TagBase::str ( ) const
overridevirtual

Reimplemented in inet::Ipv6InterfaceData, inet::Ipv4InterfaceData, inet::Ieee8021dInterfaceData, and inet::NextHopInterfaceData.

34 {
35  std::stringstream stream;
37  return stream.tellp() == 0 ? "" : stream.str().substr(2);
38 }

The documentation for this class was generated from the following files:
inet::IPrintableObject::PRINT_LEVEL_DETAIL
@ PRINT_LEVEL_DETAIL
Definition: IPrintableObject.h:24
EV_FAINT
#define EV_FAINT
Definition: INETDefs.h:104
inet::IPrintableObject::PRINT_LEVEL_COMPLETE
@ PRINT_LEVEL_COMPLETE
Definition: IPrintableObject.h:26
EV_NORMAL
#define EV_NORMAL
Definition: INETDefs.h:102
omnetpp::toAnyPtr
any_ptr toAnyPtr(const inet::ClockTime *p)
Definition: common/ClockTime.h:351
inet::evFlags
int evFlags
Definition: INETDefs.cc:12
EV_BOLD
#define EV_BOLD
Definition: INETDefs.h:103
inet::TagBase::printFieldsToStream
virtual std::ostream & printFieldsToStream(std::ostream &stream, int level, int evFlags) const
Definition: TagBase.cc:22