Fixed MIH_EVENT_SUBSCRIBE message receiption
authorProvidence SALUMU M. <Providence.Salumu_Munga@it-sudparis.eu>
Tue Dec 02 18:09:09 2008 +0100 (14 months ago)
changeset 3934b50dbdcc13bf
parent 3933 aef347ebbd9c
child 3935 8d5dd5756a8d
Fixed MIH_EVENT_SUBSCRIBE message receiption
src/mih/mih-protocol.cc
     1.1 --- a/src/mih/mih-protocol.cc	Mon Dec 01 09:22:24 2008 +0100
     1.2 +++ b/src/mih/mih-protocol.cc	Tue Dec 02 18:09:09 2008 +0100
     1.3 @@ -168,26 +168,116 @@
     1.4                        events.TlvDeserialize (buffer);
     1.5                        session = GetSession (toMihfId, Address (), fromMihfId, from, socket);
     1.6                        RemoteEventSourceTrap remoteEventSourceTrap = session->GetRemoteEventSourceTrap ();
     1.7 +                      
     1.8 +                      MihLinkDetectedIndicationCallback linkDetectedEventCallback1;
     1.9 +                      EventList::Type linkDetectedEventType1 = EventList::INVALID;
    1.10 +                      MihLinkUpIndicationCallback linkUpEventCallback2;
    1.11 +                      EventList::Type linkUpEventType2 = EventList::INVALID;
    1.12 +                      MihLinkDownIndicationCallback linkDownEventCallback3;
    1.13 +                      EventList::Type linkDownEventType3 = EventList::INVALID;
    1.14 +                      MihLinkParametersReportIndicationCallback linkParamReportEventCallback4;
    1.15 +                      EventList::Type linkParamReportEventType4 = EventList::INVALID;
    1.16 +                      MihLinkGoingDownIndicationCallback linkGoingDownEventCallback5;
    1.17 +                      EventList::Type linkGoingDownEventType5 = EventList::INVALID;
    1.18 +                      MihLinkHandoverImminentIndicationCallback linkHOImminentEventCallback6;
    1.19 +                      EventList::Type linkHOImminentEventType6 = EventList::INVALID;
    1.20 +                      MihLinkHandoverCompleteIndicationCallback linkHOCompleteEventCallback7;
    1.21 +                      EventList::Type linkHOCompleteEventType7 = EventList::INVALID;
    1.22 +                      MihLinkPduTransmitStatusIndicationCallback linkPduTxStatusEventCallback8;
    1.23 +                      EventList::Type linkPduTxStatusEventType8 = EventList::INVALID;
    1.24  
    1.25 +                      if (events.GetEventList () & EventList::LINK_DETECTED)
    1.26 +                        {
    1.27 +                          linkDetectedEventCallback1 = MakeCallback (&RemoteEventSourceTrap::LinkDetected, &remoteEventSourceTrap);
    1.28 +                          linkDetectedEventType1 = EventList::LINK_DETECTED;
    1.29 +                        }
    1.30 +                      else
    1.31 +                        {
    1.32 +                          linkDetectedEventCallback1 = MakeNullCallback<void, MihfId, LinkDetectedInformation> ();
    1.33 +                        }
    1.34 +                      if (events.GetEventList () & EventList::LINK_UP)
    1.35 +                        {
    1.36 +                          linkUpEventCallback2 = MakeCallback (&RemoteEventSourceTrap::LinkUp, &remoteEventSourceTrap);
    1.37 +                          linkUpEventType2 = EventList::LINK_UP;
    1.38 +                        }
    1.39 +                      else
    1.40 +                        {
    1.41 +                          linkUpEventCallback2 = MakeNullCallback<void, MihfId, LinkIdentifier, Address, Address, bool, MobilityManagementSupport> ();
    1.42 +                        }
    1.43 +                      if (events.GetEventList () & EventList::LINK_DOWN)
    1.44 +                        {
    1.45 +                          linkDownEventCallback3 = MakeCallback (&RemoteEventSourceTrap::LinkDown, &remoteEventSourceTrap);
    1.46 +                          linkDownEventType3 = EventList::LINK_DOWN;
    1.47 +                        }
    1.48 +                      else
    1.49 +                        {
    1.50 +                          linkDownEventCallback3 = MakeNullCallback<void, MihfId, LinkIdentifier, Address, LinkDownReason> ();
    1.51 +                        }
    1.52 +                      if (events.GetEventList () & EventList::LINK_PARAMETERS_REPORT)
    1.53 +                        {
    1.54 +                          linkParamReportEventCallback4 = MakeCallback (&RemoteEventSourceTrap::LinkParametersReport, &remoteEventSourceTrap);
    1.55 +                          linkParamReportEventType4 = EventList::LINK_PARAMETERS_REPORT;
    1.56 +                        }
    1.57 +                      else
    1.58 +                        {
    1.59 +                          linkParamReportEventCallback4 = MakeNullCallback<void, MihfId, LinkIdentifier, LinkParameterReportList> ();
    1.60 +                        }
    1.61 +                      if (events.GetEventList () & EventList::LINK_GOING_DOWN)
    1.62 +                        {
    1.63 +                          linkGoingDownEventCallback5 = MakeCallback (&RemoteEventSourceTrap::LinkGoingDown, &remoteEventSourceTrap);
    1.64 +                          linkGoingDownEventType5 = EventList::LINK_GOING_DOWN;
    1.65 +                        }
    1.66 +                      else
    1.67 +                        {
    1.68 +                          linkGoingDownEventCallback5 = MakeNullCallback<void, MihfId, LinkIdentifier, uint64_t, LinkGoingDownReason> ();
    1.69 +                        }
    1.70 +                      if (events.GetEventList () & EventList::LINK_HANDOVER_IMMINENT)
    1.71 +                        {
    1.72 +                          linkHOImminentEventCallback6 = MakeCallback (&RemoteEventSourceTrap::LinkHandoverImminent, &remoteEventSourceTrap);
    1.73 +                          linkHOImminentEventType6 = EventList::LINK_HANDOVER_IMMINENT;
    1.74 +                        }
    1.75 +                      else
    1.76 +                        {
    1.77 +                          linkHOImminentEventCallback6 = MakeNullCallback<void, MihfId, LinkIdentifier, LinkIdentifier, Address, Address> ();
    1.78 +                        }
    1.79 +                      if (events.GetEventList () & EventList::LINK_HANDOVER_COMPLETE)
    1.80 +                        {
    1.81 +                          linkHOCompleteEventCallback7 = MakeCallback (&RemoteEventSourceTrap::LinkHandoverComplete, &remoteEventSourceTrap);
    1.82 +                          linkHOCompleteEventType7 = EventList::LINK_HANDOVER_COMPLETE;
    1.83 +                        }
    1.84 +                      else
    1.85 +                        {
    1.86 +                          linkHOCompleteEventCallback7 = MakeNullCallback<void, MihfId, LinkIdentifier, LinkIdentifier, Address, Address, Status> ();
    1.87 +                        }
    1.88 +                      if (events.GetEventList () & EventList::LINK_PDU_TRANSMIT_STATUS)
    1.89 +                        {
    1.90 +                          linkPduTxStatusEventCallback8 = MakeCallback (&RemoteEventSourceTrap::LinkPduTxStatus, &remoteEventSourceTrap);
    1.91 +                          linkPduTxStatusEventType8 = EventList::LINK_PDU_TRANSMIT_STATUS;
    1.92 +                        }
    1.93 +                      else
    1.94 +                        {
    1.95 +                          linkPduTxStatusEventCallback8 = MakeNullCallback<void, MihfId, LinkIdentifier, uint16_t, bool> ();
    1.96 +                        }
    1.97 +                      // Call Local EventSubscribe;
    1.98                        mihFunction->EventSubcribe (toMihfId,
    1.99                                                    linkIdentifier,
   1.100                                                    EventConfigurationInformation (),
   1.101 -                                                  events.GetEventList () & EventList::LINK_DETECTED ? EventList::LINK_DETECTED : EventList::INVALID,
   1.102 -                                                  events.GetEventList () & EventList::LINK_DETECTED ? MakeCallback (&RemoteEventSourceTrap::LinkDetected, &remoteEventSourceTrap) : MakeNullCallback<void, MihfId, LinkDetectedInformation> (),
   1.103 -                                                  events.GetEventList () & EventList::LINK_UP ? EventList::LINK_UP : EventList::INVALID,
   1.104 -                                                  events.GetEventList () & EventList::LINK_UP ? MakeCallback (&RemoteEventSourceTrap::LinkUp, &remoteEventSourceTrap): MakeNullCallback<void, MihfId, LinkIdentifier, Address, Address, bool, MobilityManagementSupport> (),
   1.105 -                                                  events.GetEventList () & EventList::LINK_DOWN ? EventList::LINK_DOWN : EventList::INVALID,
   1.106 -                                                  events.GetEventList () & EventList::LINK_DOWN ? MakeCallback (&RemoteEventSourceTrap::LinkDown, &remoteEventSourceTrap) : MakeNullCallback<void, MihfId, LinkIdentifier, Address, LinkDownReason> (),
   1.107 -                                                  events.GetEventList () & EventList::LINK_PARAMETERS_REPORT ? EventList::LINK_PARAMETERS_REPORT : EventList::INVALID,
   1.108 -                                                  events.GetEventList () & EventList::LINK_PARAMETERS_REPORT ? MakeCallback (&RemoteEventSourceTrap::LinkParametersReport, &remoteEventSourceTrap) : MakeNullCallback<void, MihfId, LinkIdentifier, Address, LinkDownReason> (),
   1.109 -                                                  events.GetEventList () & EventList::LINK_GOING_DOWN ? EventList::LINK_GOING_DOWN : EventList::INVALID,
   1.110 -                                                  events.GetEventList () & EventList::LINK_GOING_DOWN ? MakeCallback (&RemoteEventSourceTrap::LinkGoingDown, &remoteEventSourceTrap) : MakeNullCallback<void, MihfId, LinkIdentifier, uint64_t, LinkGoingDownReason> (),
   1.111 -                                                  events.GetEventList () & EventList::LINK_HANDOVER_IMMINENT ? EventList::LINK_HANDOVER_IMMINENT : EventList::INVALID,
   1.112 -                                                  events.GetEventList () & EventList::LINK_HANDOVER_IMMINENT ? MakeCallback (&RemoteEventSourceTrap::LinkHandoverImminent, &remoteEventSourceTrap) : MakeNullCallback<void, MihfId, LinkIdentifier, LinkIdentifier, Address, Address> (),
   1.113 -                                                  events.GetEventList () & EventList::LINK_HANDOVER_COMPLETE ? EventList::LINK_HANDOVER_COMPLETE : EventList::INVALID,
   1.114 -                                                  events.GetEventList () & EventList::LINK_HANDOVER_COMPLETE ? MakeCallback (&RemoteEventSourceTrap::LinkHandoverComplete, &remoteEventSourceTrap) : MakeNullCallback<void, MihfId, LinkIdentifier, LinkIdentifier, Address, Address, Status> (),
   1.115 -                                                  events.GetEventList () & EventList::LINK_PDU_TRANSMIT_STATUS ? EventList::LINK_PDU_TRANSMIT_STATUS : EventList::INVALID,
   1.116 -                                                  events.GetEventList () & EventList::LINK_PDU_TRANSMIT_STATUS ? MakeCallback (&RemoteEventSourceTrap::LinkPduTxStatus, &remoteEventSourceTrap) : MakeNullCallback<void, MihfId, LinkIdentifier, uint16_t, bool> (),
   1.117 +                                                  linkDetectedEventType1,
   1.118 +                                                  linkDetectedEventCallback1,
   1.119 +                                                  linkUpEventType2,
   1.120 +                                                  linkUpEventCallback2,
   1.121 +                                                  linkDownEventType3,
   1.122 +                                                  linkDownEventCallback3,
   1.123 +                                                  linkParamReportEventType4,
   1.124 +                                                  linkParamReportEventCallback4,
   1.125 +                                                  linkGoingDownEventType5,
   1.126 +                                                  linkGoingDownEventCallback5,
   1.127 +                                                  linkHOImminentEventType6,
   1.128 +                                                  linkHOImminentEventCallback6,
   1.129 +                                                  linkHOCompleteEventType7,
   1.130 +                                                  linkHOCompleteEventCallback7,
   1.131 +                                                  linkPduTxStatusEventType8,
   1.132 +                                                  linkPduTxStatusEventCallback8,
   1.133                                                    session->ReceiveEventSubscribeRequest (packet, mihHeader.GetTransactionId ()));
   1.134                      }
   1.135                    else if (mihHeader.GetOpCode () == MihHeader::RESPONSE)