Skip to content

Commit

Permalink
Доработки по кодревью
Browse files Browse the repository at this point in the history
  • Loading branch information
Nivanchenko committed Jul 8, 2024
1 parent f97c79a commit 79be76f
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -50,19 +50,19 @@
Процедура НайтиИУдалитьСоединения()

ПулСоеднинений = СоединенияСерверныхСобытий.ПулСоединений();

Check notice on line 52 in src/Классы/КонтрольСоединенийСерверныхСобытий.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

src/Классы/КонтрольСоединенийСерверныхСобытий.os#L52

Возможная опечатка в "Соеднинений"
СоединенеияКУдалению = Новый Массив();
ИдСоединенийКУдалению = Новый Массив();
Для Каждого СтрокаСоединения из ПулСоеднинений Цикл

Check notice on line 54 in src/Классы/КонтрольСоединенийСерверныхСобытий.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

src/Классы/КонтрольСоединенийСерверныхСобытий.os#L54

Ключевое слово "из" написано не канонически
Если НЕ СоединениеАктивно(СтрокаСоединения) Тогда
СоединенеияКУдалению.Добавить(СтрокаСоединения);
Если НЕ СоединениеАктивно(СтрокаСоединения.Соединение) Тогда
ИдСоединенийКУдалению.Добавить(СтрокаСоединения.ИдСоединения);
КонецЕсли;
КонецЦикла;

Для Каждого СоединениеКУдалению из СоединенеияКУдалению Цикл
СоединенияСерверныхСобытий.УдалитьСтрокуПула(СоединениеКУдалению);
Для Каждого ИдСоединения из ИдСоединенийКУдалению Цикл

Check notice on line 60 in src/Классы/КонтрольСоединенийСерверныхСобытий.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

src/Классы/КонтрольСоединенийСерверныхСобытий.os#L60

Ключевое слово "из" написано не канонически
СоединенияСерверныхСобытий.УдалитьСтрокуПулаПоИдСоединения(ИдСоединения);
КонецЦикла;

КонецПроцедуры

Функция СоединениеАктивно(СтрокаСоединения)
Возврат БрокерСообщенийСобытийСервера.ОтправитьВПопытке(СтрокаСоединения.Соединение, Сообщение);
Функция СоединениеАктивно(Соединение)
Возврат БрокерСообщенийСобытийСервера.ОтправитьВПопытке(Соединение, Сообщение);
КонецФункции
10 changes: 7 additions & 3 deletions src/Классы/ОбработчикСоединений.os
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
&Пластилин Перем Настройки;
&Пластилин Перем МенеджерВходящихСоединений;

Перем ТаймаутЧтения;

Check warning on line 4 in src/Классы/ОбработчикСоединений.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

src/Классы/ОбработчикСоединений.os#L4

Добавьте описание переменной
Перем РазмерБуфера;

Check warning on line 5 in src/Классы/ОбработчикСоединений.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

src/Классы/ОбработчикСоединений.os#L5

Добавьте описание переменной

&ЛогВебСервера
Перем Лог;

&Желудь
Процедура ПриСозданииОбъекта()

ТаймаутЧтения = 10;
РазмерБуфера = 1024;
КонецПроцедуры

Процедура Обработать(Соединение) Экспорт
Expand Down Expand Up @@ -48,8 +52,8 @@

Попытка
Пока Истина Цикл
Соединение.ТаймаутЧтения = 10;
ДанныеСоединения = Соединение.ПрочитатьДвоичныеДанные(1024);
Соединение.ТаймаутЧтения = ТаймаутЧтения;
ДанныеСоединения = Соединение.ПрочитатьДвоичныеДанные(РазмерБуфера);
Данные.Добавить(ДанныеСоединения);
КонецЦикла;
Исключение

Check warning on line 59 in src/Классы/ОбработчикСоединений.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

src/Классы/ОбработчикСоединений.os#L59

Отсутствует код в блоке "Исключение"
Expand Down
2 changes: 1 addition & 1 deletion src/Классы/СерверноеСобытие.os
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

Процедура ПриСозданииОбъекта()
ТипСобытия = "";
Индентификатор = "";
Идентификатор = "";
Данные = Новый Массив();
КонецПроцедуры

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
#Использовать semaphore

Перем ПулСоединений;

Check warning on line 3 in src/Классы/СоединенияСерверныхСобытий.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

src/Классы/СоединенияСерверныхСобытий.os#L3

Добавьте описание переменной
Перем Подписки;

Check warning on line 4 in src/Классы/СоединенияСерверныхСобытий.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

src/Классы/СоединенияСерверныхСобытий.os#L4

Добавьте описание переменной
Перем Семафор;

Check warning on line 5 in src/Классы/СоединенияСерверныхСобытий.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

src/Классы/СоединенияСерверныхСобытий.os#L5

Добавьте описание переменной

&Желудь
Процедура ПриСозданииОбъекта(&Пластилин ПодпискиСерверныхСобытий)
Expand All @@ -12,17 +15,21 @@
КонецФункции

Функция ПулСоединений() Экспорт
Возврат ПулСоединений;
Возврат ПулСоединений.Скопировать(,"Соединение, ИдСоединения");

Check notice on line 18 in src/Классы/СоединенияСерверныхСобытий.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

src/Классы/СоединенияСерверныхСобытий.os#L18

Справа от ',' не хватает пробела
КонецФункции

Процедура Добавить(Соединение, Идентификатор, Топик) Экспорт

Семафор.Захватить();

НовоеСоединение = ПулСоединений.Добавить();
НовоеСоединение.Идентификатор = Идентификатор;
НовоеСоединение.Топик = Топик;
НовоеСоединение.Соединение = Соединение;
НовоеСоединение.ИдСоединения = Строка(Новый УникальныйИдентификатор());

Семафор.Освободить();

ОповеститьОткрытиеСоединения(Идентификатор, Топик, НовоеСоединение.ИдСоединения);

КонецПроцедуры
Expand All @@ -34,8 +41,18 @@
КонецЦикла;
КонецПроцедуры

Процедура УдалитьСтрокуПулаПоИдСоединения(ИдСоединения) Экспорт
Соединения = ПолучитьСоединениеПоИдСоединения(ИдСоединения);

Если Соединения.Количество() > 0 Тогда
УдалитьСтрокуПула(Соединения[0]);
КонецЕсли;
КонецПроцедуры

Процедура УдалитьСтрокуПула(СтрокаСоединения) Экспорт

Семафор.Захватить();

Идентификатор = СтрокаСоединения.Идентификатор;
Топик = СтрокаСоединения.Топик;
ИдСоединения = СтрокаСоединения.ИдСоединения;
Expand All @@ -44,6 +61,8 @@
ОсвободитьОбъект(СтрокаСоединения.Соединение);
ПулСоединений.Удалить(СтрокаСоединения);

Семафор.Освободить();

ОповеститьЗакрытиеСоединения(Идентификатор, Топик, ИдСоединения);
КонецПроцедуры

Expand Down Expand Up @@ -90,11 +109,18 @@
КонецФункции

Процедура Инициализация()
Семафор = Новый Семафор();
ПулСоединений = Новый ТаблицаЗначений();
ПулСоединений.Колонки.Добавить("Идентификатор");
ПулСоединений.Колонки.Добавить("Топик");
ПулСоединений.Колонки.Добавить("Соединение");
ПулСоединений.Колонки.Добавить("ИдСоединения");

ПулСоединений.Индексы.Добавить("Топик");
ПулСоединений.Индексы.Добавить("ИдСоединения");
ПулСоединений.Индексы.Добавить("Идентификатор");
ПулСоединений.Индексы.Добавить("Топик, Идентификатор");

КонецПроцедуры

Процедура ЗакрытьСоединениеВПопытке(Соединение) Экспорт
Expand Down
8 changes: 4 additions & 4 deletions tests/alltest.os
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
КонецФункции

Функция ПроизвольныйГетЗапрос(АдресТеста, Заголовки = Неопределено)

Check notice on line 40 in tests/alltest.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

tests/alltest.os#L40

Возможная опечатка в "Гет"
Соединение = Новый HTTPСоединение("http://localhost",3333,,,,);
Соединение = Новый HTTPСоединение("http://localhost",3333,,,,5);

Check warning on line 41 in tests/alltest.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

tests/alltest.os#L41

Создайте константу с понятным названием, присвойте ей значение "5" и используйте эту константу вместо магического числа.

Check warning on line 41 in tests/alltest.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

tests/alltest.os#L41

Создайте константу с понятным названием, присвойте ей значение "3333" и используйте эту константу вместо магического числа.

Check notice on line 41 in tests/alltest.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

tests/alltest.os#L41

Справа от ',' не хватает пробела

Check notice on line 41 in tests/alltest.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

tests/alltest.os#L41

Справа от ',' не хватает пробела

Check notice on line 41 in tests/alltest.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

tests/alltest.os#L41

Справа от ',' не хватает пробела

Check notice on line 41 in tests/alltest.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

tests/alltest.os#L41

Справа от ',' не хватает пробела

Check notice on line 41 in tests/alltest.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

tests/alltest.os#L41

Справа от ',' не хватает пробела
Запрос = Новый HTTPЗапрос(АдресТеста);
Если Не Заголовки = Неопределено Тогда
Запрос.Заголовки = Заголовки;
Expand Down Expand Up @@ -665,9 +665,9 @@
// Дано
КонтролССЕ = Поделка.НайтиЖелудь("КонтролССЕ");

Check notice on line 666 in tests/alltest.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

tests/alltest.os#L666

Возможная опечатка в "Контрол"

Check notice on line 666 in tests/alltest.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

tests/alltest.os#L666

Возможная опечатка в "Контрол"
КонтролССЕ.ИнициализироватьСостояния();
ССЕКлиент1 = Новый ССЕКлиент("localhost", 3333, "/sse/test1");
ССЕКлиент2 = Новый ССЕКлиент("localhost", 3333, "/sse/test1");
ССЕКлиент3 = Новый ССЕКлиент("localhost", 3333, "/sse/test1");
ССЕКлиент1 = Новый ССЕКлиент("localhost", 3333, "/sse/testsub");

Check warning on line 668 in tests/alltest.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

tests/alltest.os#L668

Необходимо избавиться от многократного использования строкового литерала "/sse/testsub"

Check warning on line 668 in tests/alltest.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

tests/alltest.os#L668

Необходимо избавиться от многократного использования строкового литерала "localhost"

Check warning on line 668 in tests/alltest.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

tests/alltest.os#L668

Создайте константу с понятным названием, присвойте ей значение "3333" и используйте эту константу вместо магического числа.
ССЕКлиент2 = Новый ССЕКлиент("localhost", 3333, "/sse/testsub");

Check warning on line 669 in tests/alltest.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

tests/alltest.os#L669

Удалите неиспользуемую переменную ССЕКлиент2

Check warning on line 669 in tests/alltest.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

tests/alltest.os#L669

Создайте константу с понятным названием, присвойте ей значение "3333" и используйте эту константу вместо магического числа.
ССЕКлиент3 = Новый ССЕКлиент("localhost", 3333, "/sse/testsub");

Check warning on line 670 in tests/alltest.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

tests/alltest.os#L670

Удалите неиспользуемую переменную ССЕКлиент3

Check warning on line 670 in tests/alltest.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

tests/alltest.os#L670

Создайте константу с понятным названием, присвойте ей значение "3333" и используйте эту константу вместо магического числа.

// Когда

Expand Down
11 changes: 9 additions & 2 deletions tests/app/КонтролССЕ.os
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,10 @@
Лог = Логирование.ПолучитьЛог("oscript.app.winow.test.ssecontrol");

ИмяТопика = "/sse/test1";
ТопикиСерверныхСобытий.Добавить(ИмяТопика, Новый Действие(ЭтотОбъект, "НовоеПодключениеССЕ"));

ТопикиСерверныхСобытий.Добавить(ИмяТопика,
Новый Действие(ЭтотОбъект, "НовоеПодключениеССЕ"),
ТопикиСерверныхСобытий.Добавить("/sse/testsub",
Новый Действие(ЭтотОбъект, "ПодключенияКУдалению"),
Новый Действие(ЭтотОбъект, "ОтключениеССЕ"));

ИнициализироватьСостояния();
Expand All @@ -33,6 +34,12 @@

КонецПроцедуры

Процедура ПодключенияКУдалению(Сессия, ИД) Экспорт

Check warning on line 37 in tests/app/КонтролССЕ.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

tests/app/КонтролССЕ.os#L37

Уберите неиспользуемый параметр "Сессия"

Лог.Отладка("Подключился " + Ид);

КонецПроцедуры

Процедура ОтключениеССЕ(Сессия, ИД) Экспорт

Check warning on line 43 in tests/app/КонтролССЕ.os

View check run for this annotation

sonar.openbsl.ru qa-bot / winow Sonarqube Results

tests/app/КонтролССЕ.os#L43

Уберите неиспользуемый параметр "Сессия"

Лог.Отладка("Отключился " + Ид);
Expand Down

0 comments on commit 79be76f

Please sign in to comment.