### Connect API (L0) Getting Started Source: https://bookmap.com/knowledgebase/docs/API Guidance on how to get started with developing adapters using the L0 Connect API, emphasizing the need to qualify under the Quant solution category. ```APIDOC ## Connect API (L0) Getting Started To develop adapters using the L0 API, you must first qualify under the Quant solution category. Upon approval, you can implement your custom L0 API adapters in Bookmap. **Resources:** * Consult the `readme` file in the `Layer0ApiDemo` project. * Browse examples within the `Layer0ApiDemo` project. * Review the Bitmex adapter implementation for practical examples. ``` -------------------------------- ### Add-ons API (L1) Types and Getting Started Source: https://bookmap.com/knowledgebase/docs/API Details on the two types of L1 Add-ons API: Simplified API for beginners and Core API for more advanced development, along with guidance on getting started for each. ```APIDOC ## Add-ons API (L1) Types and Getting Started Depending on complexity and features, there are two types of L1 API: ### Simplified API * **Ideal for**: Beginners, with numerous available examples. * **Limitations**: Does not support "inject" and "data editor" modes. * **Availability**: Supported in both Java and Python. **Getting Started with Simplified API:** * Check the `readme` file in the `DemoStrategies` project. * Explore examples in `DemoStrategies` under the `simplified.demo` directory and in the `simple-demo` project. * For Python users, refer to the dedicated Python API page. ### Core API * **Characteristics**: More intricate, with fewer examples compared to the Simplified API. * **Features**: Supports "inject" and "data editor" modes, allowing modification of data sent to Bookmap. * **Prerequisites**: Prior experience with the Simplified API is recommended. **Getting Started with Core API:** * Read the `readme` file for the `DemoStrategies` project. * View examples within the `simple-demo` sub-package of the `DemoStrategies` project. ``` -------------------------------- ### Provider Initialization and Event Broadcasting Source: https://bookmap.com/knowledgebase/docs/API This snippet demonstrates the core steps for initializing a BrAPI provider and broadcasting live events. It involves obtaining a BroadcasterProvider instance, starting the BrAPI service, registering a generator, and sending live events when they are detected. ```java // 1. Start: BroadcasterProvider broadcaster = BroadcastFactory.getBroadcasterProvider(layer1ApiProvider, providerName, providerMainClass); // It's best to start BrAPI after receiving UserMessageLayersChainCreatedTargeted in onUserMessage. // broadcaster.start(); // 2. Register DataStructureInterface (Optional for historical data): // Layer1ApiDataInterfaceRequestMessage request = new Layer1ApiDataInterfaceRequestMessage(); // DataStructureInterface dataInterface = bm.sendMessage(request); // BrDataStructureInterface brDataInterface = new MyBrDataStructureInterfaceImpl(dataInterface); // broadcaster.registerDataStructureInterface(brDataInterface); // 3. Register generator: // broadcaster.registerGenerator("GeneratorName", EventClass.class, new Filter(), new Settings()); // 4. Send live event: // if (data instanceof CustomGeneratedEventAliased) { // CustomGeneratedEventAliased event = (CustomGeneratedEventAliased) data; // broadcaster.sendLiveEvent("GeneratorName", event); // } ``` -------------------------------- ### Bookmap Orders File Format Example Source: https://bookmap.com/knowledgebase/docs/KB-Appendices-AIV-OrdersFormat An example of a Bookmap orders file, demonstrating the format for various order events including send, cancel, execution, and fill. ```text !BOOKMAP_FORMAT_V1 !DO_NOT_UPDATE_AFTER_EXECUTION S,20180817,132604,0.278443826,1105671107,ESU8.CME@RITHMIC,1,2837.0,2 C,20180817,132606,0.660462608,1105671107 S,20180817,132608,0.448465391,1105671108,ESU8.CME@RITHMIC,0,2838.0,2 E,20180817,132609,0.385849739,1105671108,2838.0,2 F,20180817,132609,0.386520348,1105671108 S,20180817,132612,0.325328,1105671115,ESU8.CME@RITHMIC,1,2837.25,2 U,20180817,132614,0.282056116,1105671115,2837.5,2 U,20180817,132617,0.837655884,1105671115,2837.75,2 U,20180817,132621,0.738012058,1105671115,2838.25,2 U,20180817,132625,0.130369159,1105671115,2838.5,2 E,20180817,132625,0.130665043,1105671115,2838.5,2 F,20180817,132625,0.130980406,1105671115 ``` -------------------------------- ### Resolve PainterDll.dll Dependency Errors in Bookmap (Java) Source: https://bookmap.com/knowledgebase/docs/KB-Errors-General-Errors-And-Crashes Addresses 'UnsatisfiedLinkError' indicating missing dependent libraries for PainterDll.dll. This is often resolved by updating the OS, installing specific Microsoft Visual C++ redistributable packages (x86 and x64), and repairing existing installations if necessary. ```Java java.lang.UnsatisfiedLinkError: C:\Program Files\Bookmap\lib\x64\PainterDll.dll: cannot find dependent libraries at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824) at java.lang.Runtime.load0(Runtime.java:809) at java.lang.System.load(System.java:1086) at velox.bookmap.OW.a(SourceFile:1060) at velox.ib.Main.b(SourceFile:2277) at java.lang.Thread.run(Thread.java:745) ```