An improved system, method and software program is provided for distributed directory
enabled applications using an XML API. The improvement provides an event system,
a parser, and a bridge-based object model. The event system includes the ability
to publish an event, subscribe to the event, and act on the event. The parser enables
the XML API to parse XML files by accepting an XML file as an input stream, parsing
the input stream, dynamically loading system services referenced in the input stream,
and configuring the services. The bridge-based object model utilizes thread safeness,
which enables a bridge to use semaphore access control to control thread access,
smart pointers, which enable a bridge to automatically manage the memory it requires,
and opaque interfaces, which allow a bridge to maintain interface compatibility
when implementation changes occur in an interface.