1------------------------------------------------------------------------------ 2-- -- 3-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- 4-- -- 5-- S Y S T E M . S T R I N G S . S T R E A M _ O P S -- 6-- -- 7-- S p e c -- 8-- -- 9-- Copyright (C) 2009, Free Software Foundation, Inc. -- 10-- -- 11-- GNAT is free software; you can redistribute it and/or modify it under -- 12-- terms of the GNU General Public License as published by the Free Soft- -- 13-- ware Foundation; either version 3, or (at your option) any later ver- -- 14-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- 15-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- 16-- or FITNESS FOR A PARTICULAR PURPOSE. -- 17-- -- 18-- As a special exception under Section 7 of GPL version 3, you are granted -- 19-- additional permissions described in the GCC Runtime Library Exception, -- 20-- version 3.1, as published by the Free Software Foundation. -- 21-- -- 22-- You should have received a copy of the GNU General Public License and -- 23-- a copy of the GCC Runtime Library Exception along with this program; -- 24-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- 25-- <http://www.gnu.org/licenses/>. -- 26-- -- 27-- GNAT was originally developed by the GNAT team at New York University. -- 28-- Extensive contributions were provided by Ada Core Technologies Inc. -- 29-- -- 30------------------------------------------------------------------------------ 31 32-- This package provides subprogram implementations of stream attributes for 33-- the following types: 34-- Ada.String 35-- Ada.Wide_String 36-- Ada.Wide_Wide_String 37-- 38-- The compiler will generate references to the subprograms in this package 39-- when expanding stream attributes for the above mentioned types. Example: 40-- 41-- String'Output (Some_Stream, Some_String); 42-- 43-- will be expanded into: 44-- 45-- String_Output (Some_Stream, Some_String); 46-- or 47-- String_Output_Blk_IO (Some_Stream, Some_String); 48 49pragma Compiler_Unit; 50 51with Ada.Streams; 52 53package System.Strings.Stream_Ops is 54 55 ------------------------------ 56 -- String stream operations -- 57 ------------------------------ 58 59 function String_Input 60 (Strm : access Ada.Streams.Root_Stream_Type'Class) 61 return String; 62 63 function String_Input_Blk_IO 64 (Strm : access Ada.Streams.Root_Stream_Type'Class) 65 return String; 66 67 procedure String_Output 68 (Strm : access Ada.Streams.Root_Stream_Type'Class; 69 Item : String); 70 71 procedure String_Output_Blk_IO 72 (Strm : access Ada.Streams.Root_Stream_Type'Class; 73 Item : String); 74 75 procedure String_Read 76 (Strm : access Ada.Streams.Root_Stream_Type'Class; 77 Item : out String); 78 79 procedure String_Read_Blk_IO 80 (Strm : access Ada.Streams.Root_Stream_Type'Class; 81 Item : out String); 82 83 procedure String_Write 84 (Strm : access Ada.Streams.Root_Stream_Type'Class; 85 Item : String); 86 87 procedure String_Write_Blk_IO 88 (Strm : access Ada.Streams.Root_Stream_Type'Class; 89 Item : String); 90 91 ----------------------------------- 92 -- Wide_String stream operations -- 93 ----------------------------------- 94 95 function Wide_String_Input 96 (Strm : access Ada.Streams.Root_Stream_Type'Class) 97 return Wide_String; 98 99 function Wide_String_Input_Blk_IO 100 (Strm : access Ada.Streams.Root_Stream_Type'Class) 101 return Wide_String; 102 103 procedure Wide_String_Output 104 (Strm : access Ada.Streams.Root_Stream_Type'Class; 105 Item : Wide_String); 106 107 procedure Wide_String_Output_Blk_IO 108 (Strm : access Ada.Streams.Root_Stream_Type'Class; 109 Item : Wide_String); 110 111 procedure Wide_String_Read 112 (Strm : access Ada.Streams.Root_Stream_Type'Class; 113 Item : out Wide_String); 114 115 procedure Wide_String_Read_Blk_IO 116 (Strm : access Ada.Streams.Root_Stream_Type'Class; 117 Item : out Wide_String); 118 119 procedure Wide_String_Write 120 (Strm : access Ada.Streams.Root_Stream_Type'Class; 121 Item : Wide_String); 122 123 procedure Wide_String_Write_Blk_IO 124 (Strm : access Ada.Streams.Root_Stream_Type'Class; 125 Item : Wide_String); 126 127 ---------------------------------------- 128 -- Wide_Wide_String stream operations -- 129 ---------------------------------------- 130 131 function Wide_Wide_String_Input 132 (Strm : access Ada.Streams.Root_Stream_Type'Class) 133 return Wide_Wide_String; 134 135 function Wide_Wide_String_Input_Blk_IO 136 (Strm : access Ada.Streams.Root_Stream_Type'Class) 137 return Wide_Wide_String; 138 139 procedure Wide_Wide_String_Output 140 (Strm : access Ada.Streams.Root_Stream_Type'Class; 141 Item : Wide_Wide_String); 142 143 procedure Wide_Wide_String_Output_Blk_IO 144 (Strm : access Ada.Streams.Root_Stream_Type'Class; 145 Item : Wide_Wide_String); 146 147 procedure Wide_Wide_String_Read 148 (Strm : access Ada.Streams.Root_Stream_Type'Class; 149 Item : out Wide_Wide_String); 150 151 procedure Wide_Wide_String_Read_Blk_IO 152 (Strm : access Ada.Streams.Root_Stream_Type'Class; 153 Item : out Wide_Wide_String); 154 155 procedure Wide_Wide_String_Write 156 (Strm : access Ada.Streams.Root_Stream_Type'Class; 157 Item : Wide_Wide_String); 158 159 procedure Wide_Wide_String_Write_Blk_IO 160 (Strm : access Ada.Streams.Root_Stream_Type'Class; 161 Item : Wide_Wide_String); 162 163end System.Strings.Stream_Ops; 164