Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorr.kuznetsov <r.kuznetsov@corp.mail.ru>2017-10-13 15:23:05 +0300
committerYuri Gorshenin <mipt.vi002@gmail.com>2017-10-13 16:33:49 +0300
commitd80392371f059cdf2d6c336c94cf4ca5cdb13667 (patch)
tree0cf4599adc6ad029b547c3acc4173397a95e343f /indexer/ftypes_matcher.hpp
parent77ae76606df2dda76cd417b36cb0185c65d3168c (diff)
Separated types checkers for sponsored objects
Diffstat (limited to 'indexer/ftypes_matcher.hpp')
-rw-r--r--indexer/ftypes_matcher.hpp82
1 files changed, 24 insertions, 58 deletions
diff --git a/indexer/ftypes_matcher.hpp b/indexer/ftypes_matcher.hpp
index bf0cb3d5e0..9a484efa8d 100644
--- a/indexer/ftypes_matcher.hpp
+++ b/indexer/ftypes_matcher.hpp
@@ -15,6 +15,9 @@
namespace feature { class TypesHolder; }
class FeatureType;
+#define DECLARE_CHECKER_INSTANCE(CheckerType) static CheckerType const & Instance() { \
+ static CheckerType const inst; return inst; }
+
namespace ftypes
{
class BaseChecker
@@ -47,86 +50,85 @@ class IsPeakChecker : public BaseChecker
{
IsPeakChecker();
public:
- static IsPeakChecker const & Instance();
+ DECLARE_CHECKER_INSTANCE(IsPeakChecker);
};
class IsATMChecker : public BaseChecker
{
IsATMChecker();
public:
- static IsATMChecker const & Instance();
+ DECLARE_CHECKER_INSTANCE(IsATMChecker);
};
class IsSpeedCamChecker : public BaseChecker
{
IsSpeedCamChecker();
public:
- static IsSpeedCamChecker const & Instance();
+ DECLARE_CHECKER_INSTANCE(IsSpeedCamChecker);
};
class IsFuelStationChecker : public BaseChecker
{
IsFuelStationChecker();
public:
- static IsFuelStationChecker const & Instance();
+ DECLARE_CHECKER_INSTANCE(IsFuelStationChecker);
};
class IsRailwayStationChecker : public BaseChecker
{
IsRailwayStationChecker();
public:
- static IsRailwayStationChecker const & Instance();
+ DECLARE_CHECKER_INSTANCE(IsRailwayStationChecker);
};
class IsStreetChecker : public BaseChecker
{
IsStreetChecker();
public:
- static IsStreetChecker const & Instance();
+ DECLARE_CHECKER_INSTANCE(IsStreetChecker);
};
class IsAddressObjectChecker : public BaseChecker
{
IsAddressObjectChecker();
public:
- static IsAddressObjectChecker const & Instance();
+ DECLARE_CHECKER_INSTANCE(IsAddressObjectChecker);
};
class IsVillageChecker : public BaseChecker
{
IsVillageChecker();
-
public:
- static IsVillageChecker const & Instance();
+ DECLARE_CHECKER_INSTANCE(IsVillageChecker);
};
class IsOneWayChecker : public BaseChecker
{
IsOneWayChecker();
public:
- static IsOneWayChecker const & Instance();
+ DECLARE_CHECKER_INSTANCE(IsOneWayChecker);
};
class IsRoundAboutChecker : public BaseChecker
{
IsRoundAboutChecker();
public:
- static IsRoundAboutChecker const & Instance();
+ DECLARE_CHECKER_INSTANCE(IsRoundAboutChecker);
};
class IsLinkChecker : public BaseChecker
{
IsLinkChecker();
public:
- static IsLinkChecker const & Instance();
+ DECLARE_CHECKER_INSTANCE(IsLinkChecker);
};
class IsBuildingChecker : public BaseChecker
{
IsBuildingChecker();
public:
- static IsBuildingChecker const & Instance();
uint32_t GetMainType() const { return m_types[0]; }
+ DECLARE_CHECKER_INSTANCE(IsBuildingChecker);
};
class IsBridgeChecker : public BaseChecker
@@ -135,7 +137,7 @@ class IsBridgeChecker : public BaseChecker
IsBridgeChecker();
public:
- static IsBridgeChecker const & Instance();
+ DECLARE_CHECKER_INSTANCE(IsBridgeChecker);
};
class IsTunnelChecker : public BaseChecker
@@ -144,14 +146,7 @@ class IsTunnelChecker : public BaseChecker
IsTunnelChecker();
public:
- static IsTunnelChecker const & Instance();
-};
-
-class IsBookingChecker : public BaseChecker
-{
- IsBookingChecker();
-public:
- static IsBookingChecker const & Instance();
+ DECLARE_CHECKER_INSTANCE(IsTunnelChecker);
};
class IsHotelChecker : public BaseChecker
@@ -174,12 +169,11 @@ public:
static_assert(static_cast<size_t>(Type::Count) <= CHAR_BIT * sizeof(unsigned),
"Too many types of hotels");
- static IsHotelChecker const & Instance();
-
static char const * GetHotelTypeTag(Type type);
unsigned GetHotelTypesMask(FeatureType const & ft) const;
+ DECLARE_CHECKER_INSTANCE(IsHotelChecker);
private:
IsHotelChecker();
@@ -191,65 +185,37 @@ private:
class IsWifiChecker : public BaseChecker
{
IsWifiChecker();
-
public:
- static IsWifiChecker const & Instance();
+ DECLARE_CHECKER_INSTANCE(IsWifiChecker);
};
class IsFoodChecker : public BaseChecker
{
IsFoodChecker();
public:
- static IsFoodChecker const & Instance();
-};
-
-class IsOpentableChecker : public BaseChecker
-{
- IsOpentableChecker();
-
-public:
- static IsOpentableChecker const & Instance();
+ DECLARE_CHECKER_INSTANCE(IsFoodChecker);
};
// Checks for types that are not drawable, but searchable.
class IsInvisibleIndexedChecker : public BaseChecker
{
IsInvisibleIndexedChecker();
-
public:
- static IsInvisibleIndexedChecker const & Instance();
+ DECLARE_CHECKER_INSTANCE(IsInvisibleIndexedChecker);
};
class IsCityChecker : public BaseChecker
{
IsCityChecker();
-
-public:
- static IsCityChecker const & Instance();
-};
-
-class IsViatorChecker : public BaseChecker
-{
- IsViatorChecker();
-
public:
- static IsViatorChecker const & Instance();
-};
-
-class IsThorChecker : public BaseChecker
-{
- IsThorChecker();
-
-public:
- static IsThorChecker const & Instance();
+ DECLARE_CHECKER_INSTANCE(IsCityChecker);
};
class IsPublicTransportStopChecker : public BaseChecker
{
IsPublicTransportStopChecker();
-
public:
- static IsPublicTransportStopChecker const & Instance();
+ DECLARE_CHECKER_INSTANCE(IsPublicTransportStopChecker);
};
/// Type of locality (do not change values and order - they have detalization order)
@@ -264,7 +230,7 @@ public:
Type GetType(feature::TypesHolder const & types) const;
Type GetType(FeatureType const & f) const;
- static IsLocalityChecker const & Instance();
+ DECLARE_CHECKER_INSTANCE(IsLocalityChecker);
};
template <typename Types>