Compare commits
22
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0d24062f03 | ||
|
|
44e0eae281 | ||
|
|
152ab05b4e | ||
|
|
4257a172c1 | ||
|
|
721a08c4b4 | ||
|
|
41a3535e84 | ||
|
|
626629bf06 | ||
|
|
487aaef02f | ||
|
|
f22fc03e56 | ||
|
|
5f45ddf210 | ||
|
|
d6a533ca5c | ||
|
|
20e58dc80b | ||
|
|
5773945791 | ||
|
|
721c889235 | ||
|
|
9957af655f | ||
|
|
eab92fb486 | ||
|
|
9f1cd47cfa | ||
|
|
90c3edbbe7 | ||
|
|
adee8b584c | ||
|
|
329ad323e0 | ||
|
|
c713b97441 | ||
|
|
eb79264b9b |
No files matched your search
@@ -34,3 +34,4 @@ trace_data/
|
||||
/doc/user/public/*
|
||||
.ionide/*
|
||||
/.ignore
|
||||
CMakeDeps.cmake
|
||||
Vendored
+5
-6
@@ -46,7 +46,7 @@
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
"name": "(gdb) Launch",
|
||||
"type": "cppdbg",
|
||||
@@ -345,12 +345,11 @@
|
||||
"name": ".NET Core Remote Launch",
|
||||
"type": "coreclr",
|
||||
"request": "launch",
|
||||
"program": "/usr/bin/dotnet",
|
||||
"program": "sparkcmd",
|
||||
"args": [
|
||||
"sparkcmd.dll",
|
||||
"test",
|
||||
"test_join_create_and_takeout_market"
|
||||
],
|
||||
"env": {"LD_LIBRARY_PATH" : "."},
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/ninja_debug/server",
|
||||
"pipeTransport": {
|
||||
@@ -361,11 +360,11 @@
|
||||
"debuggerPath": "/home/bts/vsdbg/vsdbg",
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"quoteArgs": true
|
||||
},
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
},
|
||||
"justMyCode": false
|
||||
},
|
||||
},
|
||||
]
|
||||
}
|
||||
@@ -48,6 +48,7 @@ else ()
|
||||
add_subdirectory(doc/user)
|
||||
add_subdirectory(src/sdk)
|
||||
add_subdirectory(src/data_files)
|
||||
add_subdirectory(src/client)
|
||||
|
||||
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND mkdir -p ${CMAKE_BINARY_DIR}/server
|
||||
@@ -59,7 +60,17 @@ else ()
|
||||
COMMAND ln ARGS -sf ${EXTERNALS_ROOT}/lib/Release/libACE-5.7.5.so ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND mkdir ARGS -p ${CMAKE_BINARY_DIR}/server/plugins
|
||||
COMMENT "Creating server runtime layout"
|
||||
DEPENDS sparkd data_files_dir spark_client_dir
|
||||
DEPENDS sparkd data_files_dir)
|
||||
|
||||
add_custom_target(server_layout ALL DEPENDS ${CMAKE_BINARY_DIR}/server)
|
||||
|
||||
if(${CMAKE_BUILD_TYPE} STREQUAL "Debug")
|
||||
add_custom_command(TARGET server_layout POST_BUILD
|
||||
COMMAND ln -fs ${CMAKE_BINARY_DIR}/../${CMAKE_BUILD_TYPE}/bin/netcoreapp3.0/linux-x64/sparkcmd ${CMAKE_BINARY_DIR}/server/ )
|
||||
else()
|
||||
add_custom_command(TARGET server_layout POST_BUILD
|
||||
COMMAND ln -fs ${CMAKE_BINARY_DIR}/../${CMAKE_BUILD_TYPE}/bin/netcoreapp3.0/linux-x64/publish/sparkcmd ${CMAKE_BINARY_DIR}/server/ )
|
||||
endif()
|
||||
|
||||
endif()
|
||||
@@ -71,12 +71,12 @@ The first step is to start the spark_sdk Docker container with the examples dire
|
||||
|
||||
Windows Command Prompt:
|
||||
{% clipable() %}
|
||||
docker run --rm -it -v %CD%:/examples -u bts -w /examples --shm-size 2048m --name spark_sdk -h spark_sdk --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -p 9000:9000 -p 9001:9001 spark_sdk bash
|
||||
docker run --rm -it -v %CD%:/examples -u bts -w /examples --shm-size 1024m --name spark_sdk -h spark_sdk --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -p 9000:9000 -p 9001:9001 spark_sdk bash
|
||||
{% end %}
|
||||
|
||||
**Powershell** / Linux / Mac:
|
||||
{% clipable() %}
|
||||
docker run --rm -it -v ${PWD}:/examples -u bts -w /examples --shm-size 2048m --name spark_sdk -h spark_sdk --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -p 9000:9000 -p 9001:9001 spark_sdk bash
|
||||
docker run --rm -it -v ${PWD}:/examples -u bts -w /examples --shm-size 1024m --name spark_sdk -h spark_sdk --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -p 9000:9000 -p 9001:9001 spark_sdk bash
|
||||
{% end %}
|
||||
|
||||
### Attach
|
||||
|
||||
@@ -1 +1 @@
|
||||
set(sources /home/ppinto/Dropbox/bts/spark/doc/user/build.sh;content/_index.md;content/bts_spark/Glossary/_index.md;content/bts_spark/Help/_index.md;content/bts_spark/Help/about_spark.png;content/bts_spark/Help/image39.png;content/bts_spark/Help/image58.png;content/bts_spark/Launcher/_index.md;content/bts_spark/Launcher/image38.png;content/bts_spark/Launcher/image68.png;content/bts_spark/Logging-In-to-the-System/_index.md;content/bts_spark/Logging-In-to-the-System/image3.png;content/bts_spark/Logging-In-to-the-System/image64.png;content/bts_spark/Market/_index.md;content/bts_spark/Market/change_securities.png;content/bts_spark/Market/image11.png;content/bts_spark/Market/image14.png;content/bts_spark/Market/image20.png;content/bts_spark/Market/image21.png;content/bts_spark/Market/image23.png;content/bts_spark/Market/image24.png;content/bts_spark/Market/image34.png;content/bts_spark/Market/image49.png;content/bts_spark/Market/image53.png;content/bts_spark/Market/image66.png;content/bts_spark/Market/image69.png;content/bts_spark/Market/market_view.png;content/bts_spark/Market/settings_icon.png;content/bts_spark/Market/time_and_sales.png;content/bts_spark/My-Windows/_index.md;content/bts_spark/My-Windows/image15.png;content/bts_spark/My-Windows/image16.png;content/bts_spark/My-Windows/image37.png;content/bts_spark/Settings/_index.md;content/bts_spark/Settings/image51.png;content/bts_spark/Settings/image9.png;content/bts_spark/Spreader/_index.md;content/bts_spark/Spreader/image10.png;content/bts_spark/Spreader/image13.png;content/bts_spark/Spreader/image18.png;content/bts_spark/Spreader/image19.png;content/bts_spark/Spreader/image28.png;content/bts_spark/Spreader/image29.png;content/bts_spark/Spreader/image31.png;content/bts_spark/Spreader/image35.png;content/bts_spark/Spreader/image40.png;content/bts_spark/Spreader/image43.png;content/bts_spark/Spreader/image54.png;content/bts_spark/Spreader/image55.png;content/bts_spark/Spreader/image56.png;content/bts_spark/Spreader/image6.png;content/bts_spark/Spreader/image7.png;content/bts_spark/Spreader/image70.png;content/bts_spark/Spreader/image72.png;content/bts_spark/Spreader/image8.png;content/bts_spark/Trading/OrderTypes/index.md;content/bts_spark/Trading/_index.md;content/bts_spark/Trading/algo_studio.png;content/bts_spark/Trading/collapse_all_icon.png;content/bts_spark/Trading/cover_algo_control.png;content/bts_spark/Trading/expand_all_icon.png;content/bts_spark/Trading/image1.png;content/bts_spark/Trading/image17.png;content/bts_spark/Trading/image2.png;content/bts_spark/Trading/image25.png;content/bts_spark/Trading/image27.png;content/bts_spark/Trading/image33.png;content/bts_spark/Trading/image42.png;content/bts_spark/Trading/image44.png;content/bts_spark/Trading/image47.png;content/bts_spark/Trading/image48.png;content/bts_spark/Trading/image5.png;content/bts_spark/Trading/image50.png;content/bts_spark/Trading/image52.png;content/bts_spark/Trading/image57.png;content/bts_spark/Trading/image59.png;content/bts_spark/Trading/image60.png;content/bts_spark/Trading/image61.png;content/bts_spark/Trading/image62.png;content/bts_spark/Trading/image73.png;content/bts_spark/Trading/image74.png;content/bts_spark/Trading/join_algo_control.png;content/bts_spark/Trading/ladder.png;content/bts_spark/Trading/ladder_badges.png;content/bts_spark/Trading/ladder_main_part.png;content/bts_spark/Trading/lean_algo_control.png;content/bts_spark/Trading/mini_orderbook.png;content/bts_spark/Trading/oco_algo_control.png;content/bts_spark/Trading/offset_algo_control.png;content/bts_spark/Trading/pnl_calculation.png;content/bts_spark/Trading/pnl_window.png;content/bts_spark/Trading/recreate_icon.png;content/bts_spark/Trading/settings_icon.png;content/bts_spark/Trading/spark_menu_order_book.png;content/bts_spark/Trading/top_algo_control.png;content/bts_spark/Trading/trigger_algo_control.png;content/bts_spark/_index.md;content/release_notes/_index.md;content/system_requirements/_index.md;static/book.js;static/favicon.ico;static/image.js;templates/index.html;templates/page.html;templates/section.html;templates/shortcodes/back_button.html)
|
||||
set(sources /home/bts/spark/doc/user/build.sh;content/_index.md;content/bts_spark/Glossary/_index.md;content/bts_spark/Help/_index.md;content/bts_spark/Help/about_spark.png;content/bts_spark/Help/image39.png;content/bts_spark/Help/image58.png;content/bts_spark/Launcher/_index.md;content/bts_spark/Launcher/image38.png;content/bts_spark/Launcher/image68.png;content/bts_spark/Logging-In-to-the-System/_index.md;content/bts_spark/Logging-In-to-the-System/image3.png;content/bts_spark/Logging-In-to-the-System/image64.png;content/bts_spark/Market/_index.md;content/bts_spark/Market/change_securities.png;content/bts_spark/Market/image11.png;content/bts_spark/Market/image14.png;content/bts_spark/Market/image20.png;content/bts_spark/Market/image21.png;content/bts_spark/Market/image23.png;content/bts_spark/Market/image24.png;content/bts_spark/Market/image34.png;content/bts_spark/Market/image49.png;content/bts_spark/Market/image53.png;content/bts_spark/Market/image66.png;content/bts_spark/Market/image69.png;content/bts_spark/Market/market_view.png;content/bts_spark/Market/settings_icon.png;content/bts_spark/Market/time_and_sales.png;content/bts_spark/My-Windows/_index.md;content/bts_spark/My-Windows/image15.png;content/bts_spark/My-Windows/image16.png;content/bts_spark/My-Windows/image37.png;content/bts_spark/Settings/_index.md;content/bts_spark/Settings/image51.png;content/bts_spark/Settings/image9.png;content/bts_spark/Spreader/_index.md;content/bts_spark/Spreader/image10.png;content/bts_spark/Spreader/image13.png;content/bts_spark/Spreader/image18.png;content/bts_spark/Spreader/image19.png;content/bts_spark/Spreader/image28.png;content/bts_spark/Spreader/image29.png;content/bts_spark/Spreader/image31.png;content/bts_spark/Spreader/image35.png;content/bts_spark/Spreader/image40.png;content/bts_spark/Spreader/image43.png;content/bts_spark/Spreader/image54.png;content/bts_spark/Spreader/image55.png;content/bts_spark/Spreader/image56.png;content/bts_spark/Spreader/image6.png;content/bts_spark/Spreader/image7.png;content/bts_spark/Spreader/image70.png;content/bts_spark/Spreader/image72.png;content/bts_spark/Spreader/image8.png;content/bts_spark/Trading/OrderTypes/index.md;content/bts_spark/Trading/_index.md;content/bts_spark/Trading/algo_studio.png;content/bts_spark/Trading/collapse_all_icon.png;content/bts_spark/Trading/cover_algo_control.png;content/bts_spark/Trading/expand_all_icon.png;content/bts_spark/Trading/image1.png;content/bts_spark/Trading/image17.png;content/bts_spark/Trading/image2.png;content/bts_spark/Trading/image25.png;content/bts_spark/Trading/image27.png;content/bts_spark/Trading/image33.png;content/bts_spark/Trading/image42.png;content/bts_spark/Trading/image44.png;content/bts_spark/Trading/image47.png;content/bts_spark/Trading/image48.png;content/bts_spark/Trading/image5.png;content/bts_spark/Trading/image50.png;content/bts_spark/Trading/image52.png;content/bts_spark/Trading/image57.png;content/bts_spark/Trading/image59.png;content/bts_spark/Trading/image60.png;content/bts_spark/Trading/image61.png;content/bts_spark/Trading/image62.png;content/bts_spark/Trading/image73.png;content/bts_spark/Trading/image74.png;content/bts_spark/Trading/join_algo_control.png;content/bts_spark/Trading/ladder.png;content/bts_spark/Trading/ladder_badges.png;content/bts_spark/Trading/ladder_main_part.png;content/bts_spark/Trading/lean_algo_control.png;content/bts_spark/Trading/mini_orderbook.png;content/bts_spark/Trading/oco_algo_control.png;content/bts_spark/Trading/offset_algo_control.png;content/bts_spark/Trading/pnl_calculation.png;content/bts_spark/Trading/pnl_window.png;content/bts_spark/Trading/recreate_icon.png;content/bts_spark/Trading/settings_icon.png;content/bts_spark/Trading/spark_menu_order_book.png;content/bts_spark/Trading/top_algo_control.png;content/bts_spark/Trading/trigger_algo_control.png;content/bts_spark/_index.md;content/release_notes/_index.md;content/system_requirements/_index.md;static/book.js;static/favicon.ico;static/image.js;templates/index.html;templates/page.html;templates/section.html;templates/shortcodes/back_button.html)
|
||||
+1
-1
Submodule docker/linux updated: 68f43cef8d...e106e6e704.
+1
-1
Submodule externals updated: 6d8f64ca5c...af352fd677.
@@ -0,0 +1,19 @@
|
||||
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
project(spark_client)
|
||||
include(${CMAKE_SOURCE_DIR}/tools/safe_dep_glob.cmake)
|
||||
|
||||
file(GLOB_RECURSE spark_client_sources RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cs)
|
||||
file(GLOB_RECURSE spark_client_csproj RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.csproj)
|
||||
file(GLOB_RECURSE spark_ui_sources RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} spark/*.cs)
|
||||
file(GLOB_RECURSE spark_ui_csproj RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} spark/*.csproj)
|
||||
list(REMOVE_ITEM spark_ui_sources ${spark_client_sources} )
|
||||
list(REMOVE_ITEM spark_ui_csproj ${spark_client_csproj} )
|
||||
|
||||
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/../
|
||||
COMMAND /bin/bash ${CMAKE_CURRENT_SOURCE_DIR}/build_spark_dotnetcore.sh
|
||||
ARGS ${CMAKE_BUILD_TYPE} ${CMAKE_BINARY_DIR}
|
||||
COMMENT "Building sparkcmd in netcore3"
|
||||
DEPENDS libspark ${spark_client_sources} ${spark_client_csproj} ${CMAKE_CURRENT_SOURCE_DIR}/build_spark_dotnetcore.sh)
|
||||
|
||||
add_custom_target(spark_client_dir ALL DEPENDS ${CMAKE_BINARY_DIR}/../)
|
||||
@@ -5,6 +5,7 @@
|
||||
<SparkRoot>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)\..\..))</SparkRoot>
|
||||
<SourceRoot>$([System.IO.Path]::GetFullPath($(SparkRoot)\src))</SourceRoot>
|
||||
<Externals>$(SparkRoot)\externals\windows</Externals>
|
||||
<Externals Condition=" '$(OS)' != 'Windows_NT' ">$(SparkRoot)/externals/linux</Externals>
|
||||
<DepotName>$([System.IO.Path]::GetFileName($([System.IO.Path]::GetFullPath($(SparkRoot)))))</DepotName>
|
||||
<ErrorReport>None</ErrorReport>
|
||||
<Prefer32Bit>False</Prefer32Bit>
|
||||
@@ -19,20 +20,25 @@
|
||||
<OutputPath>$(BaseOutputPath)\bin</OutputPath>
|
||||
<BaseIntermediateOutputPath>$(BaseOutputPath)\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
||||
<IntermediateOutputPath>$(BaseOutputPath)\obj\$(MSBuildProjectName)</IntermediateOutputPath>
|
||||
<BaseIntermediateOutputPath Condition=" '$(OS)' != 'Windows_NT' ">$(BaseOutputPath)\linuxobj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
||||
<IntermediateOutputPath Condition=" '$(OS)' != 'Windows_NT' ">$(BaseOutputPath)\linuxobj\$(MSBuildProjectName)</IntermediateOutputPath>
|
||||
<GenDir>$(BaseOutputPath)\gen\$(MSBuildProjectName)</GenDir>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
<Import Project="$(ComputerSpecificConfig)" Condition="Exists($(ComputerSpecificConfig))" />
|
||||
|
||||
<ItemGroup>
|
||||
<AvailableItemName Include="Proto2">
|
||||
<Targets>CompileProto3</Targets>
|
||||
<Targets Condition=" '$(OS)' == 'Windows_NT' " >CompileProto2</Targets>
|
||||
<Targets Condition=" '$(OS)' != 'Windows_NT' " >CompileProto2Linux</Targets>
|
||||
</AvailableItemName>
|
||||
<AvailableItemName Include="Proto3">
|
||||
<Targets>CompileProto3</Targets>
|
||||
<Targets Condition=" '$(OS)' == 'Windows_NT' " >CompileProto3</Targets>
|
||||
<Targets Condition=" '$(OS)' != 'Windows_NT' " >CompileProto3Linux</Targets>
|
||||
</AvailableItemName>
|
||||
<AvailableItemName Include="Proto3Excel">
|
||||
<Targets>CompileProto3Excel</Targets>
|
||||
<Targets Condition=" '$(OS)' == 'Windows_NT' ">CompileProto3Excel</Targets>
|
||||
</AvailableItemName>
|
||||
</ItemGroup>
|
||||
|
||||
@@ -43,6 +49,14 @@
|
||||
<protogen>$(Externals)\bin\protogen.exe</protogen>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Label="ProtoBuf" Condition=" '$(OS)' != 'Windows_NT' ">
|
||||
<ProtocPluginBase>$(SparkRoot)/src/lib/api/service_compiler</ProtocPluginBase>
|
||||
<ProtoInclude>$(Externals)/include</ProtoInclude>
|
||||
<protoc>$(Externals)/bin/protoc</protoc>
|
||||
<protoc_rename>$(Externals)/bin/lowercase_files.sh</protoc_rename>
|
||||
<protogen>$(Externals)/bin/protogen</protogen>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemDefinitionGroup>
|
||||
<Proto2>
|
||||
</Proto2>
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
|
||||
<Target Name="CompileProto2"
|
||||
Condition="'@(Proto2)'!=''"
|
||||
Condition="'@(Proto2)'!='' AND '$(OS)' == 'Windows_NT' "
|
||||
Inputs="$(MSBuildProjectFile);$(protogen);%(Proto2.FullPath)"
|
||||
Outputs="$(GenDir)\proto2\%(Proto2.filename).cs"
|
||||
AfterTargets="PreBuildEvent">
|
||||
@@ -28,7 +28,7 @@
|
||||
passes wipes out the additional compile includes that we add.
|
||||
-->
|
||||
<Target Name="CompileProto3" AfterTargets="GetAssemblyVersion"
|
||||
Condition="'@(Proto3)'!=''"
|
||||
Condition="'@(Proto3)'!='' AND '$(OS)' == 'Windows_NT' "
|
||||
Inputs="$(protoc);
|
||||
%(Proto3.Identity);$(ProtocPluginBase)\plugin.py;
|
||||
$(ProtocPluginBase)\templates\c#\client.pb.cs;
|
||||
@@ -58,7 +58,7 @@
|
||||
</Target>
|
||||
|
||||
<Target Name="CompileProto3Excel" AfterTargets="GetAssemblyVersion"
|
||||
Condition="'@(Proto3Excel)'!=''"
|
||||
Condition="'@(Proto3Excel)'!='' AND '$(OS)' == 'Windows_NT' "
|
||||
Inputs="$(protoc);
|
||||
%(Proto3Excel.Identity);$(ProtocPluginBase)\plugin.py;
|
||||
$(ProtocPluginBase)\templates\excel\excel.pb.cs;"
|
||||
@@ -82,12 +82,74 @@
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
|
||||
<Target Name="CompileProto2Linux"
|
||||
Condition="'@(Proto2)'!='' AND '$(OS)' != 'Windows_NT' "
|
||||
Inputs="$(MSBuildProjectFile);$(protogen);%(Proto2.FullPath)"
|
||||
Outputs="$(GenDir)/proto2/%(Proto2.filename).cs"
|
||||
AfterTargets="PreBuildEvent">
|
||||
<PropertyGroup>
|
||||
<SourceRelativeFile>$([System.String]::Copy('%(proto2.fullpath)').Replace($(SourceRoot), ''))</SourceRelativeFile>
|
||||
<SourceRelativeDir>$([System.IO.Path]::GetDirectoryName($(SourceRelativeFile)))</SourceRelativeDir>
|
||||
<WorkingDirectory>$(GenDir)/proto2</WorkingDirectory>
|
||||
</PropertyGroup>
|
||||
<MakeDir Directories="$(WorkingDirectory)" />
|
||||
<Copy SourceFiles="%(Proto2.FullPath)" DestinationFolder="$(WorkingDirectory)" SkipUnchangedFiles="True" UseHardLinksIfPossible="True" />
|
||||
<Error Text="protogen.exe does not exist. If you forgot to clone with externals try: git submodule update --init --recursive" Condition="!Exists($(protogen))" />
|
||||
<Message Importance="High" Text="Doing Proto2 %(proto2.filename)" />
|
||||
<Exec Command="$(Protogen) %(Proto2.filename)%(proto2.extension) --csharp_out=. -I. -I$(SourceRoot) -I$(Externals)/include"
|
||||
WorkingDirectory="$(WorkingDirectory)" />
|
||||
<ItemGroup>
|
||||
<Compile Include="$(WorkingDirectory)/%(Proto2.filename).cs" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="CompileProto3Linux" AfterTargets="GetAssemblyVersion"
|
||||
Condition="'@(Proto3)'!='' AND '$(OS)' != 'Windows_NT' "
|
||||
Inputs="$(protoc);
|
||||
%(Proto3.Identity);$(ProtocPluginBase)/plugin.py;
|
||||
$(ProtocPluginBase)/templates/c#/client.pb.cs;
|
||||
$(ProtocPluginBase)/templates/c#/server.pb.cs;
|
||||
$(ProtocPluginBase)/templates/c#/immutable.pb.cs;"
|
||||
Outputs="%(Proto3.OutCS);%(Proto3.OutCSServer);%(Proto3.OutCSClient);%(Proto3.OutCSImmutable)">
|
||||
<MakeDir Directories="%(Proto3.OutBase)" />
|
||||
<MakeDir Directories="$(IntermediateOutputPath)/gen" />
|
||||
|
||||
<Message Importance="High" Text="Generating service %(Proto3.FileName)" />
|
||||
<Exec Command="
|
||||
PYTHONPATH=$(Externals)/python $(protoc) \
|
||||
%(Proto3.FullPath) \
|
||||
--error_format=gcc \
|
||||
--proto_path=$(protoinc):$(SourceRoot) \
|
||||
--plugin='protoc-gen-service=$(ProtocPluginBase)/plugin.py' \
|
||||
--service_out=lang=c#,strip_out_path=1:%(Proto3.OutBase) \
|
||||
--csharp_out=%(CompileOptions)%(Proto3.OutBase)"
|
||||
WorkingDirectory="%(relativedir)" />
|
||||
|
||||
<!-- <Exec Command="$(protoc_rename) %(Proto3.OutBase)" /> -->
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="%(Proto3.OutCS)" />
|
||||
<Compile Include="%(Proto3.OutCSClient)" />
|
||||
<Compile Include="%(Proto3.OutCSServer)" />
|
||||
<Compile Include="%(Proto3.OutCSImmutable)" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<!-- <Target Name="RenameProto3Linux" AfterTargets="CompileProto3Linux"
|
||||
Condition="'@(Proto3)'!='' AND '$(OS)' != 'Windows_NT' ">
|
||||
<Move SourceFiles="$(OutBase)\Apicore.cs" DestinationFiles="$(OutBase)\apicore.cs" />
|
||||
<Move SourceFiles="$(OutBase)\Apioptions.cs" DestinationFiles="$(OutBase)\apioptions.cs" />
|
||||
<Move SourceFiles="$(OutBase)\Co2.cs" DestinationFiles="$(OutBase)\co2.cs" />
|
||||
</Target> -->
|
||||
|
||||
|
||||
<Target Name="AfterClean" AfterTargets="Clean">
|
||||
<Delete Files="%(Proto3.OutCS)" />
|
||||
<Delete Files="%(Proto3.OutCSClient)" />
|
||||
<Delete Files="%(Proto3.OutCSServer)" />
|
||||
<Delete Files="%(Proto3.OutCSImmutable)" />
|
||||
<Delete Files="$(GenDir)\proto2\*" />
|
||||
<Delete Files="$(GenDir)/proto2/*" />
|
||||
<Delete Files="%(Proto3Excel.OutCSExcel)" />
|
||||
</Target>
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
#$1 = Debug / Release (CMAKE_BUILD_TYPE), $2 = CMAKE_BINARY_DIR
|
||||
cd "$(dirname "$0")"
|
||||
echo $PWD dotnet build -c $1 ./sparkcmd/
|
||||
dotnet build -c $1 -o $2/../$1/bin/netcoreapp3.0/linux-x64 ./sparkcmd/
|
||||
|
||||
if [ "$1" == "Release" ]
|
||||
then
|
||||
dotnet publish -c $1 -o $2/../$1/bin/netcoreapp3.0/linux-x64 ./sparkcmd/
|
||||
ln -fs $2/src/lib/libspark.so $2/../$1/bin/netcoreapp3.0/linux-x64/publish
|
||||
fi
|
||||
|
||||
ln -fs $2/src/lib/libspark.so $2/../$1/bin/netcoreapp3.0/linux-x64
|
||||
@@ -1,2 +0,0 @@
|
||||
dotnet pack
|
||||
dotnet nuget push
|
||||
@@ -25,7 +25,7 @@
|
||||
<Proto3 Include="../../lib/api/*.proto" />
|
||||
<Proto3 Include="../../lib/api/services/*.proto" />
|
||||
<!--Proto3 Remove="../../lib/api/services/MarketDataRelay.proto" /-->
|
||||
<Proto3 Include="../../lib/md/protos/co2.proto" />
|
||||
<Proto3 Include="../../lib/md/protos/Co2.proto" />
|
||||
<Proto3 Include="../../lib/domain_model/Security.proto" />
|
||||
<Proto3 Include="../../lib/sparkproto/SparkProtos.proto" />
|
||||
<Proto3 Update="../../lib/api/services/OutOfProcessURLListener.proto">
|
||||
|
||||
@@ -28,5 +28,8 @@ namespace bts.utils
|
||||
|
||||
[DllImport("libspark")]
|
||||
public static extern bool initialize_nothrow(StringBuilder buffer, int length);
|
||||
|
||||
//public static string bts_data_path()
|
||||
//use mbts.config.Configuration.get<bts.config.System>().data_path;
|
||||
}
|
||||
}
|
||||
@@ -70,10 +70,13 @@ namespace bts.test {
|
||||
psi.RedirectStandardOutput = true;
|
||||
psi.RedirectStandardError = true;
|
||||
psi.UseShellExecute = false;
|
||||
|
||||
|
||||
try{
|
||||
var p = Process.Start(psi);
|
||||
p.WaitForExit((int)time_out.TotalMilliseconds);
|
||||
var errorlevel = p.ExitCode;
|
||||
string stdout = p.StandardOutput.ReadToEnd();
|
||||
string stderr = p.StandardError.ReadToEnd();
|
||||
if (p.HasExited) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<TargetFrameworks>netstandard2.0</TargetFrameworks>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<Platforms>x64</Platforms>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netcoreapp2.1;net471</TargetFrameworks>
|
||||
<TargetFrameworks>net471</TargetFrameworks>
|
||||
<RuntimeIdentifiers>win7-x64</RuntimeIdentifiers>
|
||||
|
||||
<TargetFrameworks Condition = " '$(OS)' != 'Windows_NT' ">netcoreapp3.0</TargetFrameworks>
|
||||
<RuntimeIdentifier Condition = " '$(OS)' != 'Windows_NT' ">linux-x64</RuntimeIdentifier>
|
||||
<PublishTrimmed>true</PublishTrimmed>
|
||||
<PublishSingleFile>true</PublishSingleFile>
|
||||
|
||||
<OutputType>Exe</OutputType>
|
||||
<GeneratePackageOnBuild Condition="$(Configuration) == 'Release' or $(Configuration) == 'Release'">true</GeneratePackageOnBuild>
|
||||
<PackageOutputPath>$(OutputPath)\net471</PackageOutputPath>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<TargetFrameworks>netstandard2.0</TargetFrameworks>
|
||||
<Platform>x64</Platform>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
|
||||
@@ -2,8 +2,13 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFrameworks>net471;netcoreapp2.1</TargetFrameworks>
|
||||
<RuntimeIdentifiers>win7-x64;ubuntu.16.04-x64</RuntimeIdentifiers>
|
||||
<TargetFramework>net471</TargetFramework>
|
||||
|
||||
<TargetFramework Condition = " '$(OS)' != 'Windows_NT' ">netcoreapp3.0</TargetFramework>
|
||||
<RuntimeIdentifier Condition = " '$(OS)' != 'Windows_NT' ">linux-x64</RuntimeIdentifier>
|
||||
<PublishTrimmed>true</PublishTrimmed>
|
||||
<PublishSingleFile>true</PublishSingleFile>
|
||||
|
||||
<Authors>Blue Trading Systems</Authors>
|
||||
<Company>Blue Trading Systems</Company>
|
||||
<Product>Spark</Product>
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
set(sources files/cert_secure_logon.txt;files/futures.coconut.xz;files/onixs_ice/ConnectivityConfiguration.APITest.xml;files/onixs_ice/ConnectivityConfiguration.PerfTest.xml;files/onixs_ice/ConnectivityConfiguration.Production.xml;files/perf_trace/compiled.css;files/perf_trace/index.html;files/perf_trace/jquery-3.3.1.min.js;files/perf_trace/main.js;files/perf_trace/perf_log.sql;files/perf_trace/perf_trace_analysis.sql;files/perf_trace/plotly-latest.min.js)
|
||||
@@ -1 +0,0 @@
|
||||
set(sources api/apicore.proto;api/apigateway.proto;api/apioptions.proto;api/core/ApiClientInterop.cpp;api/core/ApiServerInterop.cpp;api/public/ApiServer.cpp;api/public/ClientChannel.cpp;api/public/QuickbusClientChannel.cpp;api/public/ServerChannel.cpp;api/public/ServiceContext.cpp;api/service_helpers/AdminServiceUtils.cpp;api/service_helpers/AlgoServiceUtils.cpp;api/service_helpers/PositionUtilities.cpp;api/services/AdminService.proto;api/services/AlgoDefinitionService.proto;api/services/AlgoService.proto;api/services/ApiUnitTestService.proto;api/services/AuthService.proto;api/services/BasePositionService.proto;api/services/ErrorReportService.proto;api/services/HelloService.proto;api/services/MBOService.proto;api/services/MarginService.proto;api/services/MarketDataAuxiliaryService.proto;api/services/MarketDataRelay.proto;api/services/MoneyFileService.proto;api/services/OrderService.proto;api/services/OutOfProcessURLListener.proto;api/services/PersistenceService.proto;api/services/PositionService.proto;api/services/ShellDiagnosticService.proto;api/services/ShellLatencyService.proto;api/services/SyntheticSecurityService.proto;api/test/ApiTests.cpp;api/test/HelloServiceServer.cpp;config/ConfigCheck.cpp;config/ConfigDownloader.cpp;config/ConfigErrorCollector.cpp;config/ConfigLog.cpp;config/ConfigPropertyEvaluator.cpp;config/ConfigValueQueue.cpp;config/ConfigurationException.cpp;config/ConfigurationState.cpp;config/PreprocessInputStream.cpp;config/config.cpp;config/defaults/MarketData.conf;config/defaults/Ports.conf;config/defaults/Symbols.conf;config/defaults/cme_reference_data.conf;config/defaults/edge.conf;config/defaults/jetfix.conf;config/defaults/keycode.conf;config/defaults/logging.conf;config/defaults/orderman_cfg.conf;config/defaults/orders_fills_cleanup.conf;config/defaults/position_cfg.conf;config/defaults/span.conf;config/defaults/spreader.conf;config/defaults/testkeys.conf;config/defaults/threads.conf;config/defaults/toggles.conf;config/extensions/extensions.proto;config/invalid/invalid.proto;config/protos/ExchangeSimCfg.proto;config/protos/MarketData.proto;config/protos/Ports.proto;config/protos/Symbols.proto;config/protos/UI.proto;config/protos/cme_reference_data.proto;config/protos/jetfix.proto;config/protos/keycode.proto;config/protos/logging.proto;config/protos/mercury_cfg.proto;config/protos/orderman_cfg.proto;config/protos/orders_fills_cleanup.proto;config/protos/perflog_cfg.proto;config/protos/position_cfg.proto;config/protos/quickbus_cfg.proto;config/protos/span.proto;config/protos/spreader.proto;config/protos/subprocess.proto;config/protos/system.proto;config/protos/testkeys.proto;config/protos/threads.proto;config/protos/toggles.proto;config/tests/HTTPServer.cpp;config/tests/config_ref_tests.cpp;config/tests/config_tests.cpp;config/text_format/text_format.cpp;domain_model/Security.cpp;domain_model/Security.proto;domain_model/SecurityTests.cpp;domain_model/sod.cpp;domain_model/tests/domain_tests.cpp;expression/BooleanGrammar.cpp;expression/ExpressionEvaluator.cpp;expression/ParserExceptions.cpp;expression/Value.cpp;expression/tests/expression_parser_tests.cpp;jetfix/codec/FIXArray.cpp;jetfix/common/OutFIX.cpp;jetfix/connection/AsyncReader.cpp;jetfix/connection/IConnection.cpp;jetfix/connection/SocketConnection.cpp;jetfix/gateway/CoreGateway.cpp;jetfix/gateway/JetFIXGateway.cpp;jetfix/gateway/Session.cpp;jetfix/store/FIXFileStore.cpp;jetfix/store/session_name.cpp;jetfix/tests/async_reader_tests.cpp;jetfix/tests/decoding_tests.cpp;jetfix/tests/fix_encoding_stream_tests.cpp;jetfix/tests/fix_fragment_tests.cpp;jetfix/tests/jetfix_performance_tests.cpp;jetfix/tests/sample_fix.cpp;jetfix/tests/store_tests.cpp;logging/LoggerHub.cpp;logging/Sink.cpp;logging/logging.cpp;logging/tests/logging_tests.cpp;md/Diag/MDPeriodicDumper.cpp;md/Diag/ShmDumper.cpp;md/MBOProcessor.cpp;md/MBOServiceServer.cpp;md/MDClient.cpp;md/MDConsumer.cpp;md/MDConsumerHandle.cpp;md/MDConsumerInterop.cpp;md/MDProducer.cpp;md/MDProducerHandle.cpp;md/MemorySegmentUtils.cpp;md/PlatformLoader.cpp;md/PriceSize.cpp;md/SecurityCache.cpp;md/SecurityDB.cpp;md/SecurityIDRecorder.cpp;md/SecurityMapper.cpp;md/SecurityOracle.cpp;md/SettlementRecorder.cpp;md/Shm/FixedSecurity.cpp;md/SyntheticSecurityService.cpp;md/cme/MDP3Utils.cpp;md/common.cpp;md/ice/ICEUtils.cpp;md/protos/co2.proto;md/relay/QueryServer.cpp;md/relay/RelayClient.cpp;md/relay/RelayRecorder.cpp;md/test/Co2ManagedTestHelper.cpp;md/test/Co2TestInstrument.cpp;md/test/mbo_tests.cpp;md/test/md2_tests.cpp;md/test/md_test_utils.cpp;md/test/synthetic_book_merge_tests.cpp;md/vendor/OnixsUtils.cpp;mercury/actors/IPollableActor.cpp;mercury/broker/Broker.cpp;mercury/broker/BrokerProxy.cpp;mercury/broker/ILocalBroker.cpp;mercury/broker/IRemoteBroker.cpp;mercury/common/mercury_common.cpp;mercury/events/TimerEvent.cpp;mercury/executor/Executor.cpp;mercury/topics/Topic.cpp;metrics/metrics.cpp;metrics/system_metrics.cpp;orderman/actors/AsyncFactory.cpp;orderman/actors/FillStore.cpp;ordermanLine truncated
|
||||
@@ -1 +1 @@
|
||||
set(sources api/apicore.proto;api/apigateway.proto;api/apioptions.proto;api/core/ApiClientInterop.cpp;api/core/ApiServerInterop.cpp;api/public/ApiServer.cpp;api/public/ClientChannel.cpp;api/public/QuickbusClientChannel.cpp;api/public/ServerChannel.cpp;api/public/ServiceContext.cpp;api/service_helpers/AdminServiceUtils.cpp;api/service_helpers/AlgoServiceUtils.cpp;api/service_helpers/PositionUtilities.cpp;api/services/AdminService.proto;api/services/AlgoDefinitionService.proto;api/services/AlgoService.proto;api/services/ApiUnitTestService.proto;api/services/AuthService.proto;api/services/BasePositionService.proto;api/services/ErrorReportService.proto;api/services/HelloService.proto;api/services/MBOService.proto;api/services/MarginService.proto;api/services/MarketDataAuxiliaryService.proto;api/services/MarketDataRelay.proto;api/services/MoneyFileService.proto;api/services/OrderService.proto;api/services/OutOfProcessURLListener.proto;api/services/PersistenceService.proto;api/services/PositionService.proto;api/services/ShellDiagnosticService.proto;api/services/ShellLatencyService.proto;api/services/SyntheticSecurityService.proto;api/test/ApiTests.cpp;api/test/HelloServiceServer.cpp;config/ConfigCheck.cpp;config/ConfigDownloader.cpp;config/ConfigErrorCollector.cpp;config/ConfigLog.cpp;config/ConfigPropertyEvaluator.cpp;config/ConfigValueQueue.cpp;config/ConfigurationException.cpp;config/ConfigurationState.cpp;config/PreprocessInputStream.cpp;config/config.cpp;config/defaults/MarketData.conf;config/defaults/Ports.conf;config/defaults/Symbols.conf;config/defaults/cme_reference_data.conf;config/defaults/edge.conf;config/defaults/jetfix.conf;config/defaults/keycode.conf;config/defaults/logging.conf;config/defaults/orderman_cfg.conf;config/defaults/orders_fills_cleanup.conf;config/defaults/position_cfg.conf;config/defaults/span.conf;config/defaults/spreader.conf;config/defaults/testkeys.conf;config/defaults/threads.conf;config/defaults/toggles.conf;config/extensions/extensions.proto;config/invalid/invalid.proto;config/protos/ExchangeSimCfg.proto;config/protos/MarketData.proto;config/protos/Ports.proto;config/protos/Symbols.proto;config/protos/UI.proto;config/protos/cme_reference_data.proto;config/protos/jetfix.proto;config/protos/keycode.proto;config/protos/logging.proto;config/protos/mercury_cfg.proto;config/protos/orderman_cfg.proto;config/protos/orders_fills_cleanup.proto;config/protos/perflog_cfg.proto;config/protos/position_cfg.proto;config/protos/quickbus_cfg.proto;config/protos/span.proto;config/protos/spreader.proto;config/protos/subprocess.proto;config/protos/system.proto;config/protos/testkeys.proto;config/protos/threads.proto;config/protos/toggles.proto;config/tests/HTTPServer.cpp;config/tests/config_ref_tests.cpp;config/tests/config_tests.cpp;config/text_format/text_format.cpp;domain_model/Security.cpp;domain_model/Security.proto;domain_model/SecurityTests.cpp;domain_model/sod.cpp;domain_model/tests/domain_tests.cpp;expression/BooleanGrammar.cpp;expression/ExpressionEvaluator.cpp;expression/ParserExceptions.cpp;expression/Value.cpp;expression/tests/expression_parser_tests.cpp;logging/LoggerHub.cpp;logging/Sink.cpp;logging/logging.cpp;logging/tests/logging_tests.cpp;md/Diag/MDPeriodicDumper.cpp;md/Diag/ShmDumper.cpp;md/MBOProcessor.cpp;md/MBOServiceServer.cpp;md/MDClient.cpp;md/MDConsumer.cpp;md/MDConsumerHandle.cpp;md/MDConsumerInterop.cpp;md/MDProducer.cpp;md/MDProducerHandle.cpp;md/MemorySegmentUtils.cpp;md/PlatformLoader.cpp;md/PriceSize.cpp;md/SecurityCache.cpp;md/SecurityDB.cpp;md/SecurityIDRecorder.cpp;md/SecurityMapper.cpp;md/SecurityOracle.cpp;md/SettlementRecorder.cpp;md/Shm/FixedSecurity.cpp;md/SyntheticSecurityService.cpp;md/cme/MDP3Utils.cpp;md/common.cpp;md/ice/ICEUtils.cpp;md/protos/co2.proto;md/relay/QueryServer.cpp;md/relay/RelayClient.cpp;md/relay/RelayRecorder.cpp;md/test/Co2ManagedTestHelper.cpp;md/test/Co2TestInstrument.cpp;md/test/mbo_tests.cpp;md/test/md2_tests.cpp;md/test/md_test_utils.cpp;md/test/synthetic_book_merge_tests.cpp;md/vendor/OnixsUtils.cpp;os/os.cpp;os/tests/os_tests.cpp;quickbus/core/LocalNode.cpp;quickbus/core/Quickbus.cpp;quickbus/core/SubscriptionID.cpp;quickbus/core/TableID.cpp;quickbus/message_model/Update.cpp;quickbus/message_model/merge_updates.cpp;quickbus/network/QBConnection.cpp;quickbus/network/QBConnectionManager.cpp;quickbus/network/endpoint_description.cpp;quickbus/network/quickbus_msgs.proto;quickbus/pubsub/TablePublisher.cpp;quickbus/pubsub/TableSubscriber.cpp;quickbus/pubsub/tests/qb_pubsub_tests.cpp;quickbus/routing/INode.cpp;quickbus/routing/NodeID.cpp;quickbus/routing/Router.cpp;quickbus/rpc/RPCClient.cpp;quickbus/rpc/RPCServer.cpp;quickbus/rpc/RPCSessionID.cpp;quickbus/rpc/rpc_utils.cpp;quickbus/rpc/tests/qb_rpc_tests.cpp;quickbus/tests/quickbus_tests.cpp;sparkproto/SparkProtos.proto;testing/catch_test_runner.cpp;utils/AuthSessionManager.cpp;utils/AuthToken.cpp;utils/Dispatcher.cpp;utils/GrowableSPSCQueue.cpp;utils/HTTPStream.cpp;utils/PBUtils.cpp;Line truncated
|
||||
set(sources api/Apicore.proto;api/Apigateway.proto;api/Apioptions.proto;api/core/ApiClientInterop.cpp;api/core/ApiServerInterop.cpp;api/public/ApiServer.cpp;api/public/ClientChannel.cpp;api/public/QuickbusClientChannel.cpp;api/public/ServerChannel.cpp;api/public/ServiceContext.cpp;api/service_helpers/AdminServiceUtils.cpp;api/service_helpers/AlgoServiceUtils.cpp;api/service_helpers/PositionUtilities.cpp;api/services/AdminService.proto;api/services/AlgoDefinitionService.proto;api/services/AlgoService.proto;api/services/ApiUnitTestService.proto;api/services/AuthService.proto;api/services/BasePositionService.proto;api/services/ErrorReportService.proto;api/services/HelloService.proto;api/services/MBOService.proto;api/services/MarginService.proto;api/services/MarketDataAuxiliaryService.proto;api/services/MarketDataRelay.proto;api/services/MoneyFileService.proto;api/services/OrderService.proto;api/services/OutOfProcessURLListener.proto;api/services/PersistenceService.proto;api/services/PositionService.proto;api/services/ShellDiagnosticService.proto;api/services/ShellLatencyService.proto;api/services/SyntheticSecurityService.proto;api/test/ApiTests.cpp;api/test/HelloServiceServer.cpp;config/ConfigCheck.cpp;config/ConfigDownloader.cpp;config/ConfigErrorCollector.cpp;config/ConfigLog.cpp;config/ConfigPropertyEvaluator.cpp;config/ConfigValueQueue.cpp;config/ConfigurationException.cpp;config/ConfigurationState.cpp;config/PreprocessInputStream.cpp;config/config.cpp;config/defaults/MarketData.conf;config/defaults/Ports.conf;config/defaults/Symbols.conf;config/defaults/cme_reference_data.conf;config/defaults/edge.conf;config/defaults/jetfix.conf;config/defaults/keycode.conf;config/defaults/logging.conf;config/defaults/orderman_cfg.conf;config/defaults/orders_fills_cleanup.conf;config/defaults/position_cfg.conf;config/defaults/span.conf;config/defaults/spreader.conf;config/defaults/testkeys.conf;config/defaults/threads.conf;config/defaults/toggles.conf;config/extensions/extensions.proto;config/invalid/invalid.proto;config/protos/ExchangeSimCfg.proto;config/protos/MarketData.proto;config/protos/Ports.proto;config/protos/Symbols.proto;config/protos/UI.proto;config/protos/cme_reference_data.proto;config/protos/jetfix.proto;config/protos/keycode.proto;config/protos/logging.proto;config/protos/mercury_cfg.proto;config/protos/orderman_cfg.proto;config/protos/orders_fills_cleanup.proto;config/protos/perflog_cfg.proto;config/protos/position_cfg.proto;config/protos/quickbus_cfg.proto;config/protos/span.proto;config/protos/spreader.proto;config/protos/subprocess.proto;config/protos/system.proto;config/protos/testkeys.proto;config/protos/threads.proto;config/protos/toggles.proto;config/tests/HTTPServer.cpp;config/tests/config_ref_tests.cpp;config/tests/config_tests.cpp;config/text_format/text_format.cpp;domain_model/Security.cpp;domain_model/Security.proto;domain_model/SecurityTests.cpp;domain_model/sod.cpp;domain_model/tests/domain_tests.cpp;expression/BooleanGrammar.cpp;expression/ExpressionEvaluator.cpp;expression/ParserExceptions.cpp;expression/Value.cpp;expression/tests/expression_parser_tests.cpp;logging/LoggerHub.cpp;logging/Sink.cpp;logging/logging.cpp;logging/tests/logging_tests.cpp;md/Diag/MDPeriodicDumper.cpp;md/Diag/ShmDumper.cpp;md/MBOProcessor.cpp;md/MBOServiceServer.cpp;md/MDClient.cpp;md/MDConsumer.cpp;md/MDConsumerHandle.cpp;md/MDConsumerInterop.cpp;md/MDProducer.cpp;md/MDProducerHandle.cpp;md/MemorySegmentUtils.cpp;md/PlatformLoader.cpp;md/PriceSize.cpp;md/SecurityCache.cpp;md/SecurityDB.cpp;md/SecurityIDRecorder.cpp;md/SecurityMapper.cpp;md/SecurityOracle.cpp;md/SettlementRecorder.cpp;md/Shm/FixedSecurity.cpp;md/SyntheticSecurityService.cpp;md/cme/MDP3Utils.cpp;md/common.cpp;md/ice/ICEUtils.cpp;md/protos/Co2.proto;md/relay/QueryServer.cpp;md/relay/RelayClient.cpp;md/relay/RelayRecorder.cpp;md/test/Co2ManagedTestHelper.cpp;md/test/Co2TestInstrument.cpp;md/test/mbo_tests.cpp;md/test/md2_tests.cpp;md/test/md_test_utils.cpp;md/test/synthetic_book_merge_tests.cpp;md/vendor/OnixsUtils.cpp;os/os.cpp;os/tests/os_tests.cpp;quickbus/core/LocalNode.cpp;quickbus/core/Quickbus.cpp;quickbus/core/SubscriptionID.cpp;quickbus/core/TableID.cpp;quickbus/message_model/Update.cpp;quickbus/message_model/merge_updates.cpp;quickbus/network/QBConnection.cpp;quickbus/network/QBConnectionManager.cpp;quickbus/network/endpoint_description.cpp;quickbus/network/quickbus_msgs.proto;quickbus/pubsub/TablePublisher.cpp;quickbus/pubsub/TableSubscriber.cpp;quickbus/pubsub/tests/qb_pubsub_tests.cpp;quickbus/routing/INode.cpp;quickbus/routing/NodeID.cpp;quickbus/routing/Router.cpp;quickbus/rpc/RPCClient.cpp;quickbus/rpc/RPCServer.cpp;quickbus/rpc/RPCSessionID.cpp;quickbus/rpc/rpc_utils.cpp;quickbus/rpc/tests/qb_rpc_tests.cpp;quickbus/tests/quickbus_tests.cpp;sparkproto/SparkProtos.proto;testing/catch_test_runner.cpp;utils/AuthSessionManager.cpp;utils/AuthToken.cpp;utils/Dispatcher.cpp;utils/GrowableSPSCQueue.cpp;utils/HTTPStream.cpp;utils/PBUtils.cpp;Line truncated
|
||||
@@ -1,5 +1,5 @@
|
||||
syntax="proto3";
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
package bts.api;
|
||||
option csharp_namespace="bts.api";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
syntax="proto3";
|
||||
package bts.api.gateway;
|
||||
option csharp_namespace="bts.api.gateway";
|
||||
import "lib/api/apicore.proto";
|
||||
import "lib/api/Apicore.proto";
|
||||
|
||||
message GatewayLogin {
|
||||
string username = 1;
|
||||
@@ -6,6 +6,9 @@ option csharp_namespace="bts.api";
|
||||
extend google.protobuf.ServiceOptions {
|
||||
string service_description = 8501;
|
||||
}
|
||||
extend google.protobuf.MessageOptions {
|
||||
string protofix_message_type = 8505;
|
||||
}
|
||||
extend google.protobuf.MethodOptions {
|
||||
string method_description = 8503;
|
||||
bool skip_excel_generation = 8504;
|
||||
@@ -8,7 +8,7 @@
|
||||
#include "../public/ServiceContext.h"
|
||||
#include "../public/Result.h"
|
||||
|
||||
#include "lib/api/apicore.pb.h"
|
||||
#include "lib/api/Apicore.pb.h"
|
||||
#include "lib/config/protos/quickbus_cfg.pb.h"
|
||||
#include "lib/config/protos/system.pb.h"
|
||||
#include "lib/config/protos/Ports.pb.h"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "lib/utils/bts_export.h"
|
||||
#include "lib/api/apicore.pb.h"
|
||||
#include "lib/api/Apicore.pb.h"
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include "ApiUtils.h"
|
||||
#include "ServerChannel.h"
|
||||
#include "StatefulPublisher.h"
|
||||
#include "lib/api/apicore.pb.h"
|
||||
#include "lib/api/Apicore.pb.h"
|
||||
|
||||
#include <google/protobuf/io/zero_copy_stream.h>
|
||||
#include <functional>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
#include "ApiException.h"
|
||||
|
||||
#include "lib/api/apicore.pb.h"
|
||||
#include "lib/api/Apicore.pb.h"
|
||||
|
||||
#include <memory>
|
||||
#include <assert.h>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
#include "../core/ApiClientInterop.h"
|
||||
#include "../core/ApiServerInterop.h"
|
||||
#include "lib/api/apicore.pb.h"
|
||||
#include "lib/api/Apicore.pb.h"
|
||||
|
||||
namespace bts {
|
||||
namespace api {
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
import os, sys
|
||||
from collections import namedtuple
|
||||
|
||||
#open("/home/bts/data2", 'wb').write("a")
|
||||
|
||||
DEBUG = 'DEBUG' in sys.argv
|
||||
|
||||
# cd to scripts working directory
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
syntax="proto3";
|
||||
package bts.api.admin;
|
||||
option csharp_namespace="bts.api.admin";
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/apicore.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
import "lib/api/Apicore.proto";
|
||||
//import "google/protobuf/timestamp.proto";
|
||||
import "lib/domain_model/Security.proto";
|
||||
import "lib/api/services/OrderService.proto";
|
||||
|
||||
@@ -2,8 +2,8 @@ syntax="proto3";
|
||||
package bts.api.orderman.algo;
|
||||
option csharp_namespace="bts.api.orderman.algo";
|
||||
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/apicore.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
import "lib/api/Apicore.proto";
|
||||
import "lib/api/services/OrderService.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ syntax="proto3";
|
||||
package bts.api.orderman;
|
||||
option csharp_namespace="bts.api.orderman";
|
||||
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/apicore.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
import "lib/api/Apicore.proto";
|
||||
import "lib/api/services/OrderService.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
syntax="proto3";
|
||||
package bts.api.test;
|
||||
option csharp_namespace="bts.api.test";
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
|
||||
message EmptyRequest {}
|
||||
message UnitTestResult {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
syntax="proto3";
|
||||
package bts.api.user;
|
||||
option csharp_namespace="bts.api.user";
|
||||
import "lib/api/apicore.proto";
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/Apicore.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
|
||||
message OperatorID { string tag50 = 10; }
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
syntax="proto3";
|
||||
package bts.api.position;
|
||||
option csharp_namespace="bts.api.position";
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
import "lib/api/services/PositionService.proto";
|
||||
|
||||
message GMI_ParseResult {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
syntax="proto3";
|
||||
package bts.support;
|
||||
option csharp_namespace="bts.support";
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
message FileData {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
syntax="proto3";
|
||||
package bts.api.test;
|
||||
option csharp_namespace="bts.api.test";
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
|
||||
message HelloRequest {
|
||||
string name = 1;
|
||||
|
||||
@@ -2,8 +2,8 @@ syntax="proto3";
|
||||
package bts.md;
|
||||
option csharp_namespace="bts.md";
|
||||
option cc_enable_arenas=true;
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/apicore.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
import "lib/api/Apicore.proto";
|
||||
|
||||
message OrderPIQ {
|
||||
uint32 order_id = 1 [(bts.api.key)=true];
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
syntax="proto3";
|
||||
package bts.api.position;
|
||||
option csharp_namespace="bts.api.position";
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/apicore.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
import "lib/api/Apicore.proto";
|
||||
import "lib/api/services/PositionService.proto";
|
||||
|
||||
message MarginResult {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
syntax="proto3";
|
||||
package bts.api.md.auxiliary;
|
||||
option csharp_namespace="bts.api.md.auxiliary";
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/apicore.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
import "lib/api/Apicore.proto";
|
||||
|
||||
message VolumeAtPriceLevel{
|
||||
int32 record_id = 1 [(bts.api.key)=true];
|
||||
|
||||
@@ -2,10 +2,10 @@ syntax="proto3";
|
||||
package bts.co2;
|
||||
option csharp_namespace="bts.co2";
|
||||
option cc_enable_arenas=true;
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/apicore.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
import "lib/api/Apicore.proto";
|
||||
import "lib/domain_model/Security.proto";
|
||||
import "lib/md/protos/co2.proto";
|
||||
import "lib/md/protos/Co2.proto";
|
||||
|
||||
message ProductListReply {
|
||||
repeated bts.api.Product products = 1;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
syntax="proto3";
|
||||
package bts.api.position;
|
||||
option csharp_namespace="bts.api.position";
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
import "lib/api/services/MarginService.proto";
|
||||
|
||||
message Money_ParseResult {
|
||||
|
||||
@@ -2,11 +2,11 @@ syntax="proto3";
|
||||
package bts.api.orderman;
|
||||
option csharp_namespace="bts.api.orderman";
|
||||
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
import "lib/domain_model/Security.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "lib/sparkproto/SparkProtos.proto";
|
||||
import "lib/api/apicore.proto";
|
||||
import "lib/api/Apicore.proto";
|
||||
|
||||
service OrderService {
|
||||
option (bts.api.service_description)="Implements order management";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
syntax="proto3";
|
||||
package bts.api.browser;
|
||||
option csharp_namespace="bts.api.browser";
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
|
||||
message URIRequest {
|
||||
string uri = 1;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
syntax="proto3";
|
||||
package bts.api.persistence;
|
||||
option csharp_namespace="bts.api.persistence";
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
|
||||
message Record {
|
||||
string key = 1 [(bts.api.key)=true];
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
syntax="proto3";
|
||||
package bts.api.position;
|
||||
option csharp_namespace="bts.api.position";
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/apicore.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
import "lib/api/Apicore.proto";
|
||||
import "lib/domain_model/Security.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
syntax="proto3";
|
||||
package bts.api.diagnostic;
|
||||
option csharp_namespace="bts.api.diagnostic";
|
||||
import "lib/api/apicore.proto";
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/Apicore.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
|
||||
message ScriptLines {
|
||||
int32 id = 1;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
syntax="proto3";
|
||||
package bts.metrics;
|
||||
option csharp_namespace="bts.metrics";
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/apicore.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
import "lib/api/Apicore.proto";
|
||||
|
||||
message Tick {
|
||||
int32 key = 1 [(bts.api.key)=true];
|
||||
|
||||
@@ -3,8 +3,8 @@ package bts.api.synthetic;
|
||||
option csharp_namespace="bts.api.synthetic";
|
||||
|
||||
|
||||
import "lib/api/apicore.proto";
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/Apicore.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
import "lib/domain_model/Security.proto";
|
||||
//import "google/protobuf/timestamp.proto";
|
||||
import "lib/sparkproto/SparkProtos.proto";
|
||||
|
||||
@@ -2,7 +2,7 @@ syntax="proto3";
|
||||
package bts.api;
|
||||
option csharp_namespace="bts.api";
|
||||
option cc_enable_arenas=true;
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
|
||||
enum Venue {
|
||||
VENUE_UNSET = 0;
|
||||
|
||||
@@ -49,7 +49,6 @@ enum class MessageTypes : uint32_t
|
||||
TestRequest = '1',
|
||||
TradingSessionStatus = 'h',
|
||||
TradingSessionStatusRequest = 'g',
|
||||
MDIncrementalUpdate = 'X',
|
||||
ICETraderLogin = ('U' << 16) + ('C' << 8) + 'G',
|
||||
ICETraderLoginResponse = ('U' << 16) + ('C' << 8) + 'I',
|
||||
ICETraderLogout = ('U' << 16) + ('C' << 8) + 'H',
|
||||
|
||||
@@ -18,8 +18,8 @@
|
||||
|
||||
#include <fmt/format.h>
|
||||
#include <fstream>
|
||||
#include <regex>
|
||||
#include <thread>
|
||||
#include <regex>
|
||||
|
||||
namespace bts {
|
||||
namespace jetfix {
|
||||
@@ -114,17 +114,16 @@ std::string store_path(std::string base_path,
|
||||
return result.string();
|
||||
}
|
||||
|
||||
static std::regex store_line_rx("\\d\\d\\d\\d\\d\\d\\d\\d-"
|
||||
"\\d\\d:\\d\\d:\\d\\d\\."
|
||||
"\\d\\d\\d . 8=FIX\\.4\\.2.*");
|
||||
|
||||
bool is_valid_store_line(std::string const &line) {
|
||||
return std::regex_match(line, store_line_rx);
|
||||
bool is_valid_store_line(std::string const&line) {
|
||||
std::regex rx("\\d\\d\\d\\d\\d\\d\\d\\d-"
|
||||
"\\d\\d:\\d\\d:\\d\\d\\."
|
||||
"\\d\\d\\d . 8=FIX\\.4\\.2.*");
|
||||
return std::regex_match(line, rx);
|
||||
}
|
||||
|
||||
std::map<uint32_t, InMsgBuffer>
|
||||
load_replay(config::JetFIX::Connection const &cfg, std::string const &path,
|
||||
uint32_t) {
|
||||
uint32_t ) {
|
||||
std::map<uint32_t, InMsgBuffer> result;
|
||||
if (boost::filesystem::exists(path)) {
|
||||
|
||||
@@ -138,7 +137,7 @@ load_replay(config::JetFIX::Connection const &cfg, std::string const &path,
|
||||
if (!f.eof()) {
|
||||
if (!is_valid_store_line(line_buffer))
|
||||
continue;
|
||||
|
||||
|
||||
if (line_buffer[22] == '<') {
|
||||
auto ts =
|
||||
datetime::parse_FIX_timestamp(line_buffer.substr(0, 21));
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "relay/RelayClient.h"
|
||||
#include "lib/utils/Dispatcher.h"
|
||||
#include "lib/utils/defer.h"
|
||||
#include "lib/md/protos/co2.pb.h"
|
||||
#include "lib/md/protos/Co2.pb.h"
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include <atomic>
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
#include "lib/domain_model/SecurityKey.h"
|
||||
#include "IntPrice.h"
|
||||
|
||||
#include "lib/md/protos/co2.pb.h"
|
||||
#include "lib/md/protos/Co2.pb.h"
|
||||
#include "lib/domain_model/Security.pb.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
File renamed without changes.
@@ -14,9 +14,9 @@
|
||||
#include "lib/logging/logging.h"
|
||||
|
||||
#include "lib/config/protos/system.pb.h"
|
||||
#include "lib/md/protos/co2.pb.h"
|
||||
#include "lib/md/protos/Co2.pb.h"
|
||||
#include "lib/md/SecurityCache.h"
|
||||
#include "lib/api/apicore.pb.h"
|
||||
#include "lib/api/Apicore.pb.h"
|
||||
#include "lib/api/services/MarketDataRelay.server.pb.h"
|
||||
#include "lib/api/public/ServiceContext.h"
|
||||
#include "lib/api/services/AdminService.client.pb.h"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include <memory>
|
||||
#include <boost/container/flat_set.hpp>
|
||||
|
||||
#include "lib/md/protos/co2.pb.h"
|
||||
#include "lib/md/protos/Co2.pb.h"
|
||||
|
||||
namespace bts {
|
||||
namespace api { class ServiceContext; }
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
#include "lib/config/protos/system.pb.h"
|
||||
#include "lib/config/protos/MarketData.pb.h"
|
||||
#include "lib/md/protos/co2.pb.h"
|
||||
#include "lib/md/protos/Co2.pb.h"
|
||||
#include "lib/api/services/MarketDataRelay.client.pb.h"
|
||||
#include "lib/api/public/ServiceContext.h"
|
||||
#include "lib/utils/base64.hpp"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include <set>
|
||||
#include <memory>
|
||||
|
||||
#include "lib/md/protos/co2.pb.h"
|
||||
#include "lib/md/protos/Co2.pb.h"
|
||||
|
||||
namespace bts {
|
||||
namespace pubsub {
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include "lib/utils/bts_chrono.h"
|
||||
|
||||
#include "lib/md/common.h"
|
||||
#include "lib/md/protos/co2.pb.h"
|
||||
#include "lib/md/protos/Co2.pb.h"
|
||||
#include "lib/md/SecurityIDRecorder.h"
|
||||
#include "lib/config/protos/system.pb.h"
|
||||
#include "lib/config/protos/MarketData.pb.h"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#include "lib/utils/bts_export.h"
|
||||
#include "../coconut2.h"
|
||||
#include "lib/config/config.h"
|
||||
#include "lib/md/protos/co2.pb.h"
|
||||
#include "lib/md/protos/Co2.pb.h"
|
||||
#include "lib/utils/TimeStamp.h"
|
||||
#include <tuple>
|
||||
#include <vector>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include "lib/mercury/events/Event.h"
|
||||
#include "lib/orderman/orderman_utils/orderman_common.h"
|
||||
#include "lib/utils/bts_chrono.h"
|
||||
#include "lib/md/protos/co2.pb.h"
|
||||
#include "lib/md/protos/Co2.pb.h"
|
||||
#include "boost/container/small_vector.hpp"
|
||||
|
||||
namespace bts {
|
||||
|
||||
@@ -6,7 +6,7 @@ namespace bts {
|
||||
namespace orderman {
|
||||
|
||||
class ChildTemplate;
|
||||
struct LegData;
|
||||
class LegData;
|
||||
|
||||
class PyramidAlgo : public IAlgoOrder {
|
||||
public:
|
||||
|
||||
@@ -6,7 +6,7 @@ namespace bts {
|
||||
namespace orderman {
|
||||
|
||||
class ChildTemplate;
|
||||
struct LegData;
|
||||
class LegData;
|
||||
|
||||
class TASAlgo : public IAlgoOrder {
|
||||
public:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
syntax="proto3";
|
||||
package bts.spark;
|
||||
option csharp_namespace="bts.spark";
|
||||
import "lib/api/apioptions.proto";
|
||||
import "lib/api/Apioptions.proto";
|
||||
|
||||
// /***************************************Algo Order Support Data**********************************/
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "Spark sdk container",
|
||||
"image": "spark_sdk",
|
||||
"runArgs": [
|
||||
"--shm-size", "2048m",
|
||||
"--shm-size", "1024m",
|
||||
"--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined",
|
||||
"-u", "bts"
|
||||
],
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "Spark sdk container",
|
||||
"image": "spark_sdk",
|
||||
"runArgs": [
|
||||
"--shm-size", "2048m",
|
||||
"--shm-size", "1024m",
|
||||
"--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined",
|
||||
"-u", "bts"
|
||||
],
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
set(sources algo/AlgoDefinitionServiceServer.cpp;cmds/AdminReport.cpp;cmds/AutoCert.cpp;cmds/Benchmark.cpp;cmds/CmdRegistry.cpp;cmds/ConfigCheck.cpp;cmds/FIXSim.cpp;cmds/Help.cpp;cmds/KeyCode.cpp;cmds/Md.cpp;cmds/ParseHistoricalFIX.cpp;cmds/PrintHedgeOrders.cpp;cmds/QuickTest.cpp;cmds/Run.cpp;cmds/RunSim.cpp;cmds/Span.cpp;cmds/Test.cpp;cmds/TestCeloxica.cpp;cmds/Web.cpp;dspark/mirage/quick_queue/quick_queue.cpp;exchange_sim/ExchangeSim.cpp;exchange_sim/ExchangeSimApplication.cpp;exchange_sim/book/Book.cpp;exchange_sim/book/ExchangeSim.proto;exchange_sim/book/Order.cpp;exchange_sim/book/OrderMatcher.cpp;exchange_sim/book/book_transform.cpp;exchange_sim/tests/test_book_transform.cpp;http/ApiGateway.cpp;http/MultipartFormDecoder.cpp;http/WebServer.cpp;http/tests/MultiPartFormTests.cpp;main.cpp;md/ChannelVolume.cpp;md/MarketDataAuxiliaryServiceServer.cpp;md/VolumeAtPriceState.cpp;md/platforms/IMDPlatform.cpp;md/platforms/celoxica/CXListener.cpp;md/platforms/celoxica/CXMain.cpp;md/platforms/celoxica/tests/cx_tests.cpp;md/platforms/ice_onixs/ICEListener.cpp;md/platforms/ice_onixs/ICEMain.cpp;md/platforms/ice_onixs/tests/ice_tests.cpp;md/platforms/mdp3_onixs/MDP3Listener.cpp;md/platforms/mdp3_onixs/MDP3Main.cpp;md/platforms/mdp3_onixs/tests/mdp3_tests.cpp;md/run_md.cpp;position/IPositionObserver.cpp;position/MarginServiceCore.cpp;position/MarginServiceServer.cpp;position/PositionAggregator.cpp;position/PositionMap.cpp;position/PositionServicePNLHelper.cpp;position/PositionServiceServer.cpp;position/import/BasePositionServiceServer.cpp;position/import/DownloadCommonStateMachine.cpp;position/import/DownloadWindow.cpp;position/import/MoneyFileServiceServer.cpp;position/import/parsing/gmi_parser.cpp;position/import/parsing/money_parser.cpp;position/import/parsing/parser_common.cpp;position/tests/PositionTests.cpp;position/tests/position_tests_internal.cpp;subprocess/SubProcessRunner.cpp;support/ErrorReportService.cpp;support/ShellLatencyServer.cpp;user/AdminServiceServer.cpp;user/AuthServiceServer.cpp;user/tests/admin_service_tests.cpp)
|
||||
@@ -36,4 +36,6 @@ target_link_libraries( sparkd
|
||||
-pthread)
|
||||
|
||||
add_custom_command(TARGET sparkd POST_BUILD
|
||||
COMMAND ln -fs ${CMAKE_BINARY_DIR}/src/lib/libspark.so ${CMAKE_CURRENT_BINARY_DIR})
|
||||
COMMAND ln -fs ${CMAKE_BINARY_DIR}/src/lib/libspark.so ${CMAKE_CURRENT_BINARY_DIR} )
|
||||
|
||||
|
||||
@@ -1,416 +0,0 @@
|
||||
#include "ParseHistoricalFIX.h"
|
||||
#include "lib/jetfix/codec/FIXMsg.h"
|
||||
#include "lib/jetfix/codec/FIXParser.h"
|
||||
#include "lib/jetfix/codec/Fields.h"
|
||||
#include "lib/jetfix/codec/Group.h"
|
||||
#include "lib/jetfix/codec/MessageTypes.h"
|
||||
#include "lib/utils/bts_chrono.h"
|
||||
|
||||
#include <fstream>
|
||||
#include <unordered_map>
|
||||
|
||||
namespace bts {
|
||||
namespace cmd {
|
||||
|
||||
using namespace jetfix;
|
||||
|
||||
typedef StringField<75> TradeDate;
|
||||
typedef IntField<34> SeqNum;
|
||||
typedef StringField<52> SendingTime;
|
||||
typedef StringField<60> TransactTime;
|
||||
typedef StringField<5799> MatchEventIndicator;
|
||||
|
||||
typedef IntField<268> NoMDEntries;
|
||||
typedef StringField<279> MDUpateAction;
|
||||
typedef StringField<269> MDEntryType;
|
||||
typedef StringField<48> SecurityID;
|
||||
typedef StringField<55> Symbol;
|
||||
typedef StringField<83> ReptSeq;
|
||||
typedef FloatField<270> MDEntryPx;
|
||||
typedef IntField<271> MDEntrySize;
|
||||
typedef IntField<346> NumberOfOrders;
|
||||
typedef IntField<1023> MDPriceLevel;
|
||||
typedef StringField<286> OpenCloseSettlFlag;
|
||||
typedef StringField<731> SettlPriceType;
|
||||
typedef StringField<5797> AggressorSide;
|
||||
typedef StringField<37711> MDTradeEntryID;
|
||||
typedef StringField<5796> TradingReferenceDate;
|
||||
typedef StringField<1149> HighLimitPrice;
|
||||
typedef StringField<1148> LowLimitPrice;
|
||||
typedef StringField<1143> MaxPriceVariation;
|
||||
typedef StringField<1180> ApplID;
|
||||
typedef IntField<9633> ReferenceID;
|
||||
typedef IntField<32> LastQty;
|
||||
|
||||
typedef IntField<37705> NoOrderIDEntries;
|
||||
typedef StringField<37> OrderID;
|
||||
typedef IntField<37707> MDOrderPriority;
|
||||
typedef IntField<37706> MDDisplayQty;
|
||||
typedef StringField<37708> OrderUpdateAction;
|
||||
|
||||
typedef Group<NoOrderIDEntries, OrderID, MDDisplayQty, MDOrderPriority,
|
||||
OrderUpdateAction, ReferenceID, LastQty>
|
||||
OrderIDEntries;
|
||||
|
||||
typedef Group<NoMDEntries, MDUpateAction, MDEntryType, SecurityID, Symbol,
|
||||
ReptSeq, MDEntryPx, MDEntrySize, NumberOfOrders, MDPriceLevel,
|
||||
OpenCloseSettlFlag, SettlPriceType, AggressorSide, MDTradeEntryID,
|
||||
TradingReferenceDate, HighLimitPrice, LowLimitPrice,
|
||||
MaxPriceVariation, ApplID, ReferenceID, LastQty, OrderID,
|
||||
MDOrderPriority, MDDisplayQty>
|
||||
MDEntries;
|
||||
|
||||
typedef FIXMsg<MessageTypes::MDIncrementalUpdate, TradeDate, SeqNum,
|
||||
SendingTime, TransactTime, MatchEventIndicator, MDEntries,
|
||||
OrderIDEntries>
|
||||
MDIncrementalUpdate;
|
||||
|
||||
std::string to_str(std::string const &s) { return s; }
|
||||
|
||||
template <class V> std::string to_str(V const &v) { return std::to_string(v); }
|
||||
|
||||
template <class F, class G> std::string get_if_valid(G const &update) {
|
||||
if (update.template has<F>())
|
||||
return to_str(update.template get<F>());
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
||||
void print_msg_headers(std::ostream &out) {
|
||||
out << "MsgID,"
|
||||
<< "TradeDate,"
|
||||
<< "SeqNum,"
|
||||
<< "SendingTime,"
|
||||
<< "TransactTime,"
|
||||
<< "MatchEventIndicator,"
|
||||
<< "NoMDEntries,"
|
||||
<< "NoOrderIDEntries\n";
|
||||
}
|
||||
|
||||
void print_msgs(size_t msg_idx, MDIncrementalUpdate const &line,
|
||||
std::ostream &out) {
|
||||
line.get<SeqNum>();
|
||||
out << msg_idx << "," << get_if_valid<TradeDate>(line) << ","
|
||||
<< get_if_valid<SeqNum>(line) << "," << get_if_valid<SendingTime>(line)
|
||||
<< "," << get_if_valid<TransactTime>(line) << ","
|
||||
<< get_if_valid<MatchEventIndicator>(line) << ","
|
||||
<< (line.has<MDEntries>() ? line.get<MDEntries>().size() : 0) << ","
|
||||
<< (line.has<OrderIDEntries>() ? line.get<OrderIDEntries>().size() : 0)
|
||||
<< "\n";
|
||||
}
|
||||
|
||||
struct PriceSize {
|
||||
double price = 0;
|
||||
int32_t size = 0;
|
||||
};
|
||||
|
||||
struct Book {
|
||||
Book() {
|
||||
book[0].resize(10);
|
||||
book[1].resize(10);
|
||||
}
|
||||
std::string symbol;
|
||||
std::string transact_time;
|
||||
std::string send_time;
|
||||
uint32_t seqnum;
|
||||
std::array<std::vector<PriceSize>, 2> book;
|
||||
};
|
||||
|
||||
size_t n_printed_books = 2;
|
||||
|
||||
void print_book_side(std::vector<PriceSize> const &side,
|
||||
std::ostream &book_stream) {
|
||||
for (size_t i = 0; i < n_printed_books; i++)
|
||||
if (i < side.size())
|
||||
book_stream << "," << side[i].price << "," << side[i].size;
|
||||
else
|
||||
book_stream << "," << 0 << "," << 0;
|
||||
}
|
||||
|
||||
void print_book_header(std::ostream &book_stream) {
|
||||
book_stream << "Symbol,SendingTime,TransactTime, SeqnNum";
|
||||
for (size_t i = 0; i < n_printed_books; i++)
|
||||
book_stream << ",bid_p_" << i << ",bid_sz_" << i;
|
||||
for (size_t i = 0; i < n_printed_books; i++)
|
||||
book_stream << ",ask_p_" << i << ",ask_sz_" << i;
|
||||
book_stream << ",\n";
|
||||
}
|
||||
|
||||
void print_book(Book &b, std::ostream &book_stream) {
|
||||
book_stream << b.symbol << "," << b.send_time << "," << b.transact_time
|
||||
<< "," << b.seqnum;
|
||||
print_book_side(b.book[0], book_stream);
|
||||
print_book_side(b.book[1], book_stream);
|
||||
book_stream << "\n";
|
||||
}
|
||||
|
||||
void update_and_maybe_print_book(MDIncrementalUpdate const &update,
|
||||
std::unordered_map<std::string, Book> &books,
|
||||
std::ostream &book_stream) {
|
||||
std::set<Book *> to_update;
|
||||
if (update.has<MDEntries>()) {
|
||||
auto &md_entries = update.get<MDEntries>();
|
||||
for (size_t i = 0; i < md_entries.size(); i++) {
|
||||
auto &entry = md_entries[i];
|
||||
if (entry.has<MDPriceLevel>()) {
|
||||
if (entry.get<MDEntryType>() == "0" ||
|
||||
entry.get<MDEntryType>() == "1") {
|
||||
auto side = entry.get<MDEntryType>()[0] - '0';
|
||||
auto &sym = entry.get<Symbol>();
|
||||
auto &book = books[sym];
|
||||
to_update.insert(&book);
|
||||
auto &book_side = book.book[side];
|
||||
book.symbol = sym;
|
||||
book.transact_time = update.get<TransactTime>();
|
||||
book.send_time = update.get<SendingTime>();
|
||||
book.transact_time = update.get<TransactTime>();
|
||||
book.seqnum = update.get<SeqNum>();
|
||||
auto level = entry.get<MDPriceLevel>() - 1;
|
||||
|
||||
if (entry.get<MDUpateAction>() == "0") // new
|
||||
book_side.insert(
|
||||
book_side.begin() + level,
|
||||
{entry.get<MDEntryPx>(), entry.get<MDEntrySize>()});
|
||||
else if (entry.get<MDUpateAction>() == "1")
|
||||
book_side[level] = {entry.get<MDEntryPx>(),
|
||||
entry.get<MDEntrySize>()};
|
||||
else
|
||||
book_side.erase(book_side.begin() + level);
|
||||
}
|
||||
}
|
||||
}
|
||||
auto indicator = update.get<MatchEventIndicator>();
|
||||
if (indicator[5] == '1')
|
||||
for (auto b : to_update)
|
||||
print_book(*b, book_stream);
|
||||
}
|
||||
}
|
||||
void print_trades_header(std::ostream &trade_stream) {
|
||||
trade_stream << "Symbol,SendingTime,TransactTime,MDEntryPx,MDEntrySize,"
|
||||
"NumberOfOrders,AggressorSide,MDTradeEntryID,AgressorOID,"
|
||||
"RestingOID,PartialQty";
|
||||
trade_stream << "\n";
|
||||
}
|
||||
|
||||
struct TradeSummaryItem {
|
||||
std::string symbol;
|
||||
std::string sending_time;
|
||||
std::string transact_time;
|
||||
double md_entry_px;
|
||||
uint32_t md_entry_size;
|
||||
uint32_t n_orders;
|
||||
std::string agressor_side;
|
||||
std::string md_trade_entry_id;
|
||||
};
|
||||
|
||||
struct TradeOrder {
|
||||
std::string order_id;
|
||||
uint32_t last_qty;
|
||||
};
|
||||
|
||||
struct TradeSummaryEvent {
|
||||
std::vector<TradeSummaryItem> md_entries;
|
||||
std::vector<TradeOrder> orderid_entries;
|
||||
};
|
||||
|
||||
void print_trades(TradeSummaryEvent &event, std::ostream &trade_stream) {
|
||||
size_t current_order = 0;
|
||||
for (auto &trade : event.md_entries) {
|
||||
for (auto i = current_order; i < current_order + trade.n_orders; i++) {
|
||||
trade_stream << trade.symbol << "," << trade.sending_time << ","
|
||||
<< trade.transact_time << "," << trade.md_entry_px << ","
|
||||
<< trade.md_entry_size << "," << trade.n_orders << ","
|
||||
<< trade.agressor_side << "," << trade.md_trade_entry_id
|
||||
<< "," << event.orderid_entries[current_order].order_id
|
||||
<< "," << event.orderid_entries[i].order_id << ","
|
||||
<< event.orderid_entries[i].last_qty << "\n";
|
||||
}
|
||||
current_order += trade.n_orders;
|
||||
}
|
||||
}
|
||||
|
||||
void update_and_maybe_print_trades(MDIncrementalUpdate const &update,
|
||||
TradeSummaryEvent &event,
|
||||
std::ostream &trade_stream) {
|
||||
if (update.has<MDEntries>()) {
|
||||
auto &md_entries = update.get<MDEntries>();
|
||||
bool is_trade_summary = false;
|
||||
for (size_t i = 0; i < md_entries.size(); i++) {
|
||||
|
||||
auto &entry = md_entries[i];
|
||||
if (entry.get<MDEntryType>() == "2") {
|
||||
is_trade_summary = true;
|
||||
TradeSummaryItem item;
|
||||
item.symbol = entry.get<Symbol>();
|
||||
item.sending_time = update.get<SendingTime>();
|
||||
item.transact_time = update.get<TransactTime>();
|
||||
item.md_entry_px = entry.get<MDEntryPx>();
|
||||
item.md_entry_size = entry.get<MDEntrySize>();
|
||||
item.n_orders = entry.get<NumberOfOrders>();
|
||||
item.agressor_side = entry.get<AggressorSide>();
|
||||
item.md_trade_entry_id = entry.get<MDTradeEntryID>();
|
||||
event.md_entries.emplace_back(std::move(item));
|
||||
}
|
||||
|
||||
if (is_trade_summary) {
|
||||
if (update.has<OrderIDEntries>()) {
|
||||
auto &oid_entries = update.get<OrderIDEntries>();
|
||||
for (size_t i = 0; i < oid_entries.size(); i++) {
|
||||
auto &oid = oid_entries[i];
|
||||
TradeOrder order_id_entry;
|
||||
order_id_entry.order_id = oid.get<OrderID>();
|
||||
order_id_entry.last_qty = oid.get<LastQty>();
|
||||
event.orderid_entries.emplace_back(std::move(order_id_entry));
|
||||
}
|
||||
}
|
||||
auto indicator = update.get<MatchEventIndicator>();
|
||||
if (indicator[7] == '1') {
|
||||
print_trades(event, trade_stream);
|
||||
event.md_entries.clear();
|
||||
event.orderid_entries.clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void print_orders_header(std::ostream &orders_stream) {
|
||||
orders_stream << "Symbol,"
|
||||
<< "SendingTime,"
|
||||
<< "TransactTime,"
|
||||
<< "MDEntryPx,"
|
||||
<< "OrderID,"
|
||||
<< "MDDisplayQty,"
|
||||
<< "MDOrderPriority,"
|
||||
<< "OrderUpdateAction,"
|
||||
<< "Side"
|
||||
<< "\n";
|
||||
}
|
||||
|
||||
struct Order {
|
||||
std::string sending_time;
|
||||
std::string transact_time;
|
||||
std::string side;
|
||||
|
||||
std::string order_id;
|
||||
std::string order_update_action;
|
||||
uint32_t md_order_priority;
|
||||
uint32_t display_qty;
|
||||
|
||||
std::string symbol;
|
||||
double md_entry_px;
|
||||
};
|
||||
|
||||
void print_order(Order const& order, std::ostream &orders_stream) {
|
||||
orders_stream << order.symbol << ","
|
||||
<< order.sending_time << ","
|
||||
<< order.transact_time << ","
|
||||
<< order.md_entry_px << ","
|
||||
<< order.order_id << ","
|
||||
<< order.display_qty << ","
|
||||
<< order.md_order_priority << ","
|
||||
<< order.order_update_action << ","
|
||||
<< order.side << "\n";
|
||||
}
|
||||
|
||||
|
||||
void print_orders(MDIncrementalUpdate const &update,std::ostream &orders_stream) {
|
||||
if (update.has<MDEntries>()) {
|
||||
auto &md_entries = update.get<MDEntries>();
|
||||
auto & first_entry = md_entries[0];
|
||||
|
||||
if (first_entry.get<MDEntryType> () == "0" ||
|
||||
first_entry.get<MDEntryType> () == "1") {
|
||||
|
||||
Order order;
|
||||
order.sending_time = update.get<SendingTime>();
|
||||
order.transact_time = update.get<TransactTime>();
|
||||
order.side = first_entry.get<MDEntryType> ();
|
||||
|
||||
if (first_entry.has<MDPriceLevel>()) {
|
||||
// combined template https://www.cmegroup.com/confluence/display/EPICSANDBOX/Incremental+Refresh+SBE+Template+Book+Processing
|
||||
if (update.has<OrderIDEntries>()) {
|
||||
auto &oid_entries = update.get<OrderIDEntries>();
|
||||
for (size_t i = 0; i < oid_entries.size(); i++) {
|
||||
|
||||
auto &oid = oid_entries[i];
|
||||
order.order_id = oid.get<OrderID>();
|
||||
order.order_update_action = oid.get<OrderUpdateAction>();
|
||||
order.md_order_priority = oid.get<MDOrderPriority>();
|
||||
order.display_qty = oid.get<MDDisplayQty>();
|
||||
|
||||
auto &md_entry = update.get<MDEntries>()[oid.get<ReferenceID>()-1];
|
||||
order.symbol = md_entry.get<Symbol>();
|
||||
order.md_entry_px = md_entry.get<MDEntryPx>();
|
||||
print_order(order, orders_stream);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
// MBO only template
|
||||
for (size_t i = 0; i < md_entries.size(); i++) {
|
||||
auto &entry = md_entries[i];
|
||||
order.order_id = entry.get<OrderID>();
|
||||
order.order_update_action = entry.get<MDUpateAction>();
|
||||
order.md_order_priority = entry.get<MDOrderPriority>();
|
||||
order.display_qty = entry.get<MDDisplayQty>();
|
||||
order.symbol = entry.get<Symbol>();
|
||||
order.md_entry_px = entry.get<MDEntryPx>();
|
||||
print_order(order,orders_stream);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int ParseHistoricalFIX::execute(std::vector<std::string> const &args) {
|
||||
std::ifstream input(args[0]);
|
||||
std::ofstream books_stream(args[0] + "_books.csv");
|
||||
std::ofstream msgs_stream(args[0] + "_msgs.csv");
|
||||
std::ofstream trades_stream(args[0] + "_trades.csv");
|
||||
std::ofstream orders_stream(args[0] + "_orders.csv");
|
||||
|
||||
std::unordered_map<std::string, Book> books;
|
||||
TradeSummaryEvent current_trade_summary;
|
||||
|
||||
MDIncrementalUpdate update;
|
||||
FIXParser<MDIncrementalUpdate> parser;
|
||||
|
||||
std::string line;
|
||||
size_t c = 0;
|
||||
auto ok = 0;
|
||||
auto start = Timer::now();
|
||||
|
||||
print_book_header(books_stream);
|
||||
print_msg_headers(msgs_stream);
|
||||
print_trades_header(trades_stream);
|
||||
print_orders_header(orders_stream);
|
||||
|
||||
while (std::getline(input, line)) {
|
||||
c++;
|
||||
auto parsed_ptr = parser.parse(InMsgBuffer(
|
||||
line.data(), line.size(), std::shared_ptr<std::string>{}));
|
||||
if (parsed_ptr) {
|
||||
auto msg =
|
||||
std::dynamic_pointer_cast<const MDIncrementalUpdate>(parsed_ptr);
|
||||
update_and_maybe_print_book(*msg, books, books_stream);
|
||||
print_msgs(c, *msg, msgs_stream);
|
||||
update_and_maybe_print_trades(*msg, current_trade_summary,
|
||||
trades_stream);
|
||||
print_orders(*msg, orders_stream);
|
||||
}
|
||||
ok += (bool)(parsed_ptr);
|
||||
}
|
||||
auto sec_duration = sec_diff(Timer::now(), start);
|
||||
std::cout << (int)(c / 1000 / sec_duration) << " Km/sec parsed: " << ok
|
||||
<< " out of " << c << " time: " << sec_duration << " secs\n";
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::string ParseHistoricalFIX::help() {
|
||||
return "ParseHistoricalFIX <input> will produce 2 files, "
|
||||
"<input>_mdentries.csv and <input>order_entries.csv";
|
||||
}
|
||||
|
||||
} // namespace cmd
|
||||
} // namespace bts
|
||||
@@ -1,17 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "ICmd.h"
|
||||
|
||||
namespace bts {
|
||||
namespace cmd {
|
||||
|
||||
class ParseHistoricalFIX : public ICmd
|
||||
{
|
||||
public:
|
||||
int execute(std::vector<std::string> const &args);
|
||||
std::string help ();
|
||||
};
|
||||
|
||||
}}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "lib/api/public/ServiceContext.h"
|
||||
#include "lib/api/apigateway.pb.h"
|
||||
#include "lib/api/Apigateway.pb.h"
|
||||
#include <memory>
|
||||
#include <functional>
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "MultipartFormDecoder.h"
|
||||
#include "lib/utils/Dispatcher.h"
|
||||
#include "lib/api/core/ApiClientInterop.h"
|
||||
#include "lib/api/apigateway.pb.h"
|
||||
#include "lib/api/Apigateway.pb.h"
|
||||
#include "lib/logging/logging.h"
|
||||
#include "lib/os/os.h"
|
||||
#include "lib/utils/TimeStamp.h"
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
#include "server/sparkd/cmds/Help.h"
|
||||
#include "server/sparkd/cmds/KeyCode.h"
|
||||
#include "server/sparkd/cmds/Md.h"
|
||||
#include "server/sparkd/cmds/ParseHistoricalFIX.h"
|
||||
#include "server/sparkd/cmds/PrintHedgeOrders.h"
|
||||
#include "server/sparkd/cmds/QuickTest.h"
|
||||
#include "server/sparkd/cmds/Run.h"
|
||||
@@ -42,7 +41,6 @@ int main(int argc, char **argv) {
|
||||
REGISTER(FIXSim);
|
||||
REGISTER(Span);
|
||||
REGISTER(Web);
|
||||
REGISTER(ParseHistoricalFIX);
|
||||
REGISTER(PrintHedgeOrders);
|
||||
REGISTER(AdminReport);
|
||||
END_CMD;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include <vector>
|
||||
#include "lib/utils/helper_macros.h"
|
||||
#include "lib/config/protos/MarketData.pb.h"
|
||||
#include "lib/md/protos/co2.pb.h"
|
||||
#include "lib/md/protos/Co2.pb.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace bts::co2;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
#include "lib/utils/Dispatcher.h"
|
||||
#include "lib/utils/proto_helper.h"
|
||||
#include "lib/utils/bts_chrono.h"
|
||||
#include "lib/md/protos/co2.pb.h"
|
||||
#include "lib/md/protos/Co2.pb.h"
|
||||
|
||||
#include "lib/config/protos/MarketData.pb.h"
|
||||
#include "lib/config/protos/system.pb.h"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include <vector>
|
||||
#include "lib/utils/helper_macros.h"
|
||||
#include "lib/config/protos/MarketData.pb.h"
|
||||
#include "lib/md/protos/co2.pb.h"
|
||||
#include "lib/md/protos/Co2.pb.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace bts::co2;
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include "lib/os/os.h"
|
||||
#include "lib/utils/Dispatcher.h"
|
||||
#include "lib/utils/proto_helper.h"
|
||||
#include "lib/md/protos/co2.pb.h"
|
||||
#include "lib/md/protos/Co2.pb.h"
|
||||
|
||||
#include "lib/config/protos/MarketData.pb.h"
|
||||
#include "lib/config/protos/system.pb.h"
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
set(sources ../../externals/linux/include/google/protobuf/descriptor.proto;../../externals/linux/include/google/protobuf/timestamp.proto;../lib/api/apicore.proto;../lib/api/apigateway.proto;../lib/api/apioptions.proto;../lib/api/services/AdminService.proto;../lib/api/services/AlgoDefinitionService.proto;../lib/api/services/AlgoService.proto;../lib/api/services/ApiUnitTestService.proto;../lib/api/services/AuthService.proto;../lib/api/services/BasePositionService.proto;../lib/api/services/ErrorReportService.proto;../lib/api/services/HelloService.proto;../lib/api/services/MBOService.proto;../lib/api/services/MarginService.proto;../lib/api/services/MarketDataAuxiliaryService.proto;../lib/api/services/MarketDataRelay.proto;../lib/api/services/MoneyFileService.proto;../lib/api/services/OrderService.proto;../lib/api/services/OutOfProcessURLListener.proto;../lib/api/services/PersistenceService.proto;../lib/api/services/PositionService.proto;../lib/api/services/ShellDiagnosticService.proto;../lib/api/services/ShellLatencyService.proto;../lib/api/services/SyntheticSecurityService.proto;../lib/domain_model/Security.proto;../lib/md/protos/co2.proto;../lib/sparkproto/SparkProtos.proto;api/build.sh;api/node_modules/exit/test/fixtures/create-files.sh;api/node_modules/protobufjs/cli/node_modules/acorn-jsx/node_modules/acorn/bin/update_authors.sh;api/node_modules/watch/release.sh;api/quiet_build.sh;api/src/DynamicService.ts;api/src/ServiceContext.ts;api/src/bts_assert.ts;ui/src/Access.fs;ui/src/Accounts/ClipLimits.fs;ui/src/Accounts/ProductLimits.fs;ui/src/Accounts/SecurityLimits.fs;ui/src/Accounts/State.fs;ui/src/Accounts/Types.fs;ui/src/Accounts/View.fs;ui/src/App.fs;ui/src/Cmd.fs;ui/src/Controls/Button.fs;ui/src/Controls/DataGrid.fs;ui/src/Controls/Fields.fs;ui/src/Controls/Modal.fs;ui/src/Controls/ReactGrid.fs;ui/src/Controls/Table.fs;ui/src/Controls/nbsp.fs;ui/src/Global.fs;ui/src/Imports.fs;ui/src/Lens.fs;ui/src/Login/Login.fs;ui/src/Nav.fs;ui/src/State.fs;ui/src/Types.fs;ui/src/Users/State.fs;ui/src/Users/Types.fs;ui/src/Users/View.fs;ui/src/Util/EnumUtils.fs;ui/src/Util/JSMap.fs;ui/src/Util/StreamUtils.fs;ui/src/obj/Debug/netstandard2.0/ui.AssemblyInfo.fs)
|
||||
@@ -57,7 +57,7 @@ $PROTOC --plugin=protoc-gen-service=../../lib/api/service_compiler/plugin.py \
|
||||
|
||||
# run typescript compiler to convert typescript to javascript
|
||||
echo -e \* ${ORANGE} tsc ${NOCOLOR}
|
||||
npx --no-install tsc -p tsconfig.$MODE.json
|
||||
npx --no-install tsc -p tsconfig.$MODE.json --outDir $OUT/api
|
||||
|
||||
# cleanup
|
||||
|
||||
@@ -71,7 +71,7 @@ ts2fable() {
|
||||
wait
|
||||
}
|
||||
|
||||
echo -e \* ${ORANGE} ts2fable ${NOCOLOR}
|
||||
echo -e \* ${ORANGE} ts2fable ${NOCOLOR} $OUT
|
||||
ts2fable $OUT/api
|
||||
# ts2fable $OUT/api/gen
|
||||
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
<Compile Include="Util/StreamUtils.fs" />
|
||||
<Compile Include="Util/EnumUtils.fs" />
|
||||
<Compile Include="$(API)/fable/timestamp.fable.fs" />
|
||||
<Compile Include="$(API)/fable/apicore.fable.fs" />
|
||||
<Compile Include="$(API)/fable/apioptions.fable.fs" />
|
||||
<Compile Include="$(API)/fable/Apicore.fable.fs" />
|
||||
<Compile Include="$(API)/fable/Apioptions.fable.fs" />
|
||||
<Compile Include="$(API)/fable/Security.fable.fs" />
|
||||
<Compile Include="$(API)/fable/SparkProtos.fable.fs" />
|
||||
<Compile Include="$(API)/fable/HelloService.fable.fs" />
|
||||
@@ -32,7 +32,7 @@
|
||||
<Compile Include="$(API)/fable/PositionService.fable.fs" />
|
||||
<Compile Include="$(API)/fable/BasePositionService.fable.fs" />
|
||||
<Compile Include="$(API)/fable/MarginService.fable.fs" />
|
||||
<Compile Include="$(API)/fable/co2.fable.fs" />
|
||||
<Compile Include="$(API)/fable/Co2.fable.fs" />
|
||||
<Compile Include="$(API)/fable/MarketDataRelay.fable.fs" />
|
||||
<!-- Global to the app -->
|
||||
<Compile Include="Lens.fs" />
|
||||
|
||||
@@ -13,7 +13,7 @@ ignore = Regex .*\.pyc
|
||||
ignore = Path x64
|
||||
ignore = Path .vs
|
||||
ignore = Path .vscode
|
||||
ignore = Path src/client
|
||||
ignore = Path src/client/spark
|
||||
ignore = Path src/web/api/node_modules
|
||||
ignore = Path src/web/ui/node_modules
|
||||
ignore = Path src/web/ui/src/obj
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
#/bin/bash
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
mkdir -p $DIR/../build/
|
||||
cd $DIR/../build/
|
||||
#mkdir -p $DIR/../build/
|
||||
#cd $DIR/../build/
|
||||
cd $DIR/../
|
||||
mkdir -p ./build/
|
||||
cd ./build/
|
||||
|
||||
rm -rf clang_debug
|
||||
mkdir clang_debug
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
@echo off
|
||||
REM here I make a docker shell for the instructions listed at api.bluetradesys.com
|
||||
REM then I do a lot of dumb shit to copy my .ssh dir over
|
||||
REM then I assume the user pre-clones spark into a spark directory from root
|
||||
REM ~$ git clone --recurse-submodules git@bitbucket.org:bluetradesys/spark.git
|
||||
|
||||
FOR /F "usebackq" %%i IN (`hostname`) DO SET MYHOST=%%i
|
||||
|
||||
docker kill spark_sdk
|
||||
docker rm spark_sdk
|
||||
|
||||
docker run ^
|
||||
--restart=unless-stopped ^
|
||||
--net host ^
|
||||
--shm-size=2048m ^
|
||||
--cap-add=SYS_PTRACE --security-opt seccomp=unconfined ^
|
||||
-h spark_sdk ^
|
||||
-w / ^
|
||||
-v %~dp0/../:/home/bts/spark_host ^
|
||||
-u bts ^
|
||||
--name spark_sdk ^
|
||||
-d ^
|
||||
-t spark_sdk ^
|
||||
/bin/bash -c "(sudo /usr/sbin/sshd) & /bin/bash --login"
|
||||
|
||||
docker cp %userprofile%/.ssh/. spark_sdk:/home/bts/.ssh
|
||||
|
||||
docker exec spark_sdk sudo chown -R bts:bts /home/bts/.ssh
|
||||
docker exec spark_sdk chmod 700 /home/bts/.ssh
|
||||
docker exec spark_sdk chmod 644 /home/bts/.ssh/id_rsa.pub
|
||||
docker exec spark_sdk chmod 600 /home/bts/.ssh/id_rsa
|
||||
docker exec spark_sdk chmod 600 /home/bts/.ssh/authorized_keys
|
||||
|
||||
docker exec spark_sdk mkdir /home/bts/spark
|
||||
docker exec spark_sdk sudo chown -R bts:bts /home/bts/spark
|
||||
docker exec spark_sdk ln -s /home/bts/spark_host/CMakeLists.txt /home/bts/spark/CMakeLists.txt
|
||||
docker exec spark_sdk ln -s /home/bts/spark_host/src /home/bts/spark/src
|
||||
docker exec spark_sdk ln -s /home/bts/spark_host/doc /home/bts/spark/doc
|
||||
docker exec spark_sdk ln -s /home/bts/spark_host/tools /home/bts/spark/tools
|
||||
REM can't share externals because of symlinks
|
||||
REM docker exec spark_sdk ln -s /home/bts/spark_host/externals /home/bts/spark/externals
|
||||
echo installing protobuf pybars3 markdown, remove this line if we fixed docker
|
||||
docker exec spark_sdk pip install protobuf pybars3 markdown
|
||||
|
||||
REM ssh-keygen -e -f c:\users\kevin\.ssh\id_rsa > c:\users\kevin\.ssh\id_rsa_com.pub
|
||||
REM ssh-keygen -i -f c:\users\kevin\.ssh\id_rsa_com.pub > c:\users\kevin\.ssh\id_rsa.pub
|
||||
|
||||
REM docker exec -it spark_sdk bash
|
||||
|
||||
Reference in new issue
Block a user