## NAME

ACE_Service_Object_Ptr - 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.

## SYNOPSIS

    #include <ace/Service_Object.h>

    class ACE_Service_Object_Ptr
    {
      public:
        ACE_Service_Object_Ptr (ACE_Service_Object *so);
        ~ACE_Service_Object_Ptr (void);
        ACE_Service_Object *operator-> ();
      private:
        ACE_Service_Object *service_object_;
    };

## DESCRIPTION

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

## Initialization and termination methods.

    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`.

## AUTHOR

Doug Schmidt

## LIBRARY

ace