rss

Профиль компании

Финансовые компании

Блог компании Os_Engine | Создание источника. Расширение функционала коннектора. Источники робота OsEngine #9

Продолжаем практические занятия по созданию новых источников для роботов в OsEngine.

Сегодня говорим про то, как расширить функционал коннектора для раздачи новых данных. И добавление нового разрешения для коннекторов под источник.

Серия постов строго для программистов со стажем, которые не только знают C# на уровне мидлов и сеньоров, но и УЖЕ разбираются в том, как делать новые серверы подключения к OsEngine.

Создание источника. Расширение функционала коннектора. Источники робота OsEngine #9

1. Добавляем разрешение для коннектора. IServerPermission.

Для этого идём в интерфейс IServerPermission и добавляем туда свойство, обозначающее наличие реализации доступа к данным для источника.

В нашем случае (а мы хотим добавить источник «Новости») итоговый коннектор должен поддерживать подписку на новости. Мы должны это обозначить:

Создание источника. Расширение функционала коннектора. Источники робота OsEngine #9 
Соответственно:

  1. False будет означать, что такой тип работы с коннектором не поддерживается.
  2. True – всё реализовано и работает. Можно брать из коннектора новости.

ВАЖНО!!!

Не для всех типов источников это необходимо. Т.к. некоторые из них не нуждаются в каких-то новых данных с биржи. Например, индексы или пары просто расширяют возможности для работы с уже готовыми данными. Но в случае с новостями нам нужно обозначить новое разрешение для коннектора.

После того как интерфейс IServerPermission будет модернизирован, потребуется добавить во все разрешения в проекте новое поле со значением False. Вот так:

Создание источника. Расширение функционала коннектора. Источники робота OsEngine #9

 

2. Добавляем метод подписки и событие в конечную реализацию коннекторов. IServerRealization.

Идём в класс IServerRealization:

Создание источника. Расширение функционала коннектора. Источники робота OsEngine #9

  1. Добавляем нужный нам метод для подписки на данные. Если возвращает True, значит подписались успешно.
  2. Событие для отсылки новостей наверх.
  3. В каждой реализации сервера нужно добавить реализацию этих двух членов.

 

3. Добавляем методы подписки и события в IServer.

Поднимаемся по архитектуре и добавляем расширение для IServer:

Создание источника. Расширение функционала коннектора. Источники робота OsEngine #9

  1. Добавляем метод для подписки.
  2. Добавляем событие для отправки новости вверх по архитектуре.
  3. Добавляем метод и событие в реализации IServer. Пока пустые.

 

4. Добавляем хранение и пересылку новых данных в AServer.

Во время создания реализации сервера нужно подписаться на новое событие, которое мы добавили:

Создание источника. Расширение функционала коннектора. Источники робота OsEngine #9

Создаём хранилище для новостей из коннекторов:

Создание источника. Расширение функционала коннектора. Источники робота OsEngine #9

Обрабатываем событие новой новости, в нём мы складываем данные в очередь:

Создание источника. Расширение функционала коннектора. Источники робота OsEngine #9

Далее делаем пересылку приказа о подписке на новости в реализацию:

Создание источника. Расширение функционала коннектора. Источники робота OsEngine #9

Далее, добавляем в поток, рассылающий данные роботам, разбор очереди:

Создание источника. Расширение функционала коннектора. Источники робота OsEngine #9 

 

5. Реализация подписки на новости в TransaqConnector.

Транзак коннектор и так отсылает новости в поток данных, поэтому делаем здесь просто флаг о том, что надо отсылать сообщения наверх:

Создание источника. Расширение функционала коннектора. Источники робота OsEngine #9 
Далее, проверяя флаг в месте разбора данных, передаём данные на разбор и отсылку наверх:

Создание источника. Расширение функционала коннектора. Источники робота OsEngine #9

Удачных алгоритмов!

Оглавление данной серии статей здесь. https://smart-lab.ru/company/os_engine/blog/1126598.php

Комментарии открыты для друзей!

Создание источника. Расширение функционала коннектора. Источники робота OsEngine #9

OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support

Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php

Создание источника. Расширение функционала коннектора. Источники робота OsEngine #9

★1

UPDONW
Новый дизайн