A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::BulkSendApplication Class Reference

#include <bulk-send-application.h>

+ Inheritance diagram for ns3::BulkSendApplication:
+ Collaboration diagram for ns3::BulkSendApplication:

Public Member Functions

 BulkSendApplication ()
virtual ~BulkSendApplication ()
Ptr< SocketGetSocket (void) const
void SetMaxBytes (uint32_t maxBytes)
- Public Member Functions inherited from ns3::Application
 Application ()
virtual ~Application ()
Ptr< NodeGetNode () const
void SetNode (Ptr< Node > node)
void SetStartTime (Time start)
 Specify application start time.
void SetStopTime (Time stop)
 Specify application stop time.
- Public Member Functions inherited from ns3::Object
 Object ()
virtual ~Object ()
void AggregateObject (Ptr< Object > other)
void Dispose (void)
AggregateIterator GetAggregateIterator (void) const
virtual TypeId GetInstanceTypeId (void) const
template<typename T >
Ptr< T > GetObject (void) const
template<typename T >
Ptr< T > GetObject (TypeId tid) const
void Start (void)
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 SimpleRefCount (const SimpleRefCount &o)
uint32_t GetReferenceCount (void) const
SimpleRefCountoperator= (const SimpleRefCount &o)
void Ref (void) const
void Unref (void) const
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
void GetAttribute (std::string name, AttributeValue &value) const
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
void SetAttribute (std::string name, const AttributeValue &value)
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)

Static Public Member Functions

static TypeId GetTypeId (void)
 This method returns the TypeId associated to ns3::BulkSendApplication.

Protected Member Functions

virtual void DoDispose (void)
- Protected Member Functions inherited from ns3::Application
virtual void DoStart (void)
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
virtual void NotifyNewAggregate (void)

Private Member Functions

void ConnectionFailed (Ptr< Socket > socket)
void ConnectionSucceeded (Ptr< Socket > socket)
void DataSend (Ptr< Socket >, uint32_t)
void Ignore (Ptr< Socket > socket)
void SendData ()
virtual void StartApplication (void)
virtual void StopApplication (void)

Private Attributes

bool m_connected
uint32_t m_maxBytes
Address m_peer
uint32_t m_sendSize
Ptr< Socketm_socket
TypeId m_tid
uint32_t m_totBytes
TracedCallback< Ptr< const
Packet > > 
m_txTrace

Additional Inherited Members

- Protected Attributes inherited from ns3::Application
Ptr< Nodem_node
EventId m_startEvent
Time m_startTime
EventId m_stopEvent
Time m_stopTime

Detailed Description

Definition at line 50 of file bulk-send-application.h.

Constructor & Destructor Documentation

ns3::BulkSendApplication::BulkSendApplication ( )

Definition at line 73 of file bulk-send-application.cc.

References NS_LOG_FUNCTION.

ns3::BulkSendApplication::~BulkSendApplication ( )
virtual

Definition at line 81 of file bulk-send-application.cc.

References NS_LOG_FUNCTION.

Member Function Documentation

void ns3::BulkSendApplication::ConnectionFailed ( Ptr< Socket socket)
private

Definition at line 206 of file bulk-send-application.cc.

References NS_LOG_FUNCTION, and NS_LOG_LOGIC.

Referenced by StartApplication().

+ Here is the caller graph for this function:

void ns3::BulkSendApplication::ConnectionSucceeded ( Ptr< Socket socket)
private

Definition at line 198 of file bulk-send-application.cc.

References m_connected, NS_LOG_FUNCTION, NS_LOG_LOGIC, and SendData().

Referenced by StartApplication().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::BulkSendApplication::DataSend ( Ptr< Socket ,
uint32_t   
)
private

Definition at line 212 of file bulk-send-application.cc.

References m_connected, NS_LOG_FUNCTION, ns3::Simulator::ScheduleNow(), and SendData().

Referenced by StartApplication().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::BulkSendApplication::DoDispose ( void  )
protectedvirtual

This method is called by Object::Dispose or by the object's destructor, whichever comes first.

Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.

It is safe to call GetObject from within this method.

Reimplemented from ns3::Application.

Definition at line 101 of file bulk-send-application.cc.

References m_socket, and NS_LOG_FUNCTION.

Ptr< Socket > ns3::BulkSendApplication::GetSocket ( void  ) const
Returns
pointer to associated socket

Definition at line 94 of file bulk-send-application.cc.

References m_socket, and NS_LOG_FUNCTION.

TypeId ns3::BulkSendApplication::GetTypeId ( void  )
static

This method returns the TypeId associated to ns3::BulkSendApplication.

This object is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/ApplicationList/[i]/$ns3::BulkSendApplication

Attributes defined for this type:

  • SendSize: The amount of data to send each time.
  • Remote: The address of the destination
    • Set with class: AddressValue
    • Underlying type: Address
    • Initial value: 00-00-00
    • Flags: construct write read
  • MaxBytes: The total number of bytes to send. Once these bytes are sent, no data is sent again. The value zero means that there is no limit.
  • Protocol: The type of protocol to use.

Attributes defined in parent class ns3::Application:

  • StartTime: Time at which the application will start
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +0.0ns
    • Flags: construct write read
  • StopTime: Time at which the application will stop
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +0.0ns
    • Flags: construct write read

TraceSources defined for this type:

  • Tx: A new packet is created and is sent

Reimplemented from ns3::Application.

Definition at line 41 of file bulk-send-application.cc.

References ns3::TcpSocketFactory::GetTypeId(), m_maxBytes, m_peer, m_sendSize, m_tid, m_txTrace, ns3::MakeTraceSourceAccessor(), and ns3::TypeId::SetParent().

+ Here is the call graph for this function:

void ns3::BulkSendApplication::Ignore ( Ptr< Socket socket)
private
void ns3::BulkSendApplication::SendData ( void  )
private

Definition at line 162 of file bulk-send-application.cc.

References ns3::Socket::Close(), m_connected, m_maxBytes, m_sendSize, m_socket, m_totBytes, m_txTrace, ns3::Simulator::Now(), NS_LOG_FUNCTION, NS_LOG_LOGIC, and ns3::Socket::Send().

Referenced by ConnectionSucceeded(), DataSend(), and StartApplication().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::BulkSendApplication::SetMaxBytes ( uint32_t  maxBytes)
Parameters
maxBytesthe upper bound of bytes to send

Set the upper bound for the total number of bytes to send. Once this bound is reached, no more application bytes are sent. If the application is stopped during the simulation and restarted, the total number of bytes sent is not reset; however, the maxBytes bound is still effective and the application will continue sending up to maxBytes. The value zero for maxBytes means that there is no upper bound; i.e. data is sent until the application or simulation is stopped.

Definition at line 87 of file bulk-send-application.cc.

References m_maxBytes, and NS_LOG_FUNCTION.

void ns3::BulkSendApplication::StopApplication ( void  )
privatevirtual

Definition at line 144 of file bulk-send-application.cc.

References ns3::Socket::Close(), m_connected, m_socket, NS_LOG_FUNCTION, and NS_LOG_WARN.

+ Here is the call graph for this function:

Member Data Documentation

bool ns3::BulkSendApplication::m_connected
private
uint32_t ns3::BulkSendApplication::m_maxBytes
private

Definition at line 91 of file bulk-send-application.h.

Referenced by GetTypeId(), SendData(), and SetMaxBytes().

Address ns3::BulkSendApplication::m_peer
private

Definition at line 88 of file bulk-send-application.h.

Referenced by GetTypeId(), and StartApplication().

uint32_t ns3::BulkSendApplication::m_sendSize
private

Definition at line 90 of file bulk-send-application.h.

Referenced by GetTypeId(), and SendData().

Ptr<Socket> ns3::BulkSendApplication::m_socket
private
TypeId ns3::BulkSendApplication::m_tid
private

Definition at line 93 of file bulk-send-application.h.

Referenced by GetTypeId(), and StartApplication().

uint32_t ns3::BulkSendApplication::m_totBytes
private

Definition at line 92 of file bulk-send-application.h.

Referenced by SendData().

TracedCallback<Ptr<const Packet> > ns3::BulkSendApplication::m_txTrace
private

Definition at line 94 of file bulk-send-application.h.

Referenced by GetTypeId(), and SendData().


The documentation for this class was generated from the following files: