Copyright (C) 2010 Bloomberg Finance L.P. blpapi.txt @PURPOSE: Bloomberg API C/C++ SDK @DESCRIPTION: The Bloomberg API provides developers with 24x7 programmatic access to data from the Bloomberg Data Center for use in customer applications. The Bloomberg API lets you integrate streaming real-time and delayed data, reference data, historical data, intraday data, and Bloomberg derived data into your own custom and thirdparty applications. You can choose which data you require down to the individual field level. The Bloomberg API uses an event-driven model. The interface is thread-safe and threadaware, giving applications the ability to utilize multiple processors efficiently. The Bloomberg API automatically breaks large results into smaller chunks and can provide conflated streaming data to improve the bandwidth usage and the latency of applications. The Bloomberg API supports run-time downloadable schemas for the services it provides and provides methods to query these schemas at runtime. This means the Bloomberg API can support additional services without additions to the interface. It also makes writing applications that can adapt to changes in services or entirely new services simple. The Bloomberg API object model contains a small number of key objects which applications use to request, receive and interpret data. An application creates a Session object to manage its connection with the Bloomberg infrastructure. (Some applications may choose to create multiple Session objects for redundancy). Using the Session object, an application creates a Service object and then "opens' each Bloomberg service that it will use. For example, Bloomberg provides streaming market data and reference data as services. There are two programming paradigms that can be used with the Service object. The client can make individual requests (via a Request object) for data or the client can start a subscription (managed via a Subscription object) with the service for ongoing data updates. Depending on the services being used, a customer application may be written to handle both paradigms. Whichever paradigm or paradigms are used, the Bloomberg infrastructure replies with events (received at the client as Event objects) which the client must handle asynchronously. Programmatically, the customer application obtains Event objects for the Session and then extracts from those Event objects one or more Message objects containing the Bloomberg data.