Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ada 1.16 KB | None | 0 0
  1. package wx.Base.Strings is
  2.    type String is new Ada.Finalization.Controlled with private;
  3.  
  4.    procedure Initialize(Self : in out String);
  5.    procedure Finalize(Self : in out String);
  6.    procedure Adjust(Self : in out String);
  7. private
  8.    package Internals is
  9. --      pragma Pure;
  10.  
  11.       package IC renames Interfaces.C;
  12.  
  13.       Size_Of_wxString : constant Integer;
  14.       --pragma Convention(C, Size_Of_WxString);
  15.       pragma Import(C, Size_Of_wxString, "sizeof_wxstring");
  16.  
  17.       type wxString is null record;
  18.       pragma Convention(C, wxString);
  19.       for wxString'Size use wx.Sizes.Size_Of_wxString;
  20.  
  21.       type wxString_Access is access all wxString;
  22.       pragma Convention(C, wxString_Access);
  23.  
  24.       function wxString_ctor(Store : wxString_Access) return wxString_Access;
  25.       pragma Import(C, wxString_ctor, "wxString_ctor");
  26.  
  27.       procedure wxString_dtor(Object : wxString_Access);
  28.       pragma Import(C, wxString_dtor, "wxString_dtor");
  29.    end Internals;
  30.  
  31.    type String is new Ada.Finalization.Controlled with record
  32.      Store  : aliased Internals.wxString;
  33.      Object : Internals.wxString_Access := null;
  34.    end record;
  35. end wx.Base.Strings;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement