separate (RPC) procedure UUID_To_String( UUID : in UUID_Type; UUID_String : out UUID_String_Type; Status : out DCE_Status.Status_Type; Use_NIL_UUID : in boolean := FALSE; No_String_Return : in boolean := FALSE) is -- **************************************************************************** use C_String_Pkg; -- /// Direct visibility to the "/=" operator procedure uuid_to_string( uuid : System.Address; uuid_str : System.Address; status : System.Address); pragma INTERFACE (C, uuid_to_string); UUID_Addr : System.Address := UUID'ADDRESS; Local_Status : DCE_Status.Status_Type; Local_CStr : C_String_Pkg.C_String; CStr_Addr : System.Address := Local_CStr'ADDRESS; begin if Use_NIL_UUID then UUID_Addr := System.NULL_ADDRESS; end if; if No_String_Return then CStr_Addr := System.NULL_ADDRESS; end if; uuid_to_string(UUID_Addr, CStr_Addr, Local_Status'ADDRESS); Status := Local_Status; if not No_String_Return then C_String_Pkg.C_to_Ada_String(Local_CStr, string(UUID_String), TRUE); RPC_String_Free(Local_CStr'ADDRESS, Local_Status); end if; end UUID_To_String;