1 / 14

An Introduction to APR 2.0

An Introduction to APR 2.0. Christian Gross Consultant ChristianHGross@yahoo.ca Montreal, Canada. Bio: Christian Gross. Author of several books Conference speaker Skills Specialization in Internet, and Infrastructure technologies Windows, UNIX, LINUX server development

nash
Télécharger la présentation

An Introduction to APR 2.0

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. An Introduction to APR 2.0 Christian Gross Consultant ChristianHGross@yahoo.ca Montreal, Canada

  2. Bio: Christian Gross • Author of several books • Conference speaker • Skills • Specialization in Internet, and Infrastructure technologies • Windows, UNIX, LINUX server development • Companies worked/consulted for • UBS, TATA, Grammer, National Westminster, Daimler Chrysler, ETSI, ITU, Fame, NCR, etc

  3. Agenda • Discuss what APR represents • Why APR • Main points of APR • Go through demos that illustrate the various concepts of APR

  4. APR???? • APR: Apache Portable Run-time • Mission Statement • The Apache Portable Run-time mission is to provide a library of routines that allows programmers to write a program once and be able to compile it anywhere

  5. Yet another “Portable” Runtime? • Original choices were NSPR, ACE or another library • NSPR not used because of license issues and then too many features not required • ACE used C++, which is useless with Apache • Finally wrote APR, which is a continuation of ap_ work done in Apache 1.3.x

  6. What APR does • Abstracts the OS into a series of Apache related functions • Simpler for porting Apache to other platforms • Solves the following problems • Threads • Processes • Directories • APR Core: contains fundamental portable functions • APR Util: contains functions that are not core, but need to be portable

  7. Core APR • Contains following functionality • Reading and writing of files • Character set conversion • Network communications using sockets • Time management used for Internet type conversions • String management like C++ including natural order management • UNIX Password management routines • Table management routines

  8. Core APR (cont.) • Contains following functionality (cont.) • UUID Internet generation • Filename canonicalization • Random data generation • Global lock management • Threads and process management • Dynamic library loading routines • Memory mapped and shared memory

  9. Managing Data Structures • Cross platform is problematic because not all functionality is supported • Structures look like spaghetti typdef struct foo { #ifdef WIN32 LONG item1; DWORD item2; #endif LONG shared; }; • Do not want to give programmers direct access • Violates cross-platform capabilities • False sense of security

  10. Incomplete Data Types • Solves problem of managing data structures across platforms • Data type is defined using a “handle” • Data type is managed using a number of routines • Programmer does not have direct access to structure details • But not all of APR is incomplete data type based

  11. APR Status Codes • Used to indicate when things work and do not work • Different types of errors based on the sub-system that causes the error • Operating system native function calling error • Function calling error • APR will provide error codes for OS’s that do not support the native error or maps error codes • Errors codes provided by layered application • Success codes • Can include extra information indicating state

  12. Examples • Demos illustrating the various concepts of APR • Available at www.devspace.com • Look for Apache APR Demo Code

  13. Where to get APR? • APR is distributed with Apache 2.x • Can get standalone version by going to http://apr.apache.org • There exists an APR mailing list at above mentioned website • Documentation is currently sparse

  14. Thanks!Questions?(Send me email)

More Related