Создание источника. Расширение функционала коннектора. Источники робота OsEngine #9
Продолжаем практические занятия по созданию новых источников для роботов в OsEngine.Сегодня говорим про то, как расширить функционал коннектора для раздачи новых данных. И добавление нового разрешения для коннекторов под источник.Серия постов строго для программистов со стажем, которые не только знают C# на уровне мидлов и сеньоров, но и УЖЕ разбираются в том, как делать новые серверы подключения к OsEngine.1. Добавляем разрешение для коннектора. IServerPermission.Для этого идём в интерфейс IServerPermission и добавляем туда свойство, обозначающее наличие реализации доступа к данным для источника.В нашем случае (а мы хотим добавить источник «Новости») итоговый коннектор должен поддерживать подписку на новости. Мы должны это обозначить: Соответственно:False будет означать, что такой тип работы с коннектором не поддерживается.True – всё реализовано и работает. Можно брать из коннектора новости.ВАЖНО!!!Не для всех типов источников это необходимо. Т.к. некоторые из них не нуждаются в каких-то новых данных с биржи. Например, индексы или пары просто расширяют возможности для работы с уже готовыми данными. Но в случае с новостями нам нужно обозначить новое разрешение для коннектора.После того как интерфейс IServerPermission будет модернизирован, потребуется добавить во все разрешения в проекте новое поле со значением False. Вот так: 2. Добавляем метод подписки и событие в конечную реализацию коннекторов. IServerRealization.Идём в класс IServerRealization:Добавляем нужный нам метод для подписки на данные. Если возвращает True, значит подписались успешно.Событие для отсылки новостей наверх.В каждой реализации сервера нужно добавить реализацию этих двух членов. 3. Добавляем методы подписки и события в IServer.Поднимаемся по архитектуре и добавляем расширение для IServer:Добавляем метод для подписки.Добавляем событие для отправки новости вверх по архитектуре.Добавляем метод и событие в реализации IServer. Пока пустые. 4. Добавляем хранение и пересылку новых данных в AServer.Во время создания реализации сервера нужно подписаться на новое событие, которое мы добавили:Создаём хранилище для новостей из коннекторов:Обрабатываем событие новой новости, в нём мы складываем данные в очередь:Далее делаем пересылку приказа о подписке на новости в реализацию:Далее, добавляем в поток, рассылающий данные роботам, разбор очереди: 5. Реализация подписки на новости в TransaqConnector.Транзак коннектор и так отсылает новости в поток данных, поэтому делаем здесь просто флаг о том, что надо отсылать сообщения наверх: Далее, проверяя флаг в месте разбора данных, передаём данные на разбор и отсылку наверх:Удачных алгоритмов!Оглавление данной серии статей здесь. https://smart-lab.ru/company/os_engine/blog/1126598.phpКомментарии открыты для друзей!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.
Сегодня говорим про то, как расширить функционал коннектора для раздачи новых данных. И добавление нового разрешения для коннекторов под источник.
Серия постов строго для программистов со стажем, которые не только знают C# на уровне мидлов и сеньоров, но и УЖЕ разбираются в том, как делать новые серверы подключения к OsEngine.
1. Добавляем разрешение для коннектора. IServerPermission.
Для этого идём в интерфейс IServerPermission и добавляем туда свойство, обозначающее наличие реализации доступа к данным для источника.
В нашем случае (а мы хотим добавить источник «Новости») итоговый коннектор должен поддерживать подписку на новости. Мы должны это обозначить:
- False будет означать, что такой тип работы с коннектором не поддерживается.
- True – всё реализовано и работает. Можно брать из коннектора новости.
ВАЖНО!!!
Не для всех типов источников это необходимо. Т.к. некоторые из них не нуждаются в каких-то новых данных с биржи. Например, индексы или пары просто расширяют возможности для работы с уже готовыми данными. Но в случае с новостями нам нужно обозначить новое разрешение для коннектора.
После того как интерфейс IServerPermission будет модернизирован, потребуется добавить во все разрешения в проекте новое поле со значением False. Вот так:
2. Добавляем метод подписки и событие в конечную реализацию коннекторов. IServerRealization.
Идём в класс IServerRealization:
- Добавляем нужный нам метод для подписки на данные. Если возвращает True, значит подписались успешно.
- Событие для отсылки новостей наверх.
- В каждой реализации сервера нужно добавить реализацию этих двух членов.
3. Добавляем методы подписки и события в IServer.
Поднимаемся по архитектуре и добавляем расширение для IServer:
- Добавляем метод для подписки.
- Добавляем событие для отправки новости вверх по архитектуре.
- Добавляем метод и событие в реализации IServer. Пока пустые.
4. Добавляем хранение и пересылку новых данных в AServer.
Во время создания реализации сервера нужно подписаться на новое событие, которое мы добавили:
Создаём хранилище для новостей из коннекторов:
Обрабатываем событие новой новости, в нём мы складываем данные в очередь:
Далее делаем пересылку приказа о подписке на новости в реализацию:
Далее, добавляем в поток, рассылающий данные роботам, разбор очереди:
5. Реализация подписки на новости в TransaqConnector.
Транзак коннектор и так отсылает новости в поток данных, поэтому делаем здесь просто флаг о том, что надо отсылать сообщения наверх:
Далее, проверяя флаг в месте разбора данных, передаём данные на разбор и отсылку наверх:
Удачных алгоритмов!
Оглавление данной серии статей здесь. https://smart-lab.ru/company/os_engine/blog/1126598.php
Комментарии открыты для друзей!
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