Author Archives: Stanislav_Panteleev

Algos.Hackerrank.Mini – Max Summ

Given five positive integers, find the minimum and maximum values that can be calculated by summing exactly four of the five integers. Then print the respective minimum and maximum values as a single line of two space-separated long integers. For … Continue reading

Posted in C# | Leave a comment

Delphi.RobustServer.Упрощаем routing запросов. Базовый класс TRP

Дописал базовый класс TRP, от которого можно наследовать всю бизнес логику. Теперь можно обращаться, скажем по адресу Users/Create, сервер найдет класс TRPUsers и попытается найти у него метод Create. Реализация TRP включает в себя RTTI механизм. Чуть позже есть идея … Continue reading

Posted in Delphi | Leave a comment

Delphi.RobustServer.Обработка POST запросов для основных MIME

Доработал обработку POST запросов для следующих MIME типов application/json application/x-www-form-urlencoded multipart/form-data Теперь сервер умеет работать с json, принимать файлы, пока ещё не оч. большие (poststream блоками читается в строку = оперативную память), поэтому по-хорошему, размер файлов надо ограничить, ну и … Continue reading

Posted in Delphi | Leave a comment

Delphi.RobustServer. Логгер на GUI

Добавил логгер на GUI Механизм такой – при добавлении сообщения в лог, автоматически обновляется GUI. Сообщения идут в обратном порядке. Ключевым моментом является функция WaitAndCreateLogFileStream класса TLDSLogger. Сначала сообщения пишутся в файл, затем из файла в GUI. Всей многопоточной логикой заведует … Continue reading

Posted in Delphi | Leave a comment

Delphi.RobustServer.Открытие соединения с БД.Простой случай.

Как и когда нужно создавать экземпляр соединения с бд в серверном приложении? Путем чтения книг,  опыта и ошибок я понял, что под каждый запрос, создается поток, под каждый поток нужно  создавать соединение отдельно, иначе начинается хаос… Но это в случае, если … Continue reading

Posted in Delphi | Leave a comment

Delphi.RobustServer. Загрузка файлов на сервер

Сделал простую загрузку файлов на сервер, с возможностью создания уникального имени, если такое имя уже будет в директории сервера. Сама директория будет строиться как files/year/month/day Результат кода выглядит так Сам запрос идет через multipart следующим образом…

Posted in Delphi | Leave a comment

Delphi.RobustServer. Совершенствуем CommandGet и тестовый класс TRPUsers

Немного отрефакторил код OnCommandGet, получилось так, довольно коротко…

Обработка запросов происходит в методах Process…, например ProcessUsers выглядит так

Posted in Delphi | Leave a comment

Delphi.RobustServer.Обработка ошибок, интерфейсный класс TResponses и измерение оперативной памяти

Сделал обработку ошибок следующим образом В модуле CommandGet сделал единый блок try / except

Теперь, если возникнет ошибка при обработке запроса, она не потеряется, а придет в понятном json формате, то есть вот так…. Кстати, здесь же можно посмотреть, … Continue reading

Posted in Delphi | Leave a comment

Delphi. Измерение оперативной памяти

Модуль из проекта Вот эти 2 процедуры измеряют текущую память и пиковую

Полный модуль

 

Posted in Delphi | Leave a comment

Delphi.RobustServer – первые шаги

Github Первые несколько шагов. Текущую версию я делаю Visual Components Library App. Потом можно будет перевернуть это приложение в сервис, при желании. Архитектура  следующая

Posted in Delphi | Leave a comment