Prechádzať zdrojové kódy

SVI Добавление документации; 100.0%

SVI 6 mesiacov pred
rodič
commit
4caad972df
4 zmenil súbory, kde vykonal 83 pridanie a 0 odobranie
  1. 35 0
      ikernel_bus.md
  2. 24 0
      v2/docs/alias.md
  3. 18 0
      v2/docs/idict_topic_serve.md
  4. 6 0
      v2/docs/types.md

+ 35 - 0
ikernel_bus.md

@@ -0,0 +1,35 @@
+# IKernelBus
+
+Шина ядра.
+
+Может иметь несколько реализаций. Из фреймворка предлагается две реализации :
+
+* локальная
+* поверх HTTP
+
+## Интерфейс
+
+```go
+// IKernelBus -- шина сообщений ядра
+//
+// Публикация и запрос требуют параметров на _передачу_.
+// Подписка и обслуживание входящих запросов требует _обработчиков_.
+type IKernelBus interface {
+    // Publish -- публикует сообщение в шину
+    Publish(topic ATopic, binMsg []byte) Result[bool]
+    // SendRequest -- выполняет запрос по указанному топику
+    SendRequest(topic ATopic, binReq []byte) Result[[]byte]
+
+    // Subscribe -- подписывает обработчик на топик
+    Subscribe(IBusHandlerSubscribe) Result[bool]
+    // Unsubscribe -- отписывается от топика
+    Unsubscribe(IBusHandlerSubscribe)
+    // RegisterServe -- Регистрирует обработчик на обслуживание входящих запросов
+    RegisterServe(IBusHandlerServe)
+
+    // IsWork -- возвращает признак работы шины
+    IsWork() bool
+    // Log -- возвращает буферный лог
+    Log() ILogBuf
+}
+```

+ 24 - 0
v2/docs/alias.md

@@ -3,3 +3,27 @@
 Алиасы пользовательских типов служат усилению типизации в ядре, что повышает надёжность в-целом.
 
 *Примечание: алиас пользовательского типа в `go` является самостоятельным типом и требует приведения к базовому, если это необходимо*.
+
+## ATime
+
+Метка времени в формате:
+
+```text
+2006-01-02 15:04:05.000 -07 MST
+```
+
+## AStreamName
+
+Имя потока ожидания (в потоках ядра)
+
+## ATopic
+
+Имя топика в шине ядра
+
+## AHandlerName
+
+Имя функции-обработчика в шине ядра
+
+## AModuleName
+
+Имя модуля в модульной структуре

+ 18 - 0
v2/docs/idict_topic_serve.md

@@ -0,0 +1,18 @@
+# IDictTopicServe -- интерфейс к обработчику входящих запросов на словарь топиков
+
+## Интерфейс
+
+```go
+// IDictTopicServe -- интерфейс к обработчику входящих запросов на словарь топиков
+//
+// При обслуживании входящих запросов обработчик может быть только ОДИН на КАЖДЫЙ топик.
+// Но обработчик вызывается конкурентно.
+type IDictTopicServe interface {
+    // Register -- регистрирует единственный обработчик на единственный топик
+    Register(IBusHandlerServe)
+    // SendRequest -- выполняет запрос по указанному топику
+    SendRequest(topic ATopic, binReq []byte) Result[[]byte]
+    // Unregister -- удаляет единственный обработчик с единственного топика
+    Unregister(IBusHandlerServe)
+}
+```

+ 6 - 0
v2/docs/types.md

@@ -1,3 +1,9 @@
 # Типы интерфейсов ядра
 
 Интерфейсы введены для ослабления зацепления между объектами и типами.
+
+## Список
+
+- [**IKernelBus**](/ikernel_bus.md) -- шина ядра
+- **IBusClient** -- клиент шины ядра (повторяет интерфейс шины ядра)
+- [**IDictTopicServe**](./idict_topic_serve.md) -- кастомный обработчик входящих запросов