From 7260832c0aa9ec7376f74eb970e2b11488a44362 Mon Sep 17 00:00:00 2001 From: Toxa <56631470+untoxa@users.noreply.github.com> Date: Thu, 8 Oct 2020 23:04:38 +0300 Subject: [PATCH] Update readme.md --- readme.md | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/readme.md b/readme.md index fe1d179..7b7b120 100644 --- a/readme.md +++ b/readme.md @@ -1,9 +1,15 @@ -ОПИСАНИЕ: -========= +Библиотека LUA SHARE +==================== Текущие версии предназначены для работы с QUIK 8.5 x64 и выше с поддержкой версии lua 5.3. Если вам необходима библиотека для работы с более ранними версиями QUIK, вы можете скачать предыдущий релиз из истории релизов. +Скачать: [текущий релиз для QUIK 8.X x64](https://github.com/untoxa/lua_share/releases/download/latest/lua_share_binaries.zip) +----------------------------------------- + +ОПИСАНИЕ: +========= + Библиотека предназначена для обмена данными между lua-скриптами, работающими в разных процессах, а так же в одном процессе, но в разных lua-машинах. Прежде всего, она будет полезна пользователям терминала QUIK. @@ -15,37 +21,37 @@ lua_share_server.exe, lua-скрипт lua_share_server.lua и rpc-библио инициализация: -------------- -` +``` package.cpath = getScriptPath() .. "/?.dll" sh = require "lua_share" -` +``` запись и чтение: ---------------- -` +``` sh["hello"] = "world" -- запись val = sh["hello"] -- чтение -` +``` пространства имен: ------------------ -` +``` local ns = sh.GetNameSpace("test_name_space") -- создать пространство имен test_name_space ns["hello"] = "world" -- запись val = ns["hello"] -- чтение -` +``` получение снапшота: ------------------- -` +``` local ns = sh.GetNameSpace("test_name_space") -- создать пространство имен test_name_space ns["hello"] = "hello" -- 1 значение ns["world"] = "world" -- 2 значение val = ns:DeepCopy() -- получение снапшота -` +``` "bootstrap": ------------ @@ -53,12 +59,12 @@ val = ns:DeepCopy() -- получение снапшота Файл lua_share_boot.lua содержит код, который кастомизирует поведение хранилища. В текущей реализации используется сравнение таблиц по содержимому. Например: -` +``` local ns = sh.GetNameSpace("test_name_space") ns[{1, 2, {3, 4}}] = "JOHN" ns[{1, 2, {3, 4}}] = "DOE" tmp = ns[{1, 2, {3, 4}}] -` +``` Если файл lua_share_boot.lua существует, то в результате хранилище будет содержать только строку "DOE" и в переменную tmp будет помещено это значение, иначе хранилице будет содержать обе строки: @@ -79,9 +85,9 @@ IPC: кастомизировать. Общее хранилище существует, пока запущен сервер. Удаленное пространство имен создается следующим образом: -` +``` local ns = sh.GetIPCNameSpace("test_name_space") -` +``` Способ работы с ним не отличается. @@ -92,10 +98,10 @@ RPC: Существует возможность вызова удаленной функции на lua_share_server и получить результаты ее выполнения. Тестовая функция testfunc() определена в lua_share_server.lua. Вот пример ее вызова: -` +``` local ns = sh.GetIPCNameSpace("test_name_space") a, b, c = ns("testfunc", "a", {1, 2, {3, "b"}}) -- просто вызываем IPC неймспейс как функцию -` +``` pre-defined пространства: -------------------------