Proto commits in Enfernuz/quik-lua-rpc

These 77 commits are when the Protocol Buffers files have changed:

Commit:65d2c13
Author:Anton Abrosimov

Added option allow_alias = true to RPC.proto

The documentation is generated from this commit.

Commit:34b2c62
Author:Anton Abrosimov

Added const GET_PARAM_EX2

Commit:0d9de05
Author:Arsentii Nerushev

Changed names of the "watching_" parameters.

Commit:cf06c74
Author:Arsentii Nerushev

Changed the types of the fields in the sleep proto messages.

Commit:2c784e6
Author:Arsentii Nerushev

Changed the types of the fields in the Highlight proto messages.

Commit:2908f7c
Author:Arsentii Nerushev

Changed the types of the fields in the bit.tohex proto messages.

Commit:42adabe
Author:Arsentii Nerushev

Changed the types of the fields in the bit.bxor proto messages.

Commit:2f1124d
Author:Arsentii Nerushev

Changed the types of the fields in the bit.test proto messages.

Commit:d814a1e
Author:Arsentii Nerushev

Changed the types of the fields in the bit.bor proto messages.

Commit:87f57ec
Author:Arsentii Nerushev

Changed the types of the fields in the bit.bnot proto messages.

Commit:69211a7
Author:Arsentii Nerushev

Changed the types of the fields in the bit.band proto messages.

Commit:5ce8826
Author:Arsentii Nerushev

Changed the types of some fields in .proto-messages.

Commit:142b339
Author:Arsentii Nerushev

Changed API for SetSelectedRow.

Commit:b1f6a37
Author:Arsentii Nerushev

Changed API for SetCell, SetColor, Highlight.

Commit:5706dbe
Author:Arsentii Nerushev

Moved protobud encoding/decoding implementation to the serde module instead of a helper one. Renamed Request pb-messages in the .proto files to Args.

Commit:8ed947c
Author:Arsentii Nerushev

Moved all field to a type.

Commit:d96deb8
Author:Arsentii Nerushev

Enhanced SetUpdateCallback.

Commit:c3e17e4
Author:Arsentii Nerushev

Converted a variable from the result to nullable.

Commit:d91534d
Author:Arsentii Nerushev

Converted a variable from the result to nullable.

Commit:f30e873
Author:Arsentii Nerushev

Converted the result to nullable.

Commit:5ce1aa5
Author:Arsentii Nerushev

Null is now supported.

Commit:4c4de74
Author:Arsentii Nerushev

Added the Error pb message.

Commit:f12d983
Author:Arsentii Nerushev

Changed some pb entities.

Commit:4d3e521
Author:Arsentii Nerushev

Registered the OnDataSourceUpdate event type.

Commit:908200c
Author:Arsentii Nerushev

WIP

Commit:caae1e0
Author:Arsentii Nerushev

WIP: handling the (error) cases where the target QLua function returns nil.

Commit:801277e
Author:Arsentii Nerushev

WIP: handling the (error) cases where the target QLua function returns nil.

Commit:f50bc22
Author:Arsentii Nerushev

WIP: json & protobuf serde support.

Commit:628b1a7
Author:Arsentii Nerushev

Fixed bugs.

Commit:f7f2d04
Author:Arsentii Nerushev

Working on event publishing: done OnStop, OnAccountBalance, OnFuturesLimitChange.

Commit:9ab144b
Author:Arsentii Nerushev

Added new QLua API functions: bit.test and os.date.

Commit:6653003
Author:Arsentii Nerushev

Solution to #16.

Commit:f0c1e94
Author:Arsentii Nerushev

WIP #14. Reimplemented calls to the following functions: sleep, getWorkingFolder, PrintDbgStr, getOrderByNumber, getNumberOf, SearchItems.

Commit:8a2f9c9
Author:Arsentii Nerushev

* this event carries data.

Commit:497bb68
Author:Arsentii Nerushev

* solved #11.

Commit:5504584
Author:Arsentii Nerushev

* changed usage of int64 types to uint64 in some fields, as the Lua protobuf binding uses the same encoder both for int32 and int64 types which is not appropriate for the fields.

Commit:d5a0818
Author:Arsentii Nerushev

* slightly changed the schema of the SET_CELL request; * added a test for the rpc-handler's handling of the SET_CELL & SET_TABLE_NOTIFICATION_CALLBACK requests.

Commit:0cd811a
Author:Arsentii Nerushev

* changed the schema of the request.

Commit:134020e
Author:Arsentii Nerushev

* changed the request's schema.

Commit:9890068
Author:Arsentii Nerushev

* changed the DateTimeEntry message's schema.

Commit:2bac7aa
Author:Arsentii Nerushev

* restructured the API package.

Commit:f230a2f
Author:Arsentii Nerushev

* moved all the procedures into their own .proto files. Bugs incoming!

Commit:81b9598
Author:Arsentii Nerushev

* [WIP] moving the procedures' requests & responses to their own .proto files.

Commit:db34895
Author:Arsentii Nerushev

* The qlua_rpc.proto is too heavy -- just started to lower it's granularity and move the procedures' request & results to its own .proto files.

Commit:b9f0172
Author:Arsentii Nerushev

* moved the Param and Quote messages from qlua_events.proto to qlua_structures.proto (ParamEventInfo and QuoteEventInfo respectively).

Commit:cea68b6
Author:Arsentii Nerushev

* replaced map<string, string> request & response parameters where applicable.

Commit:8bae220
Author:Arsentii Nerushev

WARNING: the commit has some breaking changes, so some of the procedures may not work properly. It will be fixed ASAP. * continued the file structure reorganization; * moved the Event-related definitions to a separate .proto (qlua_events.proto); * moved DateTimeEntry and CandleEntry .proto-definitions to qlua_structures.proto; * added CP1251 to UTF8 conversion utility. Every non-empty string from QLUA now goes through the conversion; * struct_factory.lua -- moved the creation of some protobuf structures there. The EventHandler's handlers are now essentially the factory methods from struct_factory.lua; * renamed qlua_msg.proto to qlua_rpc.proto.

Commit:f77b36a
Author:Arsentii Nerushev

* moved Event Data & Types definitions to separate .proto-files; * introduced EventHandler component to handle QLUA events (produces a proto-object from qlua.events.* which are then injected into a ZMQ PUB-message).

Commit:345a9df
Author:Arsentii Nerushev

* added support for: BOOLEAN Subscribe_Level_II_Quotes(STRING class_code, STRING sec_code); BOOLEAN Unsubscribe_Level_II_Quotes(STRING class_code, STRING sec_code); BOOLEAN IsSubscribed_Level_II_Quotes (STRING class_code, STRING sec_code).

Commit:af25937
Author:Arsentii Nerushev

* added support for: BOOLEAN ParamRequest(STRING class_code, STRING sec_code, STRING db_name); BOOLEAN CancelParamRequest(STRING class_code, STRING sec_code, STRING db_name).

Commit:15407ad
Author:Arsentii Nerushev

* made use of string instead of double for money and quantity representation.

Commit:fd77dff
Author:Arsentii Nerushev

* added support for: STRING bit.tohex(NUMBERx [, NUMBER n]); NUMBER bit.bnot(NUMBER x); NUMBER bit.band(NUMBER x1, NUMBER x2, …); NUMBER bit.bor(NUMBER x1, NUMBER x2,…); NUMBER bit.bxor(NUMBER x1, NUMBER x2,…).

Commit:1d34706
Author:Arsentii Nerushev

* added support for: NUMBER AddLabel(STRING chart_tag, TABLE label_params); BOOLEAN DelLabel(STRING chart_tag, NUMBER label_id); BOOLEAN DelAllLabels(STRING chart_tag); TABLE GetLabelParams(STRING chart_tag, NUMBER label_id); BOOLEAN SetLabelParams(STRING chart_tag, NUMBER label_id, TABLE label_params).

Commit:e6b42d0
Author:Arsentii Nerushev

* organized a better project structure.

Commit:04bb8ed
Author:Arsentii Nerushev

* solutions to the Bitbucket issues #3, #4 (better error handling); * introduced an enum type for icon_type field for Message_Request instead of int32.

Commit:4a35bc6
Author:Arsentii Nerushev

* implemented publishing of QLUA events in qlua-service.lua; * qlua-service.lua has the publishing functionality and that of worker.lua * worker.lua is considered to be removed in the future commits.

Commit:bb3410c
Author:Arsentii Nerushev

* added support for: TABLE SearchItems(STRING table_name, NUMBER start_index, NUMBER end_index, FUNCTION fn [, STRING params]).

Commit:b6f7b06
Author:Arsentii Nerushev

* added support for: BOOLEAN res SetUpdateCallback(FUNCTION callback_function); NUMBER datasource:H(NUMBER index); NUMBER datasource:L(NUMBER index); NUMBER datasource:C(NUMBER index); NUMBER datasource:T(NUMBER index); NUMBER datasource:Size(); BOOLEAN datasource:Close(); BOOLEAN datasource:SetEmptyCallback().

Commit:99c8db4
Author:Arsentii Nerushev

* added support for: TABLE data_source, STRING error_desc CreateDataSource(STRING class_code, STRING sec_code, NUMBER interval, [, STRING param]); NUMBER datasource:O(NUMBER candle_index).

Commit:de92d1a
Author:Arsentii Nerushev

* changed response payload: removed 'oneof' section, so the is_error and result fields are now getting sent together; * added support for: NUMBER top, NUMBER left, NUMBER bottom, NUMBER right GetWindowRect(NUMBER t_id); BOOLEAN SetWindowPos(NUMBER t_id, NUMBER x, NUMBER y, NUMBER dx, NUMBER dy); NUMBER SetTableNotificationCallback(NUMBER t_id, FUNCTION f_cb).

Commit:86032cb
Author:Arsentii Nerushev

* added support for: TABLE GetCell(NUMBER t_id, NUMBER key, NUMBER code); NUMBER rows, NUMBER col GetTableSize(NUMBER t_id); STRING GetWindowCaption(NUMBER t_id); BOOLEAN SetCell(NUMBER t_id, NUMBER key, NUMBER code, STRING text, NUMBER value); BOOLEAN SetWindowCaption(NUMBER t_id, STRING str); NUMBER RGB(NUMBER red, NUMBER green, NUMBER blue); BOOLEAN SetColor(NUMBER t_id, NUMBER row, NUMBER col, NUMBER b_color, NUMBER f_color, NUMBER sel_b_color, NUMBER sel_f_color); BOOLEAN Highlight(NUMBER t_id, NUMBER row, NUMBER col, NUMBER b_color, NUMBER f_color, NUMBER timeout); NUMBER row SetSelectedRow(NUMBER table_id, NUMBER row).

Commit:6658387
Author:Arsentii Nerushev

* minor change: added new lines at the end of each file

Commit:28e7d4d
Author:Arsentii Nerushev

* added support for: BOOLEAN Clear(NUMBER t_id); BOOLEAN DeleteRow(NUMBER t_id, NUMBER key); NUMBER InsertRow(NUMBER t_id, NUMBER key); BOOLEAN IsWindowClosed(NUMBER t_id).

Commit:5caf094
Author:Arsentii Nerushev

* added support for: NUMBER AddColumn(NUMBER t_id, NUMBER iCode, STRING name, BOOLEAN is_default, NUMBER par_type, NUMBER width); NUMBER AllocTable(); NUMBER CreateWindow(NUMBER t_id); BOOLEAN DestroyTable(NUMBER t_id).

Commit:bdf1e44
Author:Arsentii Nerushev

* added support for: TABLE getBuySellInfo(STRING firm_id, STRING client_code, STRING class_code, STRING sec_code, NUMBER price); TABLE getBuySellInfoEx(STRING firm_id, STRING client_code, STRING class_code, STRING sec_code, NUMBER price).

Commit:77b7e64
Author:Arsentii Nerushev

* added support for: TABLE CalcBuySell(STRING class_code, STRING sec_code, STRING client_code, STRING account, NUMBER price, BOOLEAN is_buy, BOOLEAN is_market); -- NOT TESTED TABLE getParamEx(STRING class_code, STRING sec_code, STRING param_name); TABLE getParamEx2(STRING class_code, STRING sec_code, STRING param_name); TABLE getPortfolioInfo(STRING firm_id, STRING client_code); TABLE getPortfolioInfo(STRING firm_id, STRING client_code, NUMBER limit_kind).

Commit:b18922d
Author:Arsentii Nerushev

* switched protobuf lua plugin to that of https://github.com/urbanairship/protobuf-lua to deal with Lua local variables limit (and probably some other issues as well); * tested TABLE getFuturesLimit( ... ) function; * TABLE getFuturesHolding( ... ) function should work as well, but I have not tested it though; * replaced 'repeated TableEntry ...' with 'map<string, string> ...' where possible.

Commit:35626fe
Author:Arsentii Nerushev

* added support for: STRING result sendTransaction(TABLE transaction). -- NOT TESTED

Commit:c562766
Author:Arsentii Nerushev

* added support for: NUMBER getLinesCount(STRING tag); NUMBER getNumCandles(STRING tag); TABLEt, NUMBER n, STRING l getCandlesByIndex(STRING tag, NUMBER line, NUMBER first_candle, NUMBER count).

Commit:5e21c12
Author:Arsentii Nerushev

* renamed qlua_rpc.proto to qlua_msg.proto; * added support for: TABLE getFuturesLimit(STRING firmid, STRING trdaccid, NUMBER limit_type, STRING currcode); -- NOT TESTED YET TABLE getFuturesHolding(STRING firmid, STRING trdaccid, STRING sec_code, NUMBER type); -- NOT TESTED YET TABLE getSecurityInfo(STRING class_code, STRING sec_code); TABLE getTradeDate().

Commit:b873d81
Author:Arsentii Nerushev

* added support for: TABLE getQuoteLevel2(STRING class_code, STRING sec_code).

Commit:6d5d7c7
Author:Arsentii Nerushev

* added support for: TABLE getMoney(STRING client_code, STRING firmid, STRING tag, STRING currcode); TABLE getMoneyEx(STRING firmid, STRING client_code, STRING tag, STRING currcode, NUMBER limit_kind); TABLE getDepo(STRING client_code, STRING firmid, STRING sec_code, STRING trdaccid); TABLE getDepoEx(STRING firmid, STRING client_code, STRING sec_code, STRING trdaccid, NUMBER limit_kind).

Commit:5c7e085
Author:Arsentii Nerushev

* added support for: STRING getClassesList(); TABLE getClassInfo(STRING class_code); STRING getClassSecurities(STRING class_code).

Commit:ee88417
Author:Arsentii Nerushev

* added support for: NUMBER SLEEP(NUMBER time); STRING getWorkingFolder(); PrintDbgStr(STRING s); TABLE getItem(STRING TableName, DOUBLE Index); TABLE order, NUMBER indx getOrderByNumber(STRING class_code, NUMBER order_id) -- not checked if working though; NUMBER getNumberOf(STRING TableName).

Commit:96b0a44
Author:Arsentii Nerushev

* cosmetic change: changed tabs to 4 spaces. My IDE is somehow bugged or unconfigured so it messes up code with tabs.

Commit:ea481e4
Author:Arsentii Nerushev

* added/improved handling for: STRING getInfoParam(STRING infoParam) NUMBER message(STRING message, NUMBER icon_type) * made variables' names underscored instead of camelCase'd in the .proto definition

Commit:dd7b783
Author:Arsentii Nerushev

* rr_broker.lua -- a request-reply broker using a ZMQ Lua binding; * worker.lua -- the backend which receives and processes requests to QLua library via ZMQ; * client.lua -- an example of a client which sends requests to the backend; * proto/qlua_rpc.proto -- a protobuf definition for the requests and responses of the QLua backend; * proto/qlua_protobuf/qlua_rpc_pb.lua -- generated .lua file from the protobuf definition above