| <html lang="en"> |
| <head> |
| <title>Modern GNU Objective-C runtime API - Using the GNU Compiler Collection (GCC)</title> |
| <meta http-equiv="Content-Type" content="text/html"> |
| <meta name="description" content="Using the GNU Compiler Collection (GCC)"> |
| <meta name="generator" content="makeinfo 4.13"> |
| <link title="Top" rel="start" href="index.html#Top"> |
| <link rel="up" href="GNU-Objective_002dC-runtime-API.html#GNU-Objective_002dC-runtime-API" title="GNU Objective-C runtime API"> |
| <link rel="next" href="Traditional-GNU-Objective_002dC-runtime-API.html#Traditional-GNU-Objective_002dC-runtime-API" title="Traditional GNU Objective-C runtime API"> |
| <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> |
| <!-- |
| Copyright (C) 1988-2013 Free Software Foundation, Inc. |
| |
| Permission is granted to copy, distribute and/or modify this document |
| under the terms of the GNU Free Documentation License, Version 1.3 or |
| any later version published by the Free Software Foundation; with the |
| Invariant Sections being ``Funding Free Software'', the Front-Cover |
| Texts being (a) (see below), and with the Back-Cover Texts being (b) |
| (see below). A copy of the license is included in the section entitled |
| ``GNU Free Documentation License''. |
| |
| (a) The FSF's Front-Cover Text is: |
| |
| A GNU Manual |
| |
| (b) The FSF's Back-Cover Text is: |
| |
| You have freedom to copy and modify this GNU Manual, like GNU |
| software. Copies published by the Free Software Foundation raise |
| funds for GNU development.--> |
| <meta http-equiv="Content-Style-Type" content="text/css"> |
| <style type="text/css"><!-- |
| pre.display { font-family:inherit } |
| pre.format { font-family:inherit } |
| pre.smalldisplay { font-family:inherit; font-size:smaller } |
| pre.smallformat { font-family:inherit; font-size:smaller } |
| pre.smallexample { font-size:smaller } |
| pre.smalllisp { font-size:smaller } |
| span.sc { font-variant:small-caps } |
| span.roman { font-family:serif; font-weight:normal; } |
| span.sansserif { font-family:sans-serif; font-weight:normal; } |
| --></style> |
| </head> |
| <body> |
| <div class="node"> |
| <a name="Modern-GNU-Objective-C-runtime-API"></a> |
| <a name="Modern-GNU-Objective_002dC-runtime-API"></a> |
| <p> |
| Next: <a rel="next" accesskey="n" href="Traditional-GNU-Objective_002dC-runtime-API.html#Traditional-GNU-Objective_002dC-runtime-API">Traditional GNU Objective-C runtime API</a>, |
| Up: <a rel="up" accesskey="u" href="GNU-Objective_002dC-runtime-API.html#GNU-Objective_002dC-runtime-API">GNU Objective-C runtime API</a> |
| <hr> |
| </div> |
| |
| <h4 class="subsection">8.1.1 Modern GNU Objective-C runtime API</h4> |
| |
| <p>The GNU Objective-C runtime provides an API which is similar to the |
| one provided by the “Objective-C 2.0” Apple/NeXT Objective-C |
| runtime. The API is documented in the public header files of the GNU |
| Objective-C runtime: |
| |
| <ul> |
| <li><samp><span class="file">objc/objc.h</span></samp>: this is the basic Objective-C header file, |
| defining the basic Objective-C types such as <code>id</code>, <code>Class</code> |
| and <code>BOOL</code>. You have to include this header to do almost |
| anything with Objective-C. |
| |
| <li><samp><span class="file">objc/runtime.h</span></samp>: this header declares most of the public runtime |
| API functions allowing you to inspect and manipulate the Objective-C |
| runtime data structures. These functions are fairly standardized |
| across Objective-C runtimes and are almost identical to the Apple/NeXT |
| Objective-C runtime ones. It does not declare functions in some |
| specialized areas (constructing and forwarding message invocations, |
| threading) which are in the other headers below. You have to include |
| <samp><span class="file">objc/objc.h</span></samp> and <samp><span class="file">objc/runtime.h</span></samp> to use any of the |
| functions, such as <code>class_getName()</code>, declared in |
| <samp><span class="file">objc/runtime.h</span></samp>. |
| |
| <li><samp><span class="file">objc/message.h</span></samp>: this header declares public functions used to |
| construct, deconstruct and forward message invocations. Because |
| messaging is done in quite a different way on different runtimes, |
| functions in this header are specific to the GNU Objective-C runtime |
| implementation. |
| |
| <li><samp><span class="file">objc/objc-exception.h</span></samp>: this header declares some public |
| functions related to Objective-C exceptions. For example functions in |
| this header allow you to throw an Objective-C exception from plain |
| C/C++ code. |
| |
| <li><samp><span class="file">objc/objc-sync.h</span></samp>: this header declares some public functions |
| related to the Objective-C <code>@synchronized()</code> syntax, allowing |
| you to emulate an Objective-C <code>@synchronized()</code> block in plain |
| C/C++ code. |
| |
| <li><samp><span class="file">objc/thr.h</span></samp>: this header declares a public runtime API threading |
| layer that is only provided by the GNU Objective-C runtime. It |
| declares functions such as <code>objc_mutex_lock()</code>, which provide a |
| platform-independent set of threading functions. |
| |
| </ul> |
| |
| <p>The header files contain detailed documentation for each function in |
| the GNU Objective-C runtime API. |
| |
| <!-- ========================================================================= --> |
| </body></html> |
| |