Skip to content

Commit

Permalink
Update readme.md
Browse files Browse the repository at this point in the history
  • Loading branch information
untoxa authored Oct 8, 2020
1 parent 5154df1 commit 7260832
Showing 1 changed file with 22 additions and 16 deletions.
38 changes: 22 additions & 16 deletions readme.md
Original file line number Diff line number Diff line change
@@ -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.

Expand All @@ -15,50 +21,50 @@ 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":
------------

Файл 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 будет помещено это значение, иначе хранилице будет содержать обе строки:
Expand All @@ -79,9 +85,9 @@ IPC:
кастомизировать. Общее хранилище существует, пока запущен сервер. Удаленное пространство имен создается
следующим образом:

`
```
local ns = sh.GetIPCNameSpace("test_name_space")
`
```

Способ работы с ним не отличается.

Expand All @@ -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 пространства:
-------------------------
Expand Down

0 comments on commit 7260832

Please sign in to comment.