with Directory_Tools;
package Object_Operations is

    -- This package exports various operations for obtaining objects
    -- to work on, and returning objects to a protected state. Error
    -- handling and error reporting is performed.
    --
    -- These operations are very useful when used in conjunction with
    -- operations from the File_Operations package. For instance:
    --
    --    Object_Operations.Get...
    --    File_Operations.Open_To_Write...
    --       ...
    --    File_Operations.Close...
    --    Object_Operations.Put...

    procedure Unprotect (This_Object : in Directory_Tools.Object.Handle;
                         Response : in String := "<PROFILE>");
    -- This procedure will unfreeze an object if it is frozen, check
    -- it in if it is checked out, and then check it out.

    procedure Protect (This_Object : in Directory_Tools.Object.Handle;
                       Response : in String := "<PROFILE>");
    -- This procedure will check an object back in. If the object
    -- is not already controlled and it is in the units directory of
    -- a view, it will attempt to make it controlled. Then it will
    -- freeze the object.

end Object_Operations;