An introduction to apr 2 0
This presentation is the property of its rightful owner.
Sponsored Links
1 / 14

An Introduction to APR 2.0 PowerPoint PPT Presentation


  • 44 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


An introduction to apr 2 0

An Introduction to APR 2.0

Christian Gross

Consultant

[email protected]

Montreal, Canada


Bio christian gross

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


Agenda

Agenda

  • Discuss what APR represents

    • Why APR

    • Main points of APR

  • Go through demos that illustrate the various concepts of APR


An introduction to apr 2 0

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


Yet another portable runtime

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


What apr does

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


Core apr

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


Core apr cont

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


Managing data structures

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


Incomplete data types

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


Apr status codes

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


Examples

Examples

  • Demos illustrating the various concepts of APR

    • Available at www.devspace.com

      • Look for Apache APR Demo Code


Where to get apr

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


Thanks questions send me email

Thanks!Questions?(Send me email)


  • Login