# Available services

Here you can find details of pre-defined services and their default implementations

## BladeRunnerJS Services

BladeRunnerJS provides a number of services. They are listed on the [Available Services](http://bladerunnerjs.org/docs/reference/available_services/) page on BladeRunnerJS.org.

## Caplin Trader Services

General:

* [caplin.config-service](#caplinconfig-service)
* [caplin.preference-service](#caplinpreference-service)
* [caplin.chart-service](#caplinchart-service)

Layout:

* [caplin.layout-service](#caplinlayout-service)
* [caplin.user-prompt-service](#caplinuser-prompt-service)

Messaging:

* [caplin.user-service](#caplinuser-service)
* [caplin.message-service](#caplinmessage-service)
* [caplin.connection-service](#caplinconnection-service)
* [caplin.permission-service](#caplinpermission-service)

Trading:

* [caplin.tobo-user-service](#caplintobo-user-service)
* [caplin.trade-message-service](#caplintrade-message-service)
* [caplin.trade-permission-service](#caplintrade-permission-service)

Popouts:

* [caplin.popout-service](#caplinpopout-service)
* [caplin.window-service](#caplinwindow-service)

### General

#### caplin.config-service

**API Reference:** `[caplin.services.ConfigService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_services_ConfigService)`

**Provided implementations**: `[caplin.services.providers.CaplinConfigService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_services_providers_CaplinConfigService)`

**Description**: Provides information specific to this application instance. Examples of this information are lists of available locales, application versions, URLs for web services etc.

#### caplin.preference-service

**API Reference:** `[caplin.services.PreferencesService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_services_PreferencesService)`

**Description:** A service that manages saving and retrieving of a user’s preferences.

#### caplin.chart-service

**API Reference:** `[caplin.chart.services.ChartService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_chart_service_ChartService)`

**Provided implementations**: `[caplin.chart.services.StreamLinkChartService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_chart_service_StreamLinkChartService)`

**Description:** A service that retrieves chart data.

### Layout

#### caplin.layout-service

**API Reference:** `[caplin.layout.LayoutService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_layout_LayoutService)`

**Provided implementations**: `[caplin.layout.testing.LayoutService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_layout_testing_LayoutServiceStub)`

**Description:** Provides access to the user’s layouts.

#### caplin.user-prompt-service

**API Reference:** `[caplin.services.UserPromptService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_services_UserPromptService)`

**Description:** A service that manages how prompts are displayed to the user.

### Messaging

#### caplin.user-service

**API Reference:** `[caplin.services.UserService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_services_UserService)`

**Provided implementations**: `[caplin.sljsadapter.providers.StreamLinkUserService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_sljsadapter_providers_StreamLinkUserService)`

**Description:** A service that provides the login name of the user that is currently logged in.

#### caplin.message-service

**API Reference:** `[caplin.services.messaging.MessageService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_services_messaging_MessageService)`

**Provided implementations**: `[caplin.sljsadapter.providers.StreamLinkMessageService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_sljsadapter_providers_StreamLinkMessageService)`

**Description:** Provides access to publish/subscriber asynchronous messaging services, usually coupled with the `ConnectionService`.

#### caplin.connection-service

**API Reference:** `[caplin.services.ConnectionService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_services_ConnectionService)`

**Provided implementations**: `[caplin.caplin.sljsadapter.providers.StreamLinkConnectionService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_sljsadapter_providers_StreamLinkConnectionService)`

**Description**: Provides information about the status of a connection to a streaming server

#### caplin.permission-service

**API Reference:** `[services.security.PermissionService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_services_security_PermissionService)`

**Description:** Provides a set of permissions and entitlements for the logged in user.

### Trading

#### caplin.trade-service

**API Reference:** `[caplin.trading.trademodel.CaplinTradeService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_trading_trademodel_CaplinTradeService)`

**Description:** Creates trades by delegating to registered Trade Factories

#### caplin.trade-message-service

**API Reference:** `[caplin.trading.trademodel.TradeMessageService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_trading_trademodel_TradeMessageService)`

**Description:** Provides an API for sending trade messages to the underlying trading system.

#### caplin.tobo-user-service

**API Reference:** `[caplin.trading.service.TOBOUserService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_trading_service_TOBOUserService)`

**Description:** A service designed for managing the activities of a client user who is permissioned to trade on behalf of other (TOBO) users.

#### caplin.trade-permission-service

**API Reference:** `[caplin.trading.service.TradePermissionService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_trading_service_TradePermissionService)`

**Implements:** `[caplin.services.security.PermissionService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_services_security_PermissionService)`

**Description:** Provides high level trade permissioning information that can be used in trading applications that require tickets and tiles.

### Popouts

#### caplin.window-service

**API Reference:** `[caplin.popout.WindowService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_popout_WindowService)`

**Description:** Service used to create popout windows and communicate between windows

#### caplin.popout-service

**API Reference:** `[caplin.popout.PopoutService,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/4/module-caplin_popout_PopoutService)`

**Description:** Service used inside a popout window to enable communication with its opener
