Skip to content

Commit

Permalink
Added --headless argument to resolve #137.
Browse files Browse the repository at this point in the history
Free Software Free Society

To support commits by ctubio,
you can buy-me-a-drink with a small git tip at:
  1GitTipgxvKB3zjCLXRcSgDhC9pivkpc7u

I promise to drink chocolate milk in the development of the next commit.

To request new features or in case this commit breaks something for you,
please create a new github issue with all possible details,
but never share your API Keys!

Signed-off-by: Carles Tubio <[email protected]>
  • Loading branch information
ctubio committed Sep 17, 2017
1 parent 8f43e8f commit 28ef07c
Show file tree
Hide file tree
Showing 7 changed files with 134 additions and 127 deletions.
Binary file modified dist/lib/K-x86_64-linux-gnu
Binary file not shown.
Binary file modified dist/lib/K-x86_64-linux-gnu.a
Binary file not shown.
40 changes: 20 additions & 20 deletions src/server/ev.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,28 @@

namespace K {
static void (*evExit)(int code);
typedef void (*evConnect)(mConnectivity);
extern evConnect ev_gwConnectButton,
ev_gwConnectOrder,
ev_gwConnectMarket,
ev_gwConnectExchange;
typedef void (*evOrder)(mOrder);
extern evOrder ev_gwDataOrder,
ev_ogOrder;
typedef void (*evTrade)(mTrade);
extern evTrade ev_gwDataTrade;
typedef void (*evConnect) (mConnectivity);
typedef void (*evOrder) (mOrder);
typedef void (*evTrade) (mTrade);
typedef void (*evTradeHydrated)(mTradeHydrated);
typedef void (*evWallet) (mWallet);
typedef void (*evLevels) (mLevels);
typedef void (*evEmpty) ();
extern evConnect ev_gwConnectButton,
ev_gwConnectOrder,
ev_gwConnectMarket,
ev_gwConnectExchange;
extern evOrder ev_gwDataOrder,
ev_ogOrder;
extern evTrade ev_gwDataTrade;
extern evTradeHydrated ev_ogTrade;
typedef void (*evWallet)(mWallet);
extern evWallet ev_gwDataWallet;
typedef void (*evLevels)(mLevels);
extern evLevels ev_gwDataLevels;
typedef void (*evEmpty)();
extern evEmpty ev_mgLevels,
ev_mgEwmaQuoteProtection,
ev_mgTargetPosition,
ev_pgTargetBasePosition,
ev_uiQuotingParameters;
extern evWallet ev_gwDataWallet;
extern evLevels ev_gwDataLevels;
extern evEmpty ev_mgLevels,
ev_mgEwmaQuoteProtection,
ev_mgTargetPosition,
ev_pgTargetBasePosition,
ev_uiQuotingParameters;
class EV {
public:
static void main() {
Expand Down
21 changes: 12 additions & 9 deletions src/server/fn.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ namespace K {
static char BWHITE[] = "\033[1;37m";
static int argColors = 0;
static int argDebug = 0;
static int argHeadless = 0;
static double argEwmaShort = 0;
static double argEwmaMedium = 0;
static double argEwmaLong = 0;
Expand All @@ -40,15 +41,16 @@ namespace K {
while (true) {
int i = 0;
static struct option args[] = {
{"help", no_argument, 0, 'h'},
{"colors", no_argument, &argColors, 1},
{"debug", no_argument, &argDebug, 1},
{"database", required_argument, 0, 'd'},
{"ewma-short", required_argument, 0, 's'},
{"ewma-medium", required_argument, 0, 'm'},
{"ewma-long", required_argument, 0, 'l'},
{"version", no_argument, 0, 'v'},
{0, 0, 0, 0}
{"help", no_argument, 0, 'h'},
{"colors", no_argument, &argColors, 1},
{"debug", no_argument, &argDebug, 1},
{"headless", no_argument, &argHeadless, 1},
{"database", required_argument, 0, 'd'},
{"ewma-short", required_argument, 0, 's'},
{"ewma-medium", required_argument, 0, 'm'},
{"ewma-long", required_argument, 0, 'l'},
{"version", no_argument, 0, 'v'},
{0, 0, 0, 0}
};
k = getopt_long(argc, argv, "hvd:l:m:s:", args, &i);
if (k == -1) break;
Expand All @@ -70,6 +72,7 @@ namespace K {
<< FN::uiT() << RWHITE << "-h, --help - show this help and quit." << endl
<< FN::uiT() << RWHITE << " --colors - print highlighted output." << endl
<< FN::uiT() << RWHITE << " --debug - print detailed output." << endl
<< FN::uiT() << RWHITE << " --headless - do not listen for UI connections." << endl
<< FN::uiT() << RWHITE << "-d, --database=PATH - set alternative database filename," << endl
<< FN::uiT() << RWHITE << " default PATH is '/data/db/K.*.*.*.db'," << endl
<< FN::uiT() << RWHITE << " any path with a filename is valid," << endl
Expand Down
15 changes: 8 additions & 7 deletions src/server/gw.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,27 +31,28 @@ namespace K {
if (k == mConnectivity::Disconnected)
ev_gwDataLevels(mLevels());
};
thread([&]() {
gw->book();
}).detach();
UI::uiSnap(uiTXT::ProductAdvertisement, &onSnapProduct);
UI::uiSnap(uiTXT::ExchangeConnectivity, &onSnapStatus);
UI::uiSnap(uiTXT::ActiveState, &onSnapState);
UI::uiHand(uiTXT::ActiveState, &onHandState);
hub.run();
if (argHeadless) gw->book().join();
else {
gw->book().detach();
hub.run();
}
};
static void gwBookUp(mConnectivity k) {
ev_gwConnectMarket(k);
};
static void gwOrderUp(mConnectivity k) {
ev_gwConnectOrder(k);
};
static void gwOrderUp(string oI, string oE, mORS oS, double oP = 0, double oQ = 0, double oLQ = 0) {
ev_gwDataOrder(mOrder(oI, oE, oS, oP, oQ, oLQ));
};
static void gwPosUp(mWallet k) {
ev_gwDataWallet(k);
};
static void gwOrderUp(mOrder k) {
ev_gwDataOrder(k);
};
static void gwTradeUp(mTrade k) {
ev_gwDataTrade(k);
};
Expand Down
5 changes: 1 addition & 4 deletions src/server/km.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,6 @@ namespace K {
enum class mAPR: unsigned int { Off, Size, SizeWidth };
enum class mSOP: unsigned int { Off, x2trades, x3trades, x2Size, x3Size, x2tradesSize, x3tradesSize };
enum class mSTDEV: unsigned int { Off, OnFV, OnFVAPROff, OnTops, OnTopsAPROff, OnTop, OnTopAPROff };
enum class mEv: unsigned int {
QuotingParameters
};
enum class uiBIT: unsigned char { MSG = '-', SNAP = '=' };
enum class uiTXT: unsigned char {
FairValue = 'a', Quote = 'b', ActiveSubscription = 'c', ActiveState = 'd', MarketData = 'e',
Expand Down Expand Up @@ -64,7 +61,7 @@ namespace K {
int base = 0;
virtual mExchange config() = 0;
virtual void pos() = 0;
virtual void book() = 0;
virtual thread book() = 0;
virtual void send(string oI, mSide oS, double oP, double oQ, mOrderType oLM, mTimeInForce oTIF, bool oPO, unsigned long oT) = 0;
virtual void cancel(string oI, string oE, mSide oS, unsigned long oT) = 0;
virtual void cancelAll() = 0;
Expand Down
Loading

0 comments on commit 28ef07c

Please sign in to comment.