Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# TAO_Service_Context Class Reference

Helper class for managing the service context list information. More...

`#include <Service_Context.h>`

Collaboration diagram for TAO_Service_Context:

[legend]
List of all members.

## Public Methods

| TAO_Service_Context (void)
| Constructor.
void | set_context (const IOP::ServiceContext &context)
| = Generic components
int | set_context (const IOP::ServiceContext &context, CORBA::Boolean replace)
void | set_context (IOP::ServiceContext &context)
int | get_context (IOP::ServiceContext &context) const
int | get_context (IOP::ServiceId id, const IOP::ServiceContext **context) const
int | get_context (IOP::ServiceId id, IOP::ServiceContext_out context)
void | set_context (IOP::ServiceId id, TAO_OutputCDR &cdr)
void | set_context (IOP::ServiceContext &context, TAO_OutputCDR &cdr)
int | is_service_id (IOP::ServiceId id)
int | encode (TAO_OutputCDR &cdr) const
| = Marshaling and demarshaling the list
int | decode (TAO_InputCDR &cdr)
IOP::ServiceContextList & | service_info (void)
| Return the underlying service context list.
const IOP::ServiceContextList & | service_info (void) const

## Private Methods

void | set_context_i (const IOP::ServiceContext &context)
| Helper methods to implement set_context().
void | set_context_i (IOP::ServiceContext &context)
void | add_context_i (const IOP::ServiceContext &context)
void | add_context_i (IOP::ServiceContext &context)
void | set_context_i (IOP::ServiceId id, TAO_OutputCDR &cdr)
void | set_context_i (IOP::ServiceContext &context, TAO_OutputCDR &cdr)
int | get_context_i (IOP::ServiceContext &context) const
| Helper methods to implement get_context().

## Private Attributes

IOP::ServiceContextList | service_context_
| The ServiceContextList info.

## Detailed Description

Helper class for managing the service context list information.

This class is used to manipulate and access the service context list that is passed around with every GIOP request/reply. The definition of the service context list is simply a sequence of the following structures: typedef unsigned long ServiceId; struct ServiceContext { ServiceId context_id; sequence <octet> context_data; }; typedef sequence <ServiceContext> ServiceContextList;

the real motivation behind this class is to consolidate all the marshalling and unmarshalling information pertaining to service context list

Note: Somewhere down the line we may want to use this class for fast access to the info that we need from the Service Context List.

## Constructor & Destructor Documentation

ACE_INLINE TAO_Service_Context::TAO_Service_Context | ( | void |  | ) |

| Constructor.

## Member Function Documentation

void TAO_Service_Context::add_context_i | ( | IOP::ServiceContext & | context | ) | `[private]`

void TAO_Service_Context::add_context_i | ( | const IOP::ServiceContext & | context | ) | `[private]`

int TAO_Service_Context::decode | ( | TAO_InputCDR & | cdr | ) |

int TAO_Service_Context::encode | ( | TAO_OutputCDR & | cdr | ) | const

| = Marshaling and demarshaling the list

int TAO_Service_Context::get_context | ( | IOP::ServiceId | id,
|  | IOP::ServiceContext_out | context
| ) |

Returns:
  0 If a Service Context with the given ServiceId doesn't exist.

int TAO_Service_Context::get_context | ( | IOP::ServiceId | id,
|  | const IOP::ServiceContext ** | context
| ) | const

| Get a reference to a context identified by id, return 0 if the component is not present.

int TAO_Service_Context::get_context | ( | IOP::ServiceContext & | context | ) | const

| Get a copy of the context identified by <context.context_id>, return 0 if the component is not present.

int TAO_Service_Context::get_context_i | ( | IOP::ServiceContext & | context | ) | const`[private]`

| Helper methods to implement get_context().

ACE_INLINE int TAO_Service_Context::is_service_id | ( | IOP::ServiceId | id | ) |

| Is the <id> available in the underlying service context list? If so return 1, else return 0

ACE_INLINE const IOP::ServiceContextList & TAO_Service_Context::service_info | ( | void |  | ) | const

ACE_INLINE IOP::ServiceContextList & TAO_Service_Context::service_info | ( | void |  | ) |

| Return the underlying service context list.

ACE_INLINE void TAO_Service_Context::set_context | ( | IOP::ServiceContext & | context,
|  | TAO_OutputCDR & | cdr
| ) |

| Set the context from the CDR stream and return the context back to the caller. *Does not* modify the underlying service context list.

ACE_INLINE void TAO_Service_Context::set_context | ( | IOP::ServiceId | id,
|  | TAO_OutputCDR & | cdr
| ) |

| Set the context from the CDR stream and add that to the service Context list

void TAO_Service_Context::set_context | ( | IOP::ServiceContext & | context | ) |

| Insert the component into the list, but efficiently stealing the contents of the octet sequence.

int TAO_Service_Context::set_context | ( | const IOP::ServiceContext & | context,
|  | CORBA::Boolean | replace
| ) |

| Insert the component into the list, making a copy of the octet sequence. Search the list before insertion so that the insertion does not cause a duplicate context to be in the list. If the replace flag is true, update the specified context. Return 0 if the component was present and the replace flag was not set to true.

void TAO_Service_Context::set_context | ( | const IOP::ServiceContext & | context | ) |

| = Generic components Insert the component into the list, making a copy of the octet sequence.

void TAO_Service_Context::set_context_i | ( | IOP::ServiceContext & | context,
|  | TAO_OutputCDR & | cdr
| ) | `[private]`

void TAO_Service_Context::set_context_i | ( | IOP::ServiceId | id,
|  | TAO_OutputCDR & | cdr
| ) | `[private]`

void TAO_Service_Context::set_context_i | ( | IOP::ServiceContext & | context | ) | `[private]`

void TAO_Service_Context::set_context_i | ( | const IOP::ServiceContext & | context | ) | `[private]`

| Helper methods to implement set_context().

## Member Data Documentation

IOP::ServiceContextList TAO_Service_Context::service_context_`[private]`

| The ServiceContextList info.

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

- Service_Context.h
- Service_Context.cpp
- Service_Context.inl