You are currently viewing a snapshot of taken on April 21, 2008. Most of this content is highly out of date (some pages haven't been updated since the project began in 1998) and exists for historical purposes only. If there are any pages on this archive site that you think should be added back to, please file a bug.

N2 Kickoff meeting notes.

Here are Suresh Duddi's notes of the kickoff meeting for project N2. N2 aims to clean up Netlib of its old dead code and make things work faster better. As a part of the meeting several key areas were identified that needed attention.

Components of Netlib

  1. Converters: decoders, stream converters
  2. Core Scheduling, DNS, Socket
  3. Cache
  4. Protocols
  5. Streams
  6. URL Maintenance
  7. Threading
  8. Cookies

Issues from dp's email

  • IURL has too much in it
  • There needs to be a unified stream interface and that should be the primary channel of communication across converters, protocols, cache.
  • How do converters kick in.
  • what are the components of netlib/ Would cache and converters be part of it or outside it.
  • Pluggable protocol interfaces.
  • how should the cache plug in.

Rick Potts presentation of modular netlib work ........

  • nsIURL
  • nsNetServices
    • URLConnection
    • Cookie
    • Proxy
    • Interrupt
  • Converters are registered for mimetype conversion without notion of presentation type or command. Viewers will be registered for commands.

Goals for the N2 effort

  1. Remove MODULAR_NETLIB #define
  2. Remove url_s
  3. Remove MWContext
  4. Converters
    1. Pull converter/decoder out of core netlib into a separate service.
    2. Add a despatch layer on top of core netlib that does converter chaining and data despatching
  5. Streams
    1. Unify all streams.
    2. Convenience functions for listeners and streams
    3. Convenience functions for {MIMEType, viewer/Command} -> OutputStream
    4. All streams have a base interface nsIInterface
    5. Input and output streams dont have to match. Maybe they have to. Deal with it later.
    6. Output stream will be passed into a converter
    7. How headers are stored and where ?
    8. How to handle Multi-part ? need to look. Check on how headers are handled.
  6. Protocols
    1. Protocol Manager: For creating managing multiple protocols
    2. Existence of Protocol Manager opaque to protocols. Protocol Manager is a netlib core internal.
    3. Set of interfaces needs to be exposed to 3rd party protocol developers. Expose interfaces to sockets and netlib core.
    4. Connection Manager for instanstiation of a protocol. You ask Protocol Manager for a connection manager.
    5. Implement nsITransport and nsISocketTransport for communication betn protocols and core netlib.
    6. How do we pass back bytes read and max bytes. Progress ?

Architecture diagram of Netlib