PACKAGE ibusiness_unit.test IS

   TYPE object IS NEW ibusiness_unit.object WITH PRIVATE;
   TYPE reference IS ACCESS ALL object'class;
   TYPE view IS ACCESS CONSTANT object'class;



   FUNCTION create (tracer_class_name        : IN string := "";
                    tracer_class_description : IN string := "")
                    RETURN ibusiness_unit.reference;


   PROCEDURE initialize (ref                  : IN OUT reference;
                         enable : IN boolean);


   PROCEDURE finalize (ref : IN OUT reference);


   PROCEDURE proceed (ref : IN OUT reference);


   FUNCTION get (ref : IN reference) RETURN boolean;

PRIVATE
   TYPE private_members;
   TYPE access_private_members IS ACCESS private_members;

   TYPE object IS NEW ibusiness_unit.object WITH
      RECORD
         member : access_private_members := NULL;
      END RECORD;

END ibusiness_unit.test;

