1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #pragma once
- #include "servlet.h"
- namespace NYql {
- namespace NHttp {
- ///////////////////////////////////////////////////////////////////////////////
- // TAssetsServlet
- ///////////////////////////////////////////////////////////////////////////////
- class TAssetsServlet: public IServlet
- {
- struct TAsset {
- TBlob Data;
- time_t LastModified;
- const char* ContentType;
- };
- public:
- TAssetsServlet(
- const TString& baseUrl,
- const TString& baseDir,
- const TString& indexFile);
- void DoGet(const TRequest& req, TResponse& resp) const override final;
- private:
- TString SafeFilePath(const TString& basePath, TStringBuf reqPath) const;
- bool IsCachedOnClient(const TRequest& req, const TAsset& asset) const;
- void LoadAsset(const TRequest& req, TAsset* asset) const;
- private:
- TString BaseUrl_;
- TString BaseDir_;
- TString IndexFile_;
- };
- } // namspace NNttp
- } // namspace NYql
|