RmstSrcReceive Class Reference

#include <rmst_source.hh>

Inheritance diagram for RmstSrcReceive:

NR::Callback Collaboration diagram for RmstSrcReceive:

Collaboration graph
[legend]

Detailed Description

Definition at line 65 of file rmst_source.hh.

Public Member Functions

void recv (NRAttrVec *data, NR::handle my_handle)
 RmstSrcReceive (RmstSource *rmstSrc)

Protected Attributes

RmstSourcesrc_


Constructor & Destructor Documentation

RmstSrcReceive::RmstSrcReceive RmstSource rmstSrc  )  [inline]
 

Definition at line 67 of file rmst_source.hh.

References src_.

00067 {src_ = rmstSrc; }


Member Function Documentation

void RmstSrcReceive::recv NRAttrVec data,
NR::handle  my_handle
[virtual]
 

Implements NR::Callback.

Definition at line 94 of file rmst_source.cc.

References NRAttribute::DISINTEREST_CLASS, GetTime(), NRSimpleAttribute< T >::getVal(), NRAttribute::INTEREST_CLASS, NRClassAttr, RmstSource::num_subscriptions_, RMST_RESP, RmstTargetAttr, RmstTsprtCtlAttr, and src_.

00095 {
00096   NRSimpleAttribute<char*> *rmst_target_attr = NULL;
00097   NRSimpleAttribute<int> *nr_class = NULL;
00098   NRSimpleAttribute<int> *tsprt_ctl_attr = NULL;
00099 
00100   timeval cur_time;
00101 
00102   printf("RMST-SRC::recv got an attr vector.");
00103   GetTime(&cur_time);
00104   printf("  time: sec = %d\n", (unsigned int) cur_time.tv_sec);
00105 
00106   nr_class = NRClassAttr.find(data);
00107   tsprt_ctl_attr = RmstTsprtCtlAttr.find(data);
00108 
00109   if (nr_class){
00110     switch (nr_class->getVal()){
00111 
00112     case NRAttribute::INTEREST_CLASS:
00113       if (tsprt_ctl_attr && (tsprt_ctl_attr->getVal() == RMST_RESP)){
00114         printf("  Source received an INTEREST message\n");
00115         src_->num_subscriptions_++;
00116       }
00117       break;
00118 
00119     case NRAttribute::DISINTEREST_CLASS:
00120       src_->num_subscriptions_--;
00121       rmst_target_attr = RmstTargetAttr.find(data);
00122       if (rmst_target_attr){
00123         printf("  Source received a DISINTEREST for %s\n",
00124             rmst_target_attr->getVal());
00125       }
00126       else
00127         printf("  Source received a Disinterest message for unknown Interest!\n");
00128       break;
00129 
00130     default:
00131       printf("  Source received an unknown or inappropriate class!(%d)!\n",
00132           nr_class->getVal());
00133       break;
00134     }
00135   }
00136 
00137   if (tsprt_ctl_attr){
00138     switch (tsprt_ctl_attr->getVal()){
00139     case RMST_RESP:
00140       break;
00141     case RMST_CONT:
00142       printf("  Source received a RMST_CONT message\n");
00143       if(src_->blobs_to_send_ > 0){
00144         printf ("  Source sending another blob\n");
00145         src_->sendBlob();
00146       }
00147       else
00148         printf ("  Source done sending blobs\n");
00149       break;
00150     default:
00151       printf("  Source received an unexpected RmstTsprtCtlAttr (%d)!\n",
00152            tsprt_ctl_attr->getVal());
00153       break;
00154     }
00155   }
00156 }

Here is the call graph for this function:


Field Documentation

RmstSource* RmstSrcReceive::src_ [protected]
 

Definition at line 70 of file rmst_source.hh.

Referenced by recv(), and RmstSrcReceive().


The documentation for this class was generated from the following files:
Generated on Tue Mar 6 17:28:00 2007 for ns2 Network Simulator 2.29 by  doxygen 1.4.6