The Mozilla
Organization
At A Glance
Feedback
Get Involved
Newsgroups
License Terms
Newsbot
Developer Docs
Roadmap
Projects
Ports
Module Owners
Hacking
Get the Source
Build It
Testing
Download
Bugzilla
Bug Writing
Tools
View Source
Tree Status
New Checkins
Submit A Bug
FAQ
Search

New Layout: Base Library Roadmap


Authors: Kipp Hickman
Updated: 30 April 1998

Overview

This document briefly describes the "base" module (mozilla/base). The base module is a collection of data structures and I/O abstractions that are built using xpcom technology. Much of the code reuses other libraries (e.g. the NSPR).

Major Components

The base library contains data structures for:
  • Typeless arrays (nsVoidArray)
  • Typeless b-tree's and red-black trees (nsBTree, nsRBTree)
  • Strings's (yet-another-string-library). These strings are unicode, however.
  • Arena's (memory pools)
  • Atom's (unique string's that are reference counted)
  • Deque (a simple fifo queue)
The base library contains some I/O abstractions:
  • nsIInputStream - a byte input stream interface.
  • nsIUnicharInputStream - a unicode input stream interface.
  • nsIUnicharBuffer, nsIByteBuffer - buffers of unicode/byte's.
  • nsIURL - a temporary URL abstraction
Timers
  • Timers; timers require an application event loop to operate.
Implementation and Roadmap

The base library source can be found in mozilla/base; most of it is machine independent. However, the timer code is machine dependent. The I/O abstractions will probably move out of the base library and into either the nspr or netlib or some combination of the two.

The nsString class has not yet been made 100% i18n'd. That work will be done on an as-needed basis.

The are no plans to extend the base library directly. Instead if something is needed that fits its profile and it should be shared across modules then it can be added to base on an as-needed basis.

Copyright © 1998-2000 The Mozilla Organization.
Last modified July 15, 1998.