horse
horse copied to clipboard
Nova unit Horse.Mime
Criado a unit Horse.Mime que implementa a classe THorseMimeTypes que retorna o tipo MIME associado à extensão de um arquivo.
Métodos
- GetFileType: Retorna o tipo MIME de um arquivo passado por parâmetro.
- GetExtType: Retorna o tipo MIME de uma extensão de arquivo passado por parâmetro.
Teste
-
Lazarus
-
Delphi XE7
-
Delphi Rio 10.3
-
MemoryLeaks Verificado: SIM
-
Testes de stress: SIM
Refatoração da unit Horse.Core.Files
Refatoração da unit Horse.Core.Files para utilização da classe THorseMimeTypes da unit Horse.Mime.
Teste
-
Lazarus
-
Delphi XE7
-
Delphi Rio 10.3
-
MemoryLeaks Verificado: SIM
-
Testes de stress: SIM
Refatoração da unit Horse.Response para utilização da classe THorseMimeTypes da unit Horse.Mime.
Refatoração dos métodos
- SendFile
- Download
- Render
Teste
-
Lazarus
-
Delphi XE7
-
Delphi Rio 10.3
-
MemoryLeaks Verificado: SIM
-
Testes de stress: SIM
Qual objetivo de se usar o TCriticalSection la dentro do Horse.Mime ?
Qual objetivo de se usar o TCriticalSection la dentro do Horse.Mime ?
O uso do TCriticalSession é para evitar o acesso ao recurso compartilhado "FInstance" evitando erros imprevisíveis que podem ser gerados pelos multiplos acessos via thread.
O TCriticalSession só é usado na criação do "FInstance" que é um ponto crítico podendo gerar erro se acessado ao mesmo tempo e foi a solução encontrada que pode ser utilizada comumente com Lazarus.
class function THorseMimeTypesExt.GetDefault: THorseMimeTypesExt;
begin
if FInstance = nil then
begin
FLock.Enter;
try
if FInstance = nil then
begin
FInstance := THorseMimeTypesExt.Create;
FInstance.InitializeFileType;
end;
finally
FLock.Leave;
end;
end;
Result := FInstance;
end;