Public Member Functions | Private Attributes | Friends

PortableGroup_Request_Dispatcher Class Reference

A class that strategizes the request dispatching procedure. More...

#include <PortableGroup_Request_Dispatcher.h>

Inheritance diagram for PortableGroup_Request_Dispatcher:
Inheritance graph
[legend]
Collaboration diagram for PortableGroup_Request_Dispatcher:
Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual ~PortableGroup_Request_Dispatcher (void)
 Destructor.
virtual void dispatch (TAO_ORB_Core *orb_core, TAO_ServerRequest &request, CORBA::Object_out forward_to)

Private Attributes

TAO_Portable_Group_Map group_map_
 Hash map containing the GroupId->ObjectKey mappings.
TAO_PortableGroup_Acceptor_Registry acceptor_registry_
 Registry for all of the group (multicast) acceptors.

Friends

class TAO_GOA

Detailed Description

A class that strategizes the request dispatching procedure.

Definition at line 38 of file PortableGroup_Request_Dispatcher.h.


Constructor & Destructor Documentation

PortableGroup_Request_Dispatcher::~PortableGroup_Request_Dispatcher ( void   )  [virtual]

Destructor.

Definition at line 16 of file PortableGroup_Request_Dispatcher.cpp.

{
}


Member Function Documentation

void PortableGroup_Request_Dispatcher::dispatch ( TAO_ORB_Core orb_core,
TAO_ServerRequest request,
CORBA::Object_out  forward_to 
) [virtual]

Dispatch a request.

Reimplemented from TAO_Request_Dispatcher.

Definition at line 21 of file PortableGroup_Request_Dispatcher.cpp.

{
  // Check if the request contains a tagged profile
  if (request.profile ().discriminator () == GIOP::ProfileAddr)
    {
      // Get the IOP::Tagged profile.
      const IOP::TaggedProfile &tagged_profile =
        request.profile ().tagged_profile ();
      PortableGroup::TagGroupTaggedComponent group;

      // Extract a Group ID from the profile if it exists.
      int result = TAO_UIPMC_Profile::extract_group_component (tagged_profile,
                                                               group);
      if (result == 0)
        {
          // Got a group.  Dispatch based on the group ID
          this->group_map_.dispatch (&group,
                                     orb_core,
                                     request,
                                     forward_to);

          return;
        }

      // Else, fall through and dispatch based on object key like normal.
    }

  // Dispatch based on object key.
  orb_core->adapter_registry ().dispatch (request.object_key (),
                                          request,
                                          forward_to);
}


Friends And Related Function Documentation

friend class TAO_GOA [friend]

Definition at line 41 of file PortableGroup_Request_Dispatcher.h.


Member Data Documentation

Registry for all of the group (multicast) acceptors.

Definition at line 61 of file PortableGroup_Request_Dispatcher.h.

Hash map containing the GroupId->ObjectKey mappings.

Definition at line 58 of file PortableGroup_Request_Dispatcher.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines