ACE_RMCast::NAK Class Reference

#include <Protocol.h>

Inheritance diagram for ACE_RMCast::NAK:

Inheritance graph
[legend]
Collaboration diagram for ACE_RMCast::NAK:

Collaboration graph
[legend]

List of all members.

Public Types

typedef ACE_Vector
< u64,
ACE_VECTOR_DEFAULT_SIZE > 
SerialNumbers
typedef
SerialNumbers::Iterator 
iterator

Public Member Functions

u32 addr (0)
u16 port (0)
u32 addr (address_.get_ip_address())
u16 port (address_.get_port_number())
u32 addr (0)
u16 port (0)

Public Attributes

 __pad0__: Profile (h) { u64 sn (0)
sstream ss
ss<< sn;size_t
sn_size(ss.total_length());ss.reset();ss
<< addr;ss<< port;size_t
addr_size(ss.total_length());is >
> addr;is >> port;for(unsigned
long i(0);i
< ((h.size()-addr_size)/sn_size);++i){is >
> sn;sns_.push_back(sn);}address_=Address(port,
addr);}:Profile(id),
address_(src){size(calculate_size());}NAK_ptr
clone(){return
NAK_ptr(clone_());}protected:virtual
Profile_ptr clone_(){Profile_ptr
p(new NAK(*this));return
p;}:Profile(nak),
address_(nak.address_),
sns_(nak.sns_){}public:void
add(u64 sn){sns_.push_back(sn);size(calculate_size());}public:Address
const &address()
const {return
address_;}iterator
begin(){return
iterator(sns_);}size_t
count() const
{return sns_.size();}public:static
u32 max_count(u32
max_size){u32 n(0);sstream
ss;Profile::Header
hdr(0, 0);ss<< hdr;u32
addr(0);u16 port(0);ss
<< addr;ss<< port;while(true){u64
sn(0);ss<< sn;if(ss.total_length()
<=max_size)++n;if(ss.total_length() >
=max_size) break;}return
n;}public:virtual
void serialize_body(ostream
&os) const {NAK
&this_=const_cast
< NAK & > 
this )
os<< addr;os<< port;for(iterator
i(this_.begin());!i.done();i.advance()){u64
*psn;i.next(psn);os
<< *psn;}}virtual
void serialize_body(sstream
&ss) const {NAK
&this_=const_cast
< NAK & > * 
this

Static Public Attributes

static u16 const id = 0x0005


Member Typedef Documentation

typedef ACE_Vector<u64, ACE_VECTOR_DEFAULT_SIZE> ACE_RMCast::NAK::SerialNumbers

typedef SerialNumbers::Iterator ACE_RMCast::NAK::iterator


Member Function Documentation

u32 ACE_RMCast::NAK::addr (  ) 

u16 ACE_RMCast::NAK::port (  ) 

u32 ACE_RMCast::NAK::addr ( address_.  get_ip_address()  ) 

u16 ACE_RMCast::NAK::port ( address_.  get_port_number()  ) 

u32 ACE_RMCast::NAK::addr (  ) 

u16 ACE_RMCast::NAK::port (  ) 


Member Data Documentation

u16 const ACE_RMCast::NAK::id = 0x0005 [static]

ACE_RMCast::NAK::__pad0__

sstream ACE_RMCast::NAK::ss

ss<< sn; size_t sn_size (ss.total_length ()); ss.reset (); ss << addr; ss << port; size_t addr_size (ss.total_length ()); is >> addr; is >> port; for (unsigned long i (0); i < ((h.size () - addr_size) / sn_size); ++i) { is >> sn; sns_.push_back (sn); } address_ = Address (port, addr); } : Profile (id), address_ (src) { size (calculate_size ()); } NAK_ptr clone () { return NAK_ptr (clone_ ()); } protected: virtual Profile_ptr clone_ () { Profile_ptr p (new NAK (*this)); return p; } : Profile (nak), address_ (nak.address_), sns_ (nak.sns_) { } public: void add (u64 sn) { sns_.push_back (sn); size (calculate_size ()); } public: Address const& address () const { return address_; } iterator begin () { return iterator (sns_); } size_t count () const { return sns_.size (); } public: static u32 max_count (u32 max_size) { u32 n (0); sstream ss; Profile::Header hdr (0, 0); ss << hdr; u32 addr (0); u16 port (0); ss << addr; ss << port; while (true) { u64 sn (0); ss << sn; if (ss.total_length () <= max_size) ++n; if (ss.total_length () >= max_size) break; } return n; } public: virtual void serialize_body (ostream& os) const { NAK& this_ = const_cast<NAK&> ACE_RMCast::NAK::this)

os<< addr; os << port; for (iterator i (this_.begin ()); !i.done (); i.advance ()) { u64* psn; i.next (psn); os << *psn; } } virtual void serialize_body (sstream& ss) const { NAK& this_ = const_cast<NAK&>* ACE_RMCast::NAK::this


The documentation for this class was generated from the following files:
Generated on Mon Sep 3 04:01:04 2007 for ACE_RMCast by  doxygen 1.5.3