Интерфейс SctpSender - Historicteam/SctpClient GitHub Wiki

SctpSender это ключевой интерфейс SctpClient для осуществления взаимодействия с SCTP-сервером. Он предоставляет методы для отправки всех видов запросов, поддерживаемых sctp-протоколом. Ниже приводится перечень sctp-команд и соответсвующих им методов SctpSender-а:


Команда: Проверка существования элемента с указанным sc-адресом
Метод: check(model.scparametr.ScAddress scAddress)
Аргументы: scAddress - sc-адрес проверяемого sc-элемента
Результат: Результат выполнения лежит в возвращаемом коде. Если там код успешного выполнения, то элемент с указанным sc-адресом существует, иначе возвращается код ошибки.

Команда: Получение типа sc-элемента по sc-адресу
Метод: type(model.scparametr.ScAddress scAddress)
Аргументы: scAddress - sc-адрес элемента для получения типа
Результат: Если выполнение команды успешно, то возвращается тип sc-элемента. Иначе результатов нет.


Команда: Удаление sc-элемента с указанным sc-адресом
Метод: delete(model.scparametr.ScAddress scAddress)
Аргументы: scAddress - sc-адрес удаляемого sc-элемента
Результат: Команда возвращает лишь код удачного выполнения, если элемент удален успешно, иначе возвращается код ошибки.


Команда: Создание нового sc-узла указанного типа
Метод: create(model.scparametr.scelementtype.ScNodeType scNodeType)
Аргументы: scNodeType - тип создаваемого sc-узла
Результат: Если выполнение команды успешно, то в качестве результата возвращается адрес созданного sc-узла. Иначе результатов нет.


Команда: Создание новой sc-ссылки
Метод: create()
Аргументы: нет
Результат: Если выполнение команды успешно, то в качестве результата возвращается адрес созданной sc-ссылки. Иначе результатов нет.


Команда: Создание новой sc-дуги указанного типа, с указнным начальным и конечным элементами
Метод: create(model.scparametr.scelementtype.ScConnectorType scConnectorType, model.scparametr.ScAddress scAddressFirstElement, model.scparametr.ScAddress scAddressSecondElement)
Аргументы:
scConnectorType - тип создаваемой sc-дуги
scAddressFirstElement - sc-адрес начального элемента sc-дуги
scAddressSecondElement - sc-адрес конечного элемента sc-дуги
Результат: Если выполнение команды успешно, то в качестве результата возвращается адрес созданной sc-дуги. Иначе результатов нет.


Команда: Получение начального и конечного элемента sc-дуги
Метод: get(model.scparametr.ScAddress scAddress)
Аргументы: scAddress - sc-адрес дуги у которой необходимо получить начальный и конечный элемент
Результат: Возвращаются sc-адрес начального элемента дуги и sc-адрес конечного элемента дуги.


Команда: Получение содержимого sc-ссылки
Метод: content(model.scparametr.ScAddress scAddress)
Аргументы: scAddress - sc-адрес ссылки для получения содержимого
Результат: Если выполнение команды успешно, то возвращается содержимое. Иначе результатов нет.


Команда: Поиск всех sc-ссылок с указанным содержимым
Метод: serch(model.scparametr.ScString scString)
Аргументы:
scString - содержимое для поиска
Результат: Если выполнение команды успешно, то в качестве результата возвращается адреса, найденных ссылок.


Команда: Установка содержимого sc-ссылки
Метод: link(model.scparametr.ScAddress scAddress, model.scparametr.ScString scString)
Аргументы:
scAddress - sc-адрес ссылки
scString - данные устанавливаемого содержимого
Результат: Результат выполнения лежит в возвращаемом коде. Если там код успешного выполнения, то содержимое установлено, иначе возвращается код ошибки.


Команда: Найти конструкции по указанному 3-х или 5-ти элементному шаблону
Методы: find и все его проявления
Аргументы: соответсвуют одному из шаблонов поиска:

3-ех элементные шаблоны 3f_a_a, 3a_a_f, 3f_a_f
5-и элементные шаблоны 5f_a_a_a_f, 5_a_a_f_a_f, 5_f_a_f_a_f, 5_f_a_f_a_a, 5_f_a_a_a_a, 5_a_a_f_a_a
Для неизвестных элементов(assign) передается тип sc-элемента, а для известных(fixed) их sc-аддреса.
Результат: Если выполнение команды успешно, то в результатах лежат последовательно все найденные конструкции, они задаются sc-адресами найденых sc-элементов.

Команда: Создание подписки на событие
Метод: subscribe(model.scparametr.ScEventType scEventType, model.scparametr.ScAddress scAddress)
Аргументы:
scEventType - тип события
scAddress - адрес sc-элемента для подписки на событие
Результат: В случае, если подписка на событие произведена успешно, то возвращается id подписки. Если же подписаться на событие не удалось, то возвращается код ошибки.


Команда: Удаление подписки на событие
Метод: delete(model.scparametr.ScIdSubscription scIdSubscription)
Аргументы: scIdSubscription - id подписки, которую необходимо удалить
Результат: В результате неудачнго выполнения запроса возвращается только код ошибки. Если же запрос обработан без ошибок, то в результате будет id подписки, которая была удалена


Команда: Поиск sc-элемента по его системному идентификатору
Метод: find(model.scparametr.ScString scString)
Аргументы:
scString - идентификатор для поиска
Результат: Если выполнение команды успешно, то в качестве результата возвращается адрес найденого sc-эелемента.


Команда: Установка системного идентификатора sc-элемента
Метод: set(model.scparametr.ScAddress scAddress,model.scparametr.ScString scString)
Аргументы:
scAddress - адрес sc-элемента
scString - новый идентификатор
Результат: Результат станет известен, когда эта команда будет реализована хотя бы на одном SCTP-сервере.


Команда: Получение статистики с сервера, во временных границах. Время используется в формате Unix-time
Метод: get(java.time.Clock start,java.time.Clock finish)
Аргументы:
start - Нижняя временная граница
finish - Верхняя временная граница
Результат: Если выполнение команды успешно, то в качестве результата возвращается обертка SctpSender.EventTimeSignature, на что она способна пока остается загадка.


Команда: Получение версии протокола
Метод: get
Аргументы: нет
Результат: Если команда выполнена успешно, то в качестве результата возвращается 4 байта, которые обозначают версию используемого сервером sctp протокола. (способ кодирования версии необходимо уточнить)


⚠️ **GitHub.com Fallback** ⚠️