; ------------------------------------------------------------------------------------------------

FUNCTION db_tools_info_obj::init, val,                               $
                                  CACHED_DB_ITEM = cached_db_item,   $
                                  CACHED_DB_INFO = cached_db_info

; Initialize the base node object.  If it fails, then this method will also fail.

IF NOT self->base_node_obj::init (val) THEN RETURN, 0

; Check if the CACHED_DB_ITEM or CACHED_DB_INFO keywords was passed to this procedure.
; If either was passed to us, create a pointer to their value and store it as part of
; the object.

IF KEYWORD_SET (cached_db_item) THEN self.cached_db_item = PTR_NEW (cached_db_item)

IF KEYWORD_SET (cached_db_info) THEN self.cached_db_info = PTR_NEW (cached_db_info)

; OK, were done.

RETURN, 1

END

; ------------------------------------------------------------------------------------------------

PRO db_tools_info_obj::cleanup

; Determine if cached_db_item pointer is valid.  If it is, then free it.

IF PTR_VALID (self.cached_db_item) THEN PTR_FREE, self.cached_db_item

; Determine if cached_db_info pointer is valid.  If it is, then free it.

IF PTR_VALID (self.cached_db_info) THEN PTR_FREE, self.cached_db_info

; Since the BASE_NOD_OBJ object which we inherit does not have a cleanup
; method, we don't need to call it.

RETURN

END

; ------------------------------------------------------------------------------------------------

FUNCTION db_tools_info_obj::get_cached_db_item

RETURN, *self.cached_db_item

END

; ------------------------------------------------------------------------------------------------

FUNCTION db_tools_info_obj::get_cached_db_info

RETURN, *self.cached_db_info

END

; ------------------------------------------------------------------------------------------------

PRO db_tools_info_obj::set_cached_db_item, val

; Free the pointer if it is defined.

IF PTR_VALID (self.cached_db_item) THEN PTR_FREE, self.cached_db_item

; Create the new pointer.

self.cached_db_item = PTR_NEW (val)

RETURN

END

; ------------------------------------------------------------------------------------------------

PRO db_tools_info_obj::set_cached_db_info, val

; Free the pointer if it is defined.

IF PTR_VALID (self.cached_db_info) THEN PTR_FREE, self.cached_db_info

; Create the new pointer.

self.cached_db_info = PTR_NEW (val)

RETURN

END

; ------------------------------------------------------------------------------------------------

PRO db_tools_info_obj__define

struct = {DB_TOOLS_INFO_OBJ,                $ ; Name of the object.
          cached_db_item: PTR_NEW (),       $ ; Cached DB Item structure array
          cached_db_info: PTR_NEW (),       $ ; Cached DB Info structure
          INHERITS BASE_NODE_OBJ            $ ; Base Node Object
         }

END

; ------------------------------------------------------------------------------------------------
