# ACE_Service_Object_Ptr Class Reference

This is a smart pointer that holds onto the associated ACE_Service_Object * until the current scope is left, at which point the object's <fini> hook is called and the service_object_ gets deleted. More...

`#include <Service_Object.h>`

Collaboration diagram for ACE_Service_Object_Ptr:

[legend]
List of all members.

## Public Member Functions

| ACE_Service_Object_Ptr (ACE_Service_Object *so)
| Acquire ownership of the so.
| ~ACE_Service_Object_Ptr (void)
| Release the held ACE_Service_Object by calling its <fini> hook.
ACE_Service_Object * | operator-> ()
| Smart pointer to access the underlying ACE_Service_Object.

## Private Attributes

ACE_Service_Object * | service_object_
| Holds the service object until we're done.

## Detailed Description

This is a smart pointer that holds onto the associated ACE_Service_Object * until the current scope is left, at which point the object's <fini> hook is called and the service_object_ gets deleted.

This class is similar to the Standard C++ Library class <auto_ptr>. It is used in conjunction with statically linked <ace_service_objects>, as shown in the ./netsvcs/server/main.cpp example.

## Constructor & Destructor Documentation

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE ACE_Service_Object_Ptr::ACE_Service_Object_Ptr | ( | ACE_Service_Object * | so | ) |

| Acquire ownership of the so.

ACE_INLINE ACE_Service_Object_Ptr::~ACE_Service_Object_Ptr | ( | void |  | ) |

| Release the held ACE_Service_Object by calling its <fini> hook.

## Member Function Documentation

ACE_INLINE ACE_Service_Object * ACE_Service_Object_Ptr::operator-> | ( |  | ) |

| Smart pointer to access the underlying ACE_Service_Object.

## Member Data Documentation

ACE_Service_Object* ACE_Service_Object_Ptr::service_object_`[private]`

| Holds the service object until we're done.

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

- Service_Object.h
- Service_Object.inl