Выделить функционал библиотеки в C++ консольное приложение (Linux/Win)

Цена договорная • безналичный расчёт, электронные деньги
11 июля 2018, 20:25 • 7 откликов • 51 просмотр
Доброго времени суток!

Если вкратце, то нужна консольная программа C++ (Visual Studio? C++ Builder?) которая бы юзала функции из предоставленной библиотеки, с учетом нескольких фишек описанных ниже. В принципе пример который предоставлен этой библиотекой, компилируется и работает на Ура!, наглядно показывает имплементацию некоторых из функций. Оплата поэтапная, этапы работы вышлю кандидату. В дальнейшем хотелось бы перспективу и на регулярное сотрудничество.

В каком варианте это реализовать? Идеально эта C++ программа будет выглядеть как Addon для NodeJS (сборка через cmake-js?). Ну а если с NodeJS чересчур сложно или проблематично, то сойдет и как "просто" приложение для Linux. И в конце-концов если NodeJS или Linux не проходят, затачиваем под EXE на Windows 32x (в.7 и выше).

Что у нас имеется?

- Полный набор header .h файлов классов и тд (исходники библиотеки)
- .chm с подробным описанием функций (RU, EN)
- Пример для Visual Studio C++

Нужно --

- Приложение из нескольких (на момент проекта это около 18-20, в дальнейшем будем делать больше) функций и процедур, взятых из предоставленной библиотеки, для подключения и проведения некоторых операций на МТ5 сервере.
- Выстроить программу таким образом чтобы она могла считывать файл с настройками для подключения к разным серверам в зависимости от параметров/команды.
- Приложение должно уметь принимать и обрабатывать параметры в виде JSON объекта (если говорим о не-NodeJS версии), например -->

Mt5App.exe '{"server_name":"server_1","server_type":"live","method":"UserGet","payload":{"login":1234}}'

--> Подключаемся к серверу server_1 (из настроек), live, активируем функцию UserGet с параметром login=1234. Ждем и возвращаем ответ.)

- Программа возвращает ответ который она получает с сервера на данную функцию, после чего сворачивается, до следущей команды.
- Программа предназначена для внутреннего использования, поэтому основной упор на производительность и устойчивость работы.
- Еще одна фишка в том что писать придётся в слепую, без возможности подключения к МТ5 серверу для тестирования. Доступ будет предоставлен на последней стадии.

Пример файла с настройками (скажем config.txt, программа ищет его в текущем каталоге)

server_1:
    live: 127.0.0.1:443|1|LivePwd
    demo: 127.0.0.2:443|2|DemoPwd
server_2:
    live: abc.def.server-name.com:443|1|LivePwd
    demo: 127.0.0.3:443|2|DemoPwd

Пример вводного JSON

{
  "server_name": "server_1",
  "server_type": "live",
  "method": "UserGet", ---> функция из .h
  "payload": { ---> параметры для функции
    "login": 1234
  }
}

Функции для интеграции

UserCreate (взаимодействует с UserAdd)
UserCreateAccount
UserGet
UserGroup
UserLogins
UserPasswordCheck
UserPasswordChange
UserTotal
UserUpdate
UserAccountRequstArray
-------
DealerBalance
DealerBalanceRaw
-------
PositionRequest
PositionBackupList
-------
OrderRequestOpen
OrderBackupRequestOpen
OrderRequestHistory
OrderBackupRequestHistory
Файлы