audio_trans/lib/inc/drogon/utils/HttpConstraint.h

65 lines
1.2 KiB
C
Raw Normal View History

2025-04-07 11:31:21 +08:00
/**
*
* HttpConstraint.h
* An Tao
*
* Copyright 2018, An Tao. All rights reserved.
* https://github.com/an-tao/drogon
* Use of this source code is governed by a MIT license
* that can be found in the License file.
*
* Drogon
*
*/
#pragma once
#include <drogon/HttpTypes.h>
#include <string>
namespace drogon
{
namespace internal
{
enum class ConstraintType
{
None,
HttpMethod,
HttpFilter
};
class HttpConstraint
{
public:
HttpConstraint(HttpMethod method)
: type_(ConstraintType::HttpMethod), method_(method)
{
}
HttpConstraint(const std::string &filterName)
: type_(ConstraintType::HttpFilter), filterName_(filterName)
{
}
HttpConstraint(const char *filterName)
: type_(ConstraintType::HttpFilter), filterName_(filterName)
{
}
ConstraintType type() const
{
return type_;
}
HttpMethod getHttpMethod() const
{
return method_;
}
const std::string &getFilterName() const
{
return filterName_;
}
private:
ConstraintType type_{ConstraintType::None};
HttpMethod method_{HttpMethod::Invalid};
std::string filterName_;
};
} // namespace internal
} // namespace drogon