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:
-rw-r--r--3party/jansson/myjansson.cpp9
-rw-r--r--3party/jansson/myjansson.hpp3
-rw-r--r--android/res/layout/place_page.xml4
-rw-r--r--android/src/com/mapswithme/maps/widget/ObservableLinearLayout.java54
-rw-r--r--android/src/com/mapswithme/maps/widget/placepage/BannerController.java5
-rw-r--r--android/src/com/mapswithme/maps/widget/placepage/BasePlacePageAnimationController.java2
-rw-r--r--android/src/com/mapswithme/maps/widget/placepage/BottomPlacePageAnimationController.java95
-rw-r--r--android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java29
-rw-r--r--base/stl_add.hpp3
-rw-r--r--coding/internal/xmlparser.hpp4
-rw-r--r--data/sound-strings/ru.json/localize.json42
-rw-r--r--drape_frontend/animation/animation.cpp53
-rw-r--r--drape_frontend/animation/animation.hpp5
-rw-r--r--drape_frontend/animation_system.cpp2
-rwxr-xr-xdrape_frontend/frontend_renderer.cpp1
-rw-r--r--generator/altitude_generator.cpp34
-rw-r--r--generator/altitude_generator.hpp6
-rw-r--r--generator/booking_dataset.cpp14
-rw-r--r--generator/booking_dataset.hpp20
-rw-r--r--generator/booking_quality_check/booking_addr_match.cpp18
-rw-r--r--generator/booking_quality_check/booking_quality_check.cpp19
-rw-r--r--generator/borders_generator.cpp25
-rw-r--r--generator/borders_generator.hpp6
-rw-r--r--generator/borders_loader.cpp38
-rw-r--r--generator/borders_loader.hpp12
-rw-r--r--generator/centers_table_builder.cpp2
-rw-r--r--generator/centers_table_builder.hpp4
-rw-r--r--generator/check_model.cpp2
-rw-r--r--generator/check_model.hpp4
-rw-r--r--generator/coastlines_generator.cpp13
-rw-r--r--generator/dumper.cpp13
-rw-r--r--generator/dumper.hpp10
-rw-r--r--generator/feature_builder.cpp30
-rw-r--r--generator/feature_builder.hpp26
-rw-r--r--generator/feature_generator.cpp12
-rw-r--r--generator/feature_generator.hpp18
-rw-r--r--generator/feature_merger.cpp6
-rw-r--r--generator/feature_merger.hpp15
-rw-r--r--generator/feature_segments_checker/feature_segments_checker.cpp16
-rw-r--r--generator/feature_sorter.cpp20
-rw-r--r--generator/feature_sorter.hpp6
-rw-r--r--generator/gen_mwm_info.hpp14
-rw-r--r--generator/generate_info.hpp38
-rw-r--r--generator/generator_tests/altitude_test.cpp14
-rw-r--r--generator/generator_tests/coasts_test.cpp1
-rw-r--r--generator/generator_tests/osm_o5m_source_test.cpp10
-rw-r--r--generator/generator_tests/osm_type_test.cpp19
-rw-r--r--generator/generator_tests/restriction_collector_test.cpp28
-rw-r--r--generator/generator_tests/restriction_test.cpp4
-rw-r--r--generator/generator_tests/road_access_test.cpp2
-rw-r--r--generator/generator_tests/source_to_element_test.cpp24
-rw-r--r--generator/generator_tests/srtm_parser_test.cpp2
-rw-r--r--generator/generator_tests/tag_admixer_test.cpp20
-rw-r--r--generator/generator_tests/tesselator_test.cpp1
-rw-r--r--generator/generator_tests/triangles_tree_coding_test.cpp6
-rw-r--r--generator/generator_tests/types_helper.hpp12
-rw-r--r--generator/generator_tests_support/routing_helpers.cpp8
-rw-r--r--generator/generator_tests_support/routing_helpers.hpp6
-rw-r--r--generator/generator_tests_support/test_feature.cpp6
-rw-r--r--generator/generator_tests_support/test_feature.hpp92
-rw-r--r--generator/generator_tests_support/test_mwm_builder.cpp6
-rw-r--r--generator/generator_tests_support/test_mwm_builder.hpp4
-rw-r--r--generator/generator_tool/generator_tool.cpp16
-rw-r--r--generator/intermediate_data.hpp57
-rw-r--r--generator/intermediate_elements.hpp74
-rw-r--r--generator/kml_parser.cpp32
-rw-r--r--generator/kml_parser.hpp2
-rw-r--r--generator/opentable_dataset.cpp8
-rw-r--r--generator/opentable_dataset.hpp18
-rw-r--r--generator/osm2meta.cpp14
-rw-r--r--generator/osm2meta.hpp50
-rw-r--r--generator/osm2type.cpp30
-rw-r--r--generator/osm_element.cpp34
-rw-r--r--generator/osm_element.hpp62
-rw-r--r--generator/osm_id.cpp8
-rw-r--r--generator/osm_id.hpp8
-rw-r--r--generator/osm_o5m_source.hpp54
-rw-r--r--generator/osm_source.cpp6
-rw-r--r--generator/osm_source.hpp30
-rw-r--r--generator/osm_translator.hpp44
-rw-r--r--generator/osm_xml_source.hpp8
-rw-r--r--generator/polygonizer.hpp11
-rw-r--r--generator/region_meta.cpp22
-rw-r--r--generator/region_meta.hpp2
-rw-r--r--generator/restaurants_info/restaurants_info.cpp31
-rw-r--r--generator/restriction_collector.cpp28
-rw-r--r--generator/restriction_collector.hpp22
-rw-r--r--generator/restriction_generator.cpp13
-rw-r--r--generator/restriction_generator.hpp6
-rw-r--r--generator/restriction_writer.cpp28
-rw-r--r--generator/restriction_writer.hpp8
-rw-r--r--generator/road_access_generator.cpp2
-rw-r--r--generator/routing_generator.cpp26
-rw-r--r--generator/routing_generator.hpp8
-rw-r--r--generator/routing_helpers.hpp2
-rw-r--r--generator/search_index_builder.cpp16
-rw-r--r--generator/search_index_builder.hpp4
-rw-r--r--generator/sponsored_dataset.hpp28
-rw-r--r--generator/sponsored_dataset_inl.hpp16
-rw-r--r--generator/sponsored_scoring.cpp16
-rw-r--r--generator/sponsored_scoring.hpp4
-rw-r--r--generator/srtm_coverage_checker/srtm_coverage_checker.cpp4
-rw-r--r--generator/srtm_parser.cpp30
-rw-r--r--generator/srtm_parser.hpp18
-rw-r--r--generator/statistics.cpp30
-rw-r--r--generator/statistics.hpp14
-rw-r--r--generator/tag_admixer.hpp78
-rw-r--r--generator/tesselator.cpp38
-rw-r--r--generator/tesselator.hpp44
-rw-r--r--generator/towns_dumper.cpp14
-rw-r--r--generator/towns_dumper.hpp14
-rw-r--r--generator/traffic_generator.cpp8
-rw-r--r--generator/traffic_generator.hpp4
-rw-r--r--generator/unpack_mwm.cpp12
-rw-r--r--generator/unpack_mwm.hpp6
-rw-r--r--generator/ways_merger.hpp16
-rw-r--r--generator/world_map_generator.hpp2
-rw-r--r--platform/platform_tests/get_text_by_id_tests.cpp8
-rw-r--r--search/search_quality/assessment_tool/sample_view.cpp57
-rw-r--r--search/search_quality/assessment_tool/sample_view.hpp8
-rw-r--r--search/search_quality/sample.cpp6
-rw-r--r--search/search_quality/sample.hpp1
-rw-r--r--search/search_quality/search_quality_tests/sample_test.cpp7
-rw-r--r--sound/tts/sound.csv42
-rw-r--r--sound/tts/sound.txt42
-rwxr-xr-xtools/python/local_ads/features_db_updater.py147
-rwxr-xr-xtools/python/local_ads/mwm_to_csv_4localads.py117
-rwxr-xr-xtools/python/mwm/dump_mwm.py2
-rw-r--r--tools/python/mwm/mwm.py7
129 files changed, 1419 insertions, 1222 deletions
diff --git a/3party/jansson/myjansson.cpp b/3party/jansson/myjansson.cpp
index 5adab297c9..18135740db 100644
--- a/3party/jansson/myjansson.cpp
+++ b/3party/jansson/myjansson.cpp
@@ -171,6 +171,15 @@ void FromJSONObjectOptionalField(json_t * root, string const & field, string & r
namespace strings
{
+void FromJSON(json_t * root, UniString & result)
+{
+ string s;
+ FromJSON(root, s);
+ result = MakeUniString(s);
+}
+
+my::JSONPtr ToJSON(UniString const & s) { return ::ToJSON(ToUtf8(s)); }
+
void FromJSONObject(json_t * root, string const & field, UniString & result)
{
string s;
diff --git a/3party/jansson/myjansson.hpp b/3party/jansson/myjansson.hpp
index a95e2b875f..1e4673a07f 100644
--- a/3party/jansson/myjansson.hpp
+++ b/3party/jansson/myjansson.hpp
@@ -142,6 +142,9 @@ struct JSONFreeDeleter
namespace strings
{
+void FromJSON(json_t * root, UniString & result);
+my::JSONPtr ToJSON(UniString const & s);
+
void FromJSONObject(json_t * root, std::string const & field, UniString & result);
void ToJSONObject(json_t & root, std::string const & field, UniString const & value);
}
diff --git a/android/res/layout/place_page.xml b/android/res/layout/place_page.xml
index 76fa88dda7..9dfe3b3d7e 100644
--- a/android/res/layout/place_page.xml
+++ b/android/res/layout/place_page.xml
@@ -8,7 +8,7 @@
android:overScrollMode="never"
android:layout_above="@+id/pp__buttons">
- <LinearLayout
+ <com.mapswithme.maps.widget.ObservableLinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
@@ -31,7 +31,7 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="?cardBackground"/>
- </LinearLayout>
+ </com.mapswithme.maps.widget.ObservableLinearLayout>
</com.mapswithme.maps.widget.ObservableScrollView>
<include
diff --git a/android/src/com/mapswithme/maps/widget/ObservableLinearLayout.java b/android/src/com/mapswithme/maps/widget/ObservableLinearLayout.java
new file mode 100644
index 0000000000..d6f70dcefe
--- /dev/null
+++ b/android/src/com/mapswithme/maps/widget/ObservableLinearLayout.java
@@ -0,0 +1,54 @@
+package com.mapswithme.maps.widget;
+
+import android.annotation.TargetApi;
+import android.content.Context;
+import android.os.Build;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.util.AttributeSet;
+import android.widget.LinearLayout;
+
+public class ObservableLinearLayout extends LinearLayout
+{
+ @Nullable
+ private SizeChangedListener mSizeChangedListener;
+
+ public ObservableLinearLayout(@NonNull Context context)
+ {
+ super(context);
+ }
+
+ public ObservableLinearLayout(@NonNull Context context, @Nullable AttributeSet attrs)
+ {
+ super(context, attrs);
+ }
+
+ public ObservableLinearLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr)
+ {
+ super(context, attrs, defStyleAttr);
+ }
+
+ @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+ public ObservableLinearLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes)
+ {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ }
+
+ @Override
+ protected void onSizeChanged(int w, int h, int oldw, int oldh)
+ {
+ super.onSizeChanged(w, h, oldw, oldh);
+ if (mSizeChangedListener != null)
+ mSizeChangedListener.onSizeChanged(w, h, oldw, oldh);
+ }
+
+ public void setSizeChangedListener(@Nullable SizeChangedListener listener)
+ {
+ mSizeChangedListener = listener;
+ }
+
+ public interface SizeChangedListener
+ {
+ void onSizeChanged(int width, int height, int oldWidth, int oldHeight);
+ }
+}
diff --git a/android/src/com/mapswithme/maps/widget/placepage/BannerController.java b/android/src/com/mapswithme/maps/widget/placepage/BannerController.java
index 6fb12554f5..faec6d1188 100644
--- a/android/src/com/mapswithme/maps/widget/placepage/BannerController.java
+++ b/android/src/com/mapswithme/maps/widget/placepage/BannerController.java
@@ -322,6 +322,11 @@ final class BannerController
animator.start();
}
+ boolean isOpened()
+ {
+ return mOpened;
+ }
+
interface BannerListener
{
void onSizeChanged();
diff --git a/android/src/com/mapswithme/maps/widget/placepage/BasePlacePageAnimationController.java b/android/src/com/mapswithme/maps/widget/placepage/BasePlacePageAnimationController.java
index 8da4ac66c3..6f1aaf07d1 100644
--- a/android/src/com/mapswithme/maps/widget/placepage/BasePlacePageAnimationController.java
+++ b/android/src/com/mapswithme/maps/widget/placepage/BasePlacePageAnimationController.java
@@ -174,6 +174,4 @@ public abstract class BasePlacePageAnimationController implements ObservableScro
animator.setInterpolator(interpolator == null ? INTERPOLATOR : interpolator);
animator.start();
}
-
- protected void onContentSizeChanged() {}
}
diff --git a/android/src/com/mapswithme/maps/widget/placepage/BottomPlacePageAnimationController.java b/android/src/com/mapswithme/maps/widget/placepage/BottomPlacePageAnimationController.java
index 61d097c937..9277ef8488 100644
--- a/android/src/com/mapswithme/maps/widget/placepage/BottomPlacePageAnimationController.java
+++ b/android/src/com/mapswithme/maps/widget/placepage/BottomPlacePageAnimationController.java
@@ -18,11 +18,13 @@ import android.widget.LinearLayout;
import com.mapswithme.maps.R;
import com.mapswithme.maps.bookmarks.data.MapObject;
+import com.mapswithme.maps.widget.ObservableLinearLayout;
import com.mapswithme.maps.widget.placepage.PlacePageView.State;
import com.mapswithme.util.UiUtils;
import com.mapswithme.util.concurrency.UiThread;
class BottomPlacePageAnimationController extends BasePlacePageAnimationController
+ implements ObservableLinearLayout.SizeChangedListener
{
@SuppressWarnings("unused")
private static final String TAG = BottomPlacePageAnimationController.class.getSimpleName();
@@ -34,9 +36,12 @@ class BottomPlacePageAnimationController extends BasePlacePageAnimationControlle
private boolean mIsGestureStartedInsideView;
private boolean mIsGestureFinished;
+ private boolean mIsHiding;
+ private float mScreenHeight;
private float mDetailMaxHeight;
private float mScrollDelta;
+ private int mContentHeight;
@Nullable
private OnBannerOpenListener mBannerOpenListener;
@@ -49,6 +54,9 @@ class BottomPlacePageAnimationController extends BasePlacePageAnimationControlle
if (mLayoutToolbar == null)
return;
+ ((ObservableLinearLayout) mDetailsContent).setSizeChangedListener(this);
+ mContentHeight = mDetailsContent.getHeight();
+
final Toolbar toolbar = (Toolbar) mLayoutToolbar.findViewById(R.id.toolbar);
if (toolbar != null)
{
@@ -65,14 +73,17 @@ class BottomPlacePageAnimationController extends BasePlacePageAnimationControlle
}
DisplayMetrics dm = placePage.getResources().getDisplayMetrics();
- float screenHeight = dm.heightPixels;
- mDetailMaxHeight = screenHeight * DETAIL_RATIO;
+ mScreenHeight = dm.heightPixels;
+ mDetailMaxHeight = mScreenHeight * DETAIL_RATIO;
mScrollDelta = SCROLL_DELTA * dm.density;
}
@Override
protected boolean onInterceptTouchEvent(MotionEvent event)
{
+ if (mIsHiding)
+ return false;
+
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
@@ -102,6 +113,10 @@ class BottomPlacePageAnimationController extends BasePlacePageAnimationControlle
final boolean isBannerTouch = mPlacePage.isBannerTouched(event);
if (isInside && !isBannerTouch && mIsGestureStartedInsideView)
mGestureDetector.onTouchEvent(event);
+ mIsDragging = false;
+ break;
+ case MotionEvent.ACTION_CANCEL:
+ mIsDragging = false;
break;
}
@@ -111,7 +126,7 @@ class BottomPlacePageAnimationController extends BasePlacePageAnimationControlle
@Override
protected boolean onTouchEvent(@NonNull MotionEvent event)
{
- if (mIsGestureFinished)
+ if (mIsGestureFinished || mIsHiding)
return false;
final boolean finishedDrag = (mIsDragging &&
@@ -159,7 +174,7 @@ class BottomPlacePageAnimationController extends BasePlacePageAnimationControlle
private boolean isDetailContentScrollable()
{
- return mDetailsScroll.getHeight() < mDetailsContent.getHeight();
+ return mDetailsScroll.getHeight() < mContentHeight;
}
private boolean canScroll(float delta)
@@ -177,6 +192,9 @@ class BottomPlacePageAnimationController extends BasePlacePageAnimationControlle
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
{
+ if (mIsHiding)
+ return true;
+
final boolean isVertical = Math.abs(distanceY) > X_TO_Y_SCROLL_RATIO * Math.abs(distanceX);
if (isVertical)
@@ -185,7 +203,7 @@ class BottomPlacePageAnimationController extends BasePlacePageAnimationControlle
if (!translateBy(-distanceY))
{
boolean scrollable = isDetailContentScrollable();
- int maxTranslationY = mDetailsScroll.getHeight() - mDetailsContent.getHeight();
+ int maxTranslationY = mDetailsScroll.getHeight() - mContentHeight;
if ((scrollable && mDetailsScroll.getTranslationY() == 0)
|| (!scrollable && mDetailsScroll.getTranslationY() <= maxTranslationY))
{
@@ -201,6 +219,9 @@ class BottomPlacePageAnimationController extends BasePlacePageAnimationControlle
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
{
+ if (mIsHiding)
+ return true;
+
finishDrag(-velocityY);
return true;
}
@@ -208,6 +229,9 @@ class BottomPlacePageAnimationController extends BasePlacePageAnimationControlle
@Override
public boolean onSingleTapConfirmed(MotionEvent e)
{
+ if (mIsHiding)
+ return true;
+
MotionEvent evt = MotionEvent.obtain(e.getDownTime(),
e.getEventTime(),
e.getAction(),
@@ -240,6 +264,7 @@ class BottomPlacePageAnimationController extends BasePlacePageAnimationControlle
private void finishDrag(float distance)
{
+ mIsDragging = false;
final float currentTranslation = mDetailsScroll.getTranslationY();
if (currentTranslation > mDetailsScroll.getHeight())
{
@@ -303,7 +328,7 @@ class BottomPlacePageAnimationController extends BasePlacePageAnimationControlle
float detailsTranslation = mDetailsScroll.getTranslationY() + distanceY;
final boolean isScrollable = isDetailContentScrollable();
boolean consumeEvent = true;
- final float maxTranslationY = mDetailsScroll.getHeight() - mDetailsContent.getHeight();
+ final float maxTranslationY = mDetailsScroll.getHeight() - mContentHeight;
if ((isScrollable && detailsTranslation < 0.0f) || detailsTranslation < maxTranslationY)
{
if (isScrollable)
@@ -335,6 +360,9 @@ class BottomPlacePageAnimationController extends BasePlacePageAnimationControlle
@Override
protected void onStateChanged(final State currentState, final State newState, @MapObject.MapObjectType int type)
{
+ if (newState == State.HIDDEN && currentState == newState)
+ return;
+
prepareYTranslations(newState, type);
mDetailsScroll.setGestureDetector(mGestureDetector);
@@ -350,17 +378,7 @@ class BottomPlacePageAnimationController extends BasePlacePageAnimationControlle
hidePlacePage();
break;
case PREVIEW:
- mPreview.addOnLayoutChangeListener(new View.OnLayoutChangeListener()
- {
- @Override
- public void onLayoutChange(View v, int left, int top, int right, int bottom,
- int oldLeft, int oldTop, int oldRight, int oldBottom)
- {
- mPreview.removeOnLayoutChangeListener(this);
- showPreview(currentState);
- }
- });
- mPreview.requestLayout();
+ showPreview(currentState);
break;
case DETAILS:
showDetails();
@@ -368,17 +386,7 @@ class BottomPlacePageAnimationController extends BasePlacePageAnimationControlle
case FULLSCREEN:
if (isDetailContentScrollable())
mDetailsScroll.setGestureDetector(null);
- mDetailsScroll.addOnLayoutChangeListener(new View.OnLayoutChangeListener()
- {
- @Override
- public void onLayoutChange(View v, int left, int top, int right, int bottom,
- int oldLeft, int oldTop, int oldRight, int oldBottom)
- {
- mDetailsScroll.removeOnLayoutChangeListener(this);
- showFullscreen();
- }
- });
- mDetailsScroll.requestLayout();
+ showFullscreen();
break;
}
}
@@ -465,7 +473,7 @@ class BottomPlacePageAnimationController extends BasePlacePageAnimationControlle
else
{
mCurrentAnimator = ValueAnimator.ofFloat(mDetailsScroll.getTranslationY(),
- mDetailsScroll.getHeight() - mDetailsContent.getHeight());
+ mDetailsScroll.getHeight() - mContentHeight);
}
mCurrentAnimator.addUpdateListener(new UpdateListener());
mCurrentAnimator.addListener(new AnimationListener());
@@ -482,7 +490,7 @@ class BottomPlacePageAnimationController extends BasePlacePageAnimationControlle
else
{
mCurrentAnimator = ValueAnimator.ofFloat(mDetailsScroll.getTranslationY(),
- mDetailsScroll.getHeight() - mDetailsContent.getHeight());
+ mDetailsScroll.getHeight() - mContentHeight);
}
mCurrentAnimator.addUpdateListener(new UpdateListener());
mCurrentAnimator.addListener(new AnimationListener());
@@ -493,6 +501,7 @@ class BottomPlacePageAnimationController extends BasePlacePageAnimationControlle
@SuppressLint("NewApi")
private void hidePlacePage()
{
+ mIsHiding = true;
if (mLayoutToolbar != null)
UiUtils.hide(mLayoutToolbar);
@@ -513,6 +522,7 @@ class BottomPlacePageAnimationController extends BasePlacePageAnimationControlle
@Override
public void onAnimationEnd(Animator animation)
{
+ mIsHiding = false;
initialVisibility();
mPlacePage.setTranslationY(0);
mDetailsScroll.setTranslationY(mDetailsScroll.getHeight());
@@ -563,12 +573,31 @@ class BottomPlacePageAnimationController extends BasePlacePageAnimationControlle
mBannerOpenListener = bannerOpenListener;
}
- @Override
- protected void onContentSizeChanged()
+ private boolean isOverDetailsState()
{
+ return mDetailsScroll.getTranslationY() < mScreenHeight - mDetailMaxHeight;
+ }
+
+ private void onContentSizeChanged()
+ {
+ if (mIsDragging || mCurrentScrollY > 0)
+ return;
+
MapObject object = mPlacePage.getMapObject();
if (object != null)
- onStateChanged(getState(), getState(), object.getMapObjectType());
+ {
+ State newState = getState();
+ if (isOverDetailsState())
+ newState = State.FULLSCREEN;
+ onStateChanged(getState(), newState, object.getMapObjectType());
+ }
+ }
+
+ @Override
+ public void onSizeChanged(int width, int height, int oldWidth, int oldHeight)
+ {
+ mContentHeight = height;
+ onContentSizeChanged();
}
private class UpdateListener implements ValueAnimator.AnimatorUpdateListener
diff --git a/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java b/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java
index 75d3e390dc..f2a47777f7 100644
--- a/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java
+++ b/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java
@@ -740,13 +740,10 @@ public class PlacePageView extends RelativeLayout
else
{
UiUtils.show(mHotelFacilities);
- boolean oldValue = mFacilitiesAdapter.isShowAll();
mFacilitiesAdapter.setShowAll(false);
mFacilitiesAdapter.setItems(Arrays.asList(info.mFacilities));
mHotelMoreFacilities.setVisibility(info.mFacilities.length > FacilitiesAdapter.MAX_COUNT
? VISIBLE : GONE);
- if (oldValue != mFacilitiesAdapter.isShowAll())
- mAnimationController.onContentSizeChanged();
}
}
@@ -862,7 +859,11 @@ public class PlacePageView extends RelativeLayout
public void onNeedOpenBanner()
{
if (mBannerController != null)
+ {
+ if (!mBannerController.isOpened())
+ compensateViewHeight(0);
mBannerController.open();
+ }
}
private void compensateViewHeight(int height)
@@ -947,12 +948,16 @@ public class PlacePageView extends RelativeLayout
int heightCompensation = 0;
if (mBannerController != null)
{
- if ((state == State.HIDDEN || state == State.PREVIEW) && !UiUtils.isLandscape(getContext()))
+ State lastState = getState();
+ boolean isLastStateNotHiddenOrPreview = lastState != State.HIDDEN
+ && lastState != State.PREVIEW;
+ if (isLastStateNotHiddenOrPreview && (state == State.HIDDEN || state == State.PREVIEW)
+ && !UiUtils.isLandscape(getContext()))
{
if (mBannerController.close())
heightCompensation = mBannerController.getLastBannerHeight();
}
- else
+ else if (isLastStateNotHiddenOrPreview)
{
mBannerController.open();
}
@@ -1590,14 +1595,12 @@ public class PlacePageView extends RelativeLayout
case R.id.tv__place_hotel_more:
UiUtils.hide(mHotelMoreDescription);
mTvHotelDescription.setMaxLines(Integer.MAX_VALUE);
- mAnimationController.onContentSizeChanged();
break;
case R.id.tv__place_hotel_facilities_more:
if (mSponsored != null && mMapObject != null)
Statistics.INSTANCE.trackHotelEvent(PP_HOTEL_FACILITIES, mSponsored, mMapObject);
UiUtils.hide(mHotelMoreFacilities);
mFacilitiesAdapter.setShowAll(true);
- mAnimationController.onContentSizeChanged();
break;
case R.id.tv__place_hotel_reviews_more:
if (isSponsored())
@@ -1817,7 +1820,6 @@ public class PlacePageView extends RelativeLayout
mCurrentCountry = null;
mDownloaderIcon.show(false);
UiUtils.hide(mDownloaderInfo);
- mAnimationController.onContentSizeChanged();
}
MwmActivity getActivity()
@@ -1844,16 +1846,5 @@ public class PlacePageView extends RelativeLayout
mPreview.setPadding(mPreview.getPaddingLeft(), mPreview.getPaddingTop(),
getPaddingRight(), mMarginBase);
}
- addOnLayoutChangeListener(new OnLayoutChangeListener()
- {
- @Override
- public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft,
- int oldTop, int oldRight, int oldBottom)
- {
- removeOnLayoutChangeListener(this);
- mAnimationController.onContentSizeChanged();
- }
- });
- requestLayout();
}
}
diff --git a/base/stl_add.hpp b/base/stl_add.hpp
index 37476d0bc1..3051617b46 100644
--- a/base/stl_add.hpp
+++ b/base/stl_add.hpp
@@ -2,11 +2,14 @@
#include <algorithm>
#include <functional>
+#include <initializer_list>
#include <iterator>
#include <memory>
namespace my
{
+using StringIL = std::initializer_list<char const *>;
+
/// @todo(y): replace this hand-written helper function by
/// std::make_unique when it will be available in C++14
template <typename T, typename... Args>
diff --git a/coding/internal/xmlparser.hpp b/coding/internal/xmlparser.hpp
index 3bdb091748..a49cbf4d58 100644
--- a/coding/internal/xmlparser.hpp
+++ b/coding/internal/xmlparser.hpp
@@ -66,7 +66,7 @@ public:
if (m_restrictDepth != size_t(-1))
m_restrictDepth = static_cast<size_t>(-1);
else
- m_dispatcher.Pop(string(pszName));
+ m_dispatcher.Pop(std::string(pszName));
}
void OnCharacterData(XML_Char const * pszData, int nLength)
@@ -89,7 +89,7 @@ private:
size_t m_restrictDepth;
DispatcherT & m_dispatcher;
- string m_charData;
+ std::string m_charData;
bool m_enableCharHandler;
void CheckCharData()
diff --git a/data/sound-strings/ru.json/localize.json b/data/sound-strings/ru.json/localize.json
index e74035734b..32cda7db99 100644
--- a/data/sound-strings/ru.json/localize.json
+++ b/data/sound-strings/ru.json/localize.json
@@ -1,16 +1,16 @@
{
-"make_a_slight_right_turn":"Плавный поворот направо.",
-"make_a_right_turn":"Поворот направо.",
-"make_a_sharp_right_turn":"Крутой поворот направо.",
-"enter_the_roundabout":"Въезд на кольцо.",
-"leave_the_roundabout":"Съезд с кольца.",
-"make_a_slight_left_turn":"Плавный поворот налево.",
-"make_a_left_turn":"Поворот налево.",
-"make_a_sharp_left_turn":"Крутой поворот налево.",
-"make_a_u_turn":"Разворот.",
+"make_a_slight_right_turn":"Держитесь правее.",
+"make_a_right_turn":"Поверните направо.",
+"make_a_sharp_right_turn":"Резко поверните направо.",
+"enter_the_roundabout":"Поверните на кольцо.",
+"leave_the_roundabout":"Сверните с кольца.",
+"make_a_slight_left_turn":"Держитесь левее.",
+"make_a_left_turn":"Поверните налево.",
+"make_a_sharp_left_turn":"Резко поверните налево.",
+"make_a_u_turn":"Развернитесь.",
"go_straight":"Двигайтесь прямо.",
"destination":"Вы прибудете в пункт назначения.",
-"you_have_reached_the_destination":"Вы прибыли.",
+"you_have_reached_the_destination":"Вы прибыли в пункт назначения.",
"in_50_meters":"Через пятьсот метров",
"in_100_meters":"Через сто метров",
"in_200_meters":"Через двести метров",
@@ -29,17 +29,17 @@
"in_2_5_kilometers":"Через два с половиной километра",
"in_3_kilometers":"Через три километра",
"then":"Затем",
-"take_the_1_exit":"Первый поворот с кольца.",
-"take_the_2_exit":"Второй поворот с кольца.",
-"take_the_3_exit":"Третий поворот с кольца.",
-"take_the_4_exit":"Четвертый поворот с кольца.",
-"take_the_5_exit":"Пятый поворот с кольца.",
-"take_the_6_exit":"Шестой поворот с кольца.",
-"take_the_7_exit":"Седьмой поворот с кольца.",
-"take_the_8_exit":"Восьмой поворот с кольца.",
-"take_the_9_exit":"Девятый поворот с кольца.",
-"take_the_10_exit":"Десятый поворот с кольца.",
-"take_the_11_exit":"Одиннадцатый поворот с кольца.",
+"take_the_1_exit":"Сверните на первый съезд.",
+"take_the_2_exit":"Сверните на второй съезд.",
+"take_the_3_exit":"Сверните на третий съезд.",
+"take_the_4_exit":"Сверните на четвертый съезд.",
+"take_the_5_exit":"Сверните на пятый съезд.",
+"take_the_6_exit":"Сверните на шестой съезд.",
+"take_the_7_exit":"Сверните на седьмой съезд.",
+"take_the_8_exit":"Сверните на восьмой съезд.",
+"take_the_9_exit":"Сверните на девятый съезд.",
+"take_the_10_exit":"Сверните на десятый съезд.",
+"take_the_11_exit":"Сверните на одиннадцатый съезд.",
"in_50_feet":"Через пятьдесят футов",
"in_100_feet":"Через сто футов",
"in_200_feet":"Через двести футов",
diff --git a/drape_frontend/animation/animation.cpp b/drape_frontend/animation/animation.cpp
index a750cc2645..4f6efb29f5 100644
--- a/drape_frontend/animation/animation.cpp
+++ b/drape_frontend/animation/animation.cpp
@@ -40,21 +40,21 @@ void Animation::GetCurrentScreen(TPropertyCache const & properties, ScreenBase c
}
}
-bool Animation::CouldBeBlendedWith(Animation const & animation) const
+bool Animation::HasSameObjects(Animation const & animation) const
{
- bool hasSameObject = false;
TAnimObjects const & objects = animation.GetObjects();
for (auto const & object : objects)
{
if (HasObject(object))
- {
- hasSameObject = true;
- break;
- }
+ return true;
}
+ return false;
+}
- return !hasSameObject || ((GetType() != animation.GetType()) &&
- m_couldBeBlended && animation.m_couldBeBlended);
+bool Animation::CouldBeBlendedWith(Animation const & animation) const
+{
+ return !HasSameObjects(animation) ||
+ ((GetType() != animation.GetType()) && m_couldBeBlended && animation.m_couldBeBlended);
}
bool Animation::HasTargetProperty(Object object, ObjectProperty property) const
@@ -90,4 +90,41 @@ bool Animation::GetMaxDuration(Interpolator const & interpolator, double & maxDu
return true;
}
+std::string DebugPrint(Animation::Type const & type)
+{
+ switch (type)
+ {
+ case Animation::Type::Sequence: return "Sequence";
+ case Animation::Type::Parallel: return "Parallel";
+ case Animation::Type::MapLinear: return "MapLinear";
+ case Animation::Type::MapScale: return "MapScale";
+ case Animation::Type::MapFollow: return "MapFollow";
+ case Animation::Type::Arrow: return "Arrow";
+ case Animation::Type::KineticScroll: return "KineticScroll";
+ }
+ return "Unknown type";
+}
+
+std::string DebugPrint(Animation::Object const & object)
+{
+ switch (object)
+ {
+ case Animation::Object::MyPositionArrow: return "MyPositionArrow";
+ case Animation::Object::MapPlane: return "MapPlane";
+ case Animation::Object::Selection: return "Selection";
+ }
+ return "Unknown object";
+}
+
+std::string DebugPrint(Animation::ObjectProperty const & property)
+{
+ switch (property)
+ {
+ case Animation::ObjectProperty::Position: return "Position";
+ case Animation::ObjectProperty::Scale: return "Scale";
+ case Animation::ObjectProperty::Angle: return "Angle";
+ }
+ return "Unknown property";
+}
+
} // namespace df
diff --git a/drape_frontend/animation/animation.hpp b/drape_frontend/animation/animation.hpp
index 24abec543a..209e746568 100644
--- a/drape_frontend/animation/animation.hpp
+++ b/drape_frontend/animation/animation.hpp
@@ -119,6 +119,7 @@ public:
bool CouldBeBlended() const { return m_couldBeBlended; }
bool CouldBeInterrupted() const { return m_couldBeInterrupted; }
bool CouldBeBlendedWith(Animation const & animation) const;
+ bool HasSameObjects(Animation const & animation) const;
void SetInterruptedOnCombine(bool enable) { m_interruptedOnCombine = enable; }
bool GetInterruptedOnCombine() const { return m_interruptedOnCombine; }
@@ -150,5 +151,9 @@ protected:
bool m_couldBeRewinded;
};
+std::string DebugPrint(Animation::Type const & type);
+std::string DebugPrint(Animation::Object const & object);
+std::string DebugPrint(Animation::ObjectProperty const & property);
+
} // namespace df
diff --git a/drape_frontend/animation_system.cpp b/drape_frontend/animation_system.cpp
index 1888db16c8..24f380caae 100644
--- a/drape_frontend/animation_system.cpp
+++ b/drape_frontend/animation_system.cpp
@@ -175,7 +175,7 @@ void AnimationSystem::CombineAnimation(drape_ptr<Animation> && animation)
for (auto it = lst.begin(); it != lst.end();)
{
auto & anim = *it;
- if (anim->GetInterruptedOnCombine())
+ if (anim->GetInterruptedOnCombine() && anim->HasSameObjects(*animation))
{
#ifdef DEBUG_ANIMATIONS
LOG(LINFO, ("Interrupted on combine", anim->GetType()));
diff --git a/drape_frontend/frontend_renderer.cpp b/drape_frontend/frontend_renderer.cpp
index 6547a43e2b..f5afbf207c 100755
--- a/drape_frontend/frontend_renderer.cpp
+++ b/drape_frontend/frontend_renderer.cpp
@@ -716,6 +716,7 @@ void FrontendRenderer::AcceptMessage(ref_ptr<Message> message)
AddUserEvent(make_unique_dp<SetVisibleViewportEvent>(msg->GetRect()));
m_myPositionController->SetVisibleViewport(msg->GetRect());
m_myPositionController->UpdatePosition();
+ PullToBoundArea(false /* randomPlace */, false /* applyZoom */);
break;
}
diff --git a/generator/altitude_generator.cpp b/generator/altitude_generator.cpp
index 2a3b827084..13c8dd1442 100644
--- a/generator/altitude_generator.cpp
+++ b/generator/altitude_generator.cpp
@@ -28,10 +28,10 @@
#include "defines.hpp"
-#include "std/algorithm.hpp"
-#include "std/type_traits.hpp"
-#include "std/utility.hpp"
-#include "std/vector.hpp"
+#include <algorithm>
+#include <type_traits>
+#include <utility>
+#include <vector>
#include "3party/succinct/elias_fano.hpp"
#include "3party/succinct/mapper.hpp"
@@ -46,7 +46,7 @@ using namespace routing;
class SrtmGetter : public AltitudeGetter
{
public:
- SrtmGetter(string const & srtmDir) : m_srtmManager(srtmDir) {}
+ SrtmGetter(std::string const & srtmDir) : m_srtmManager(srtmDir) {}
// AltitudeGetter overrides:
feature::TAltitude GetAltitude(m2::PointD const & p) override
@@ -73,7 +73,7 @@ public:
Altitudes m_altitudes;
};
- using TFeatureAltitudes = vector<FeatureAltitude>;
+ using TFeatureAltitudes = std::vector<FeatureAltitude>;
Processor(AltitudeGetter & altitudeGetter)
: m_altitudeGetter(altitudeGetter), m_minAltitude(kInvalidAltitude)
@@ -123,26 +123,26 @@ public:
if (minFeatureAltitude == kInvalidAltitude)
minFeatureAltitude = a;
else
- minFeatureAltitude = min(minFeatureAltitude, a);
+ minFeatureAltitude = std::min(minFeatureAltitude, a);
altitudes.push_back(a);
}
hasAltitude = true;
- m_featureAltitudes.emplace_back(id, Altitudes(move(altitudes)));
+ m_featureAltitudes.emplace_back(id, Altitudes(std::move(altitudes)));
if (m_minAltitude == kInvalidAltitude)
m_minAltitude = minFeatureAltitude;
else
- m_minAltitude = min(minFeatureAltitude, m_minAltitude);
+ m_minAltitude = std::min(minFeatureAltitude, m_minAltitude);
}
bool HasAltitudeInfo() const { return !m_featureAltitudes.empty(); }
bool IsFeatureAltitudesSorted()
{
- return is_sorted(m_featureAltitudes.begin(), m_featureAltitudes.end(),
- my::LessBy(&Processor::FeatureAltitude::m_featureId));
+ return std::is_sorted(m_featureAltitudes.begin(), m_featureAltitudes.end(),
+ my::LessBy(&Processor::FeatureAltitude::m_featureId));
}
private:
@@ -155,7 +155,7 @@ private:
namespace routing
{
-void BuildRoadAltitudes(string const & mwmPath, AltitudeGetter & altitudeGetter)
+void BuildRoadAltitudes(std::string const & mwmPath, AltitudeGetter & altitudeGetter)
{
try
{
@@ -187,11 +187,11 @@ void BuildRoadAltitudes(string const & mwmPath, AltitudeGetter & altitudeGetter)
}
header.m_featureTableOffset = base::checked_cast<uint32_t>(w.Pos() - startOffset);
- vector<uint32_t> offsets;
- vector<uint8_t> deltas;
+ std::vector<uint32_t> offsets;
+ std::vector<uint8_t> deltas;
{
// Altitude info serialization to memory.
- MemWriter<vector<uint8_t>> writer(deltas);
+ MemWriter<std::vector<uint8_t>> writer(deltas);
Processor::TFeatureAltitudes const & featureAltitudes = processor.GetFeatureAltitudes();
for (auto const & a : featureAltitudes)
{
@@ -201,7 +201,7 @@ void BuildRoadAltitudes(string const & mwmPath, AltitudeGetter & altitudeGetter)
}
{
// Altitude offsets serialization.
- CHECK(is_sorted(offsets.begin(), offsets.end()), ());
+ CHECK(std::is_sorted(offsets.begin(), offsets.end()), ());
CHECK(adjacent_find(offsets.begin(), offsets.end()) == offsets.end(), ());
succinct::elias_fano::elias_fano_builder builder(offsets.back(), offsets.size());
@@ -234,7 +234,7 @@ void BuildRoadAltitudes(string const & mwmPath, AltitudeGetter & altitudeGetter)
}
}
-void BuildRoadAltitudes(string const & mwmPath, string const & srtmDir)
+void BuildRoadAltitudes(std::string const & mwmPath, std::string const & srtmDir)
{
LOG(LINFO, ("mwmPath =", mwmPath, "srtmDir =", srtmDir));
SrtmGetter srtmGetter(srtmDir);
diff --git a/generator/altitude_generator.hpp b/generator/altitude_generator.hpp
index 6cecdd99e2..e422a6b71b 100644
--- a/generator/altitude_generator.hpp
+++ b/generator/altitude_generator.hpp
@@ -4,7 +4,7 @@
#include "indexer/feature_altitude.hpp"
-#include "std/string.hpp"
+#include <string>
namespace routing
{
@@ -24,6 +24,6 @@ public:
/// 16 altitude availability feat. table offset - 16
/// feat. table offset feature table alt. info offset - feat. table offset
/// alt. info offset altitude info end of section - alt. info offset
-void BuildRoadAltitudes(string const & mwmPath, AltitudeGetter & altitudeGetter);
-void BuildRoadAltitudes(string const & mwmPath, string const & srtmDir);
+void BuildRoadAltitudes(std::string const & mwmPath, AltitudeGetter & altitudeGetter);
+void BuildRoadAltitudes(std::string const & mwmPath, std::string const & srtmDir);
} // namespace routing
diff --git a/generator/booking_dataset.cpp b/generator/booking_dataset.cpp
index 5abc35dad7..30b088c221 100644
--- a/generator/booking_dataset.cpp
+++ b/generator/booking_dataset.cpp
@@ -8,16 +8,16 @@
#include "base/string_utils.hpp"
-#include "std/iomanip.hpp"
+#include <iomanip>
#include "boost/algorithm/string/replace.hpp"
namespace generator
{
// BookingHotel ------------------------------------------------------------------------------------
-BookingHotel::BookingHotel(string const & src)
+BookingHotel::BookingHotel(std::string const & src)
{
- vector<string> rec;
+ std::vector<std::string> rec;
strings::ParseCSVRow(src, '\t', rec);
CHECK_EQUAL(rec.size(), FieldsCount(), ("Error parsing hotels.tsv line:",
boost::replace_all_copy(src, "\t", "\\t")));
@@ -44,7 +44,7 @@ BookingHotel::BookingHotel(string const & src)
ostream & operator<<(ostream & s, BookingHotel const & h)
{
- s << fixed << setprecision(7);
+ s << std::fixed << std::setprecision(7);
s << "Id: " << h.m_id << "\t Name: " << h.m_name << "\t Address: " << h.m_address
<< "\t lat: " << h.m_latLon.lat << " lon: " << h.m_latLon.lon;
return s;
@@ -62,7 +62,7 @@ bool BookingDataset::NecessaryMatchingConditionHolds(FeatureBuilder1 const & fb)
template <>
void BookingDataset::PreprocessMatchedOsmObject(ObjectId, FeatureBuilder1 & fb,
- function<void(FeatureBuilder1 &)> const fn) const
+ std::function<void(FeatureBuilder1 &)> const fn) const
{
// Turn a hotel into a simple building.
if (fb.GetGeomType() == feature::GEOM_AREA)
@@ -89,7 +89,7 @@ void BookingDataset::PreprocessMatchedOsmObject(ObjectId, FeatureBuilder1 & fb,
template <>
void BookingDataset::BuildObject(Object const & hotel,
- function<void(FeatureBuilder1 &)> const & fn) const
+ std::function<void(FeatureBuilder1 &)> const & fn) const
{
FeatureBuilder1 fb;
FeatureParams params;
@@ -117,7 +117,7 @@ void BookingDataset::BuildObject(Object const & hotel,
if (!hotel.m_translations.empty())
{
// TODO(mgsergio): Move parsing to the hotel costruction stage.
- vector<string> parts;
+ std::vector<std::string> parts;
strings::ParseCSVRow(hotel.m_translations, '|', parts);
CHECK_EQUAL(parts.size() % 3, 0, ("Invalid translation string:", hotel.m_translations));
for (size_t i = 0; i < parts.size(); i += 3)
diff --git a/generator/booking_dataset.hpp b/generator/booking_dataset.hpp
index e8ce155c12..e1257e8e82 100644
--- a/generator/booking_dataset.hpp
+++ b/generator/booking_dataset.hpp
@@ -6,8 +6,8 @@
#include "base/newtype.hpp"
-#include "std/limits.hpp"
-#include "std/string.hpp"
+#include <limits>
+#include <string>
namespace generator
{
@@ -35,10 +35,10 @@ struct BookingHotel
static constexpr ObjectId InvalidObjectId()
{
- return ObjectId(numeric_limits<typename ObjectId::RepType>::max());
+ return ObjectId(std::numeric_limits<typename ObjectId::RepType>::max());
}
- explicit BookingHotel(string const & src);
+ explicit BookingHotel(std::string const & src);
static constexpr size_t FieldIndex(Fields field) { return static_cast<size_t>(field); }
static constexpr size_t FieldsCount() { return static_cast<size_t>(Fields::Counter); }
@@ -47,18 +47,18 @@ struct BookingHotel
ObjectId m_id{InvalidObjectId()};
ms::LatLon m_latLon = ms::LatLon::Zero();
- string m_name;
- string m_street;
- string m_houseNumber;
+ std::string m_name;
+ std::string m_street;
+ std::string m_houseNumber;
- string m_address;
+ std::string m_address;
uint32_t m_stars = 0;
uint32_t m_priceCategory = 0;
double m_ratingBooking = 0.0;
double m_ratingUser = 0.0;
- string m_descUrl;
+ std::string m_descUrl;
uint32_t m_type = 0;
- string m_translations;
+ std::string m_translations;
};
ostream & operator<<(ostream & s, BookingHotel const & h);
diff --git a/generator/booking_quality_check/booking_addr_match.cpp b/generator/booking_quality_check/booking_addr_match.cpp
index e638dbf0c9..8b491b6144 100644
--- a/generator/booking_quality_check/booking_addr_match.cpp
+++ b/generator/booking_quality_check/booking_addr_match.cpp
@@ -28,10 +28,10 @@
#include "platform/local_country_file_utils.hpp"
#include "platform/platform.hpp"
-#include "std/fstream.hpp"
-#include "std/iostream.hpp"
-#include "std/numeric.hpp"
-#include "std/shared_ptr.hpp"
+#include <fstream>
+#include <iostream>
+#include <memory>
+#include <numeric>
#include "3party/gflags/src/gflags/gflags.h"
@@ -55,7 +55,7 @@ int main(int argc, char * argv[])
Platform & platform = GetPlatform();
- string countriesFile = COUNTRIES_FILE;
+ std::string countriesFile = COUNTRIES_FILE;
if (!FLAGS_user_resource_path.empty())
{
platform.SetResourceDir(FLAGS_user_resource_path);
@@ -90,14 +90,14 @@ int main(int argc, char * argv[])
if (hotel.HasAddresParts())
{
++matchedNum;
- cout << "[" << i << "/" << bookingDataset.Size() << "] Hotel: " << hotel.address
+ std::cout << "[" << i << "/" << bookingDataset.Size() << "] Hotel: " << hotel.address
<< " AddLoc: " << hotel.translations << " --> " << hotel.street << " "
- << hotel.houseNumber << endl;
+ << hotel.houseNumber << std::endl;
}
}
- cout << "Num of hotels: " << bookingDataset.Size() << " matched: " << matchedNum
- << " Empty addresses: " << emptyAddr << endl;
+ std::cout << "Num of hotels: " << bookingDataset.Size() << " matched: " << matchedNum
+ << " Empty addresses: " << emptyAddr << std::endl;
return 0;
}
diff --git a/generator/booking_quality_check/booking_quality_check.cpp b/generator/booking_quality_check/booking_quality_check.cpp
index 1179a34e05..2699ffeb38 100644
--- a/generator/booking_quality_check/booking_quality_check.cpp
+++ b/generator/booking_quality_check/booking_quality_check.cpp
@@ -10,15 +10,16 @@
#include "coding/file_name_utils.hpp"
+#include "base/stl_add.hpp"
#include "base/string_utils.hpp"
-#include "std/cstdlib.hpp"
-#include "std/cstring.hpp"
-#include "std/fstream.hpp"
-#include "std/iostream.hpp"
-#include "std/numeric.hpp"
-#include "std/random.hpp"
-#include "std/unique_ptr.hpp"
+#include <cstdlib>
+#include <cstring>
+#include <fstream>
+#include <iostream>
+#include <memory>
+#include <numeric>
+#include <random>
#include "3party/gflags/src/gflags/gflags.h"
@@ -26,6 +27,8 @@
#include "boost/range/algorithm/copy.hpp"
+using namespace std;
+
DEFINE_string(osm, "", "Input .o5m file");
DEFINE_string(booking, "", "Path to booking data in .tsv format");
DEFINE_string(opentable, "", "Path to opentable data in .tsv format");
@@ -358,7 +361,7 @@ void RunImpl(feature::GenerateInfo & info)
map<osm::Id, FeatureBuilder1> features;
GenerateFeatures(info, [&dataset, &features](feature::GenerateInfo const & /* info */)
{
- return make_unique<Emitter<Dataset>>(dataset, features);
+ return my::make_unique<Emitter<Dataset>>(dataset, features);
});
if (FLAGS_generate)
diff --git a/generator/borders_generator.cpp b/generator/borders_generator.cpp
index e1f5530c13..b884c938cb 100644
--- a/generator/borders_generator.cpp
+++ b/generator/borders_generator.cpp
@@ -4,25 +4,26 @@
#include "base/logging.hpp"
#include "base/string_utils.hpp"
-#include "std/fstream.hpp"
-#include "std/iostream.hpp"
-#include "std/sstream.hpp"
+
+#include <fstream>
+#include <iostream>
+#include <sstream>
namespace osm
{
- bool ReadPolygon(istream & stream, m2::RegionD & region, string const & filename)
+ bool ReadPolygon(std::istream & stream, m2::RegionD & region, std::string const & filename)
{
- string line, name;
+ std::string line, name;
double lon, lat;
// read ring id, fail if it's empty
- getline(stream, name);
+ std::getline(stream, name);
if (name.empty() || name == "END")
return false;
while (stream.good())
{
- getline(stream, line);
+ std::getline(stream, line);
strings::Trim(line);
if (line.empty())
@@ -31,7 +32,7 @@ namespace osm
if (line == "END")
break;
- istringstream iss(line);
+ std::istringstream iss(line);
iss >> lon >> lat;
CHECK(!iss.fail(), ("Incorrect data in", filename));
@@ -42,11 +43,11 @@ namespace osm
return name[0] != '!';
}
- bool LoadBorders(string const & borderFile, vector<m2::RegionD> & outBorders)
+ bool LoadBorders(std::string const & borderFile, std::vector<m2::RegionD> & outBorders)
{
- ifstream stream(borderFile);
- string line;
- if (!getline(stream, line).good()) // skip title
+ std::ifstream stream(borderFile);
+ std::string line;
+ if (!std::getline(stream, line).good()) // skip title
{
LOG(LERROR, ("Polygon file is empty:", borderFile));
return false;
diff --git a/generator/borders_generator.hpp b/generator/borders_generator.hpp
index 8076c9c8a3..891a6f961c 100644
--- a/generator/borders_generator.hpp
+++ b/generator/borders_generator.hpp
@@ -3,11 +3,11 @@
#include "geometry/region2d.hpp"
#include "geometry/point2d.hpp"
-#include "std/vector.hpp"
-#include "std/string.hpp"
+#include <string>
+#include <vector>
namespace osm
{
/// @return false if borderFile can't be opened
- bool LoadBorders(string const & borderFile, vector<m2::RegionD> & outBorders);
+ bool LoadBorders(std::string const & borderFile, std::vector<m2::RegionD> & outBorders);
}
diff --git a/generator/borders_loader.cpp b/generator/borders_loader.cpp
index bb44fd22f4..698562883b 100644
--- a/generator/borders_loader.cpp
+++ b/generator/borders_loader.cpp
@@ -21,10 +21,10 @@
#include "base/logging.hpp"
#include "base/string_utils.hpp"
-#include "std/iomanip.hpp"
-#include "std/fstream.hpp"
-#include "std/vector.hpp"
-#include "std/bind.hpp"
+#include <fstream>
+#include <functional>
+#include <iomanip>
+#include <vector>
namespace borders
@@ -41,7 +41,7 @@ public:
PolygonLoader(CountriesContainerT & countries)
: m_countries(countries) {}
- void operator() (string const & name, vector<m2::RegionD> const & borders)
+ void operator() (std::string const & name, std::vector<m2::RegionD> const & borders)
{
if (m_polygons.m_name.empty())
m_polygons.m_name = name;
@@ -68,16 +68,16 @@ public:
};
template <class ToDo>
-void ForEachCountry(string const & baseDir, ToDo & toDo)
+void ForEachCountry(std::string const & baseDir, ToDo & toDo)
{
- string const bordersDir = baseDir + BORDERS_DIR;
+ std::string const bordersDir = baseDir + BORDERS_DIR;
CHECK(Platform::IsFileExistsByFullPath(bordersDir), ("Cannot read borders directory", bordersDir));
Platform::FilesList files;
Platform::GetFilesByExt(bordersDir, BORDERS_EXTENSION, files);
- for (string file : files)
+ for (std::string file : files)
{
- vector<m2::RegionD> borders;
+ std::vector<m2::RegionD> borders;
if (osm::LoadBorders(bordersDir + file, borders))
{
my::GetNameWithoutExt(file);
@@ -87,7 +87,7 @@ void ForEachCountry(string const & baseDir, ToDo & toDo)
}
}
-bool LoadCountriesList(string const & baseDir, CountriesContainerT & countries)
+bool LoadCountriesList(std::string const & baseDir, CountriesContainerT & countries)
{
countries.Clear();
@@ -105,15 +105,15 @@ class PackedBordersGenerator
{
FilesContainerW m_writer;
- vector<storage::CountryDef> m_polys;
+ std::vector<storage::CountryDef> m_polys;
public:
- PackedBordersGenerator(string const & baseDir)
+ PackedBordersGenerator(std::string const & baseDir)
: m_writer(baseDir + PACKED_POLYGONS_FILE)
{
}
- void operator() (string const & name, vector<m2::RegionD> const & borders)
+ void operator() (std::string const & name, std::vector<m2::RegionD> const & borders)
{
// use index in vector as tag
FileWriter w = m_writer.GetWriter(strings::to_string(m_polys.size()));
@@ -131,7 +131,7 @@ public:
WriteVarUint(w, borders.size());
for (m2::RegionD const & border : borders)
{
- typedef vector<m2::PointD> VectorT;
+ typedef std::vector<m2::PointD> VectorT;
typedef m2::DistanceToLineSquare<m2::PointD> DistanceT;
VectorT const & in = border.Data();
@@ -156,34 +156,34 @@ public:
}
};
-void GeneratePackedBorders(string const & baseDir)
+void GeneratePackedBorders(std::string const & baseDir)
{
PackedBordersGenerator generator(baseDir);
ForEachCountry(baseDir, generator);
generator.WritePolygonsInfo();
}
-void UnpackBorders(string const & baseDir, string const & targetDir)
+void UnpackBorders(std::string const & baseDir, std::string const & targetDir)
{
Platform & platform = GetPlatform();
if (!Platform::IsFileExistsByFullPath(targetDir))
platform.MkDir(targetDir);
- vector<storage::CountryDef> countries;
+ std::vector<storage::CountryDef> countries;
FilesContainerR reader(my::JoinFoldersToPath(baseDir, PACKED_POLYGONS_FILE));
ReaderSource<ModelReaderPtr> src(reader.GetReader(PACKED_POLYGONS_INFO_TAG));
rw::Read(src, countries);
for (size_t id = 0; id < countries.size(); id++)
{
- ofstream poly(my::JoinFoldersToPath(targetDir, countries[id].m_countryId + ".poly"));
+ std::ofstream poly(my::JoinFoldersToPath(targetDir, countries[id].m_countryId + ".poly"));
poly << countries[id].m_countryId << endl;
src = reader.GetReader(strings::to_string(id));
uint32_t const count = ReadVarUint<uint32_t>(src);
for (size_t i = 0; i < count; ++i)
{
poly << i + 1 << endl;
- vector<m2::PointD> points;
+ std::vector<m2::PointD> points;
serial::LoadOuterPath(src, serial::CodingParams(), points);
for (auto p : points)
{
diff --git a/generator/borders_loader.hpp b/generator/borders_loader.hpp
index 7d9a56dd73..e2f9b11e33 100644
--- a/generator/borders_loader.hpp
+++ b/generator/borders_loader.hpp
@@ -3,7 +3,7 @@
#include "geometry/region2d.hpp"
#include "geometry/tree4d.hpp"
-#include "std/string.hpp"
+#include <string>
#define BORDERS_DIR "borders/"
#define BORDERS_EXTENSION ".poly"
@@ -15,7 +15,7 @@ namespace borders
struct CountryPolygons
{
- CountryPolygons(string const & name = "") : m_name(name), m_index(-1) {}
+ CountryPolygons(std::string const & name = "") : m_name(name), m_index(-1) {}
bool IsEmpty() const { return m_regions.IsEmpty(); }
void Clear()
@@ -26,14 +26,14 @@ namespace borders
}
RegionsContainerT m_regions;
- string m_name;
+ std::string m_name;
mutable int m_index;
};
typedef m4::Tree<CountryPolygons> CountriesContainerT;
- bool LoadCountriesList(string const & baseDir, CountriesContainerT & countries);
+ bool LoadCountriesList(std::string const & baseDir, CountriesContainerT & countries);
- void GeneratePackedBorders(string const & baseDir);
- void UnpackBorders(string const & baseDir, string const & targetDir);
+ void GeneratePackedBorders(std::string const & baseDir);
+ void UnpackBorders(std::string const & baseDir, std::string const & targetDir);
}
diff --git a/generator/centers_table_builder.cpp b/generator/centers_table_builder.cpp
index 3a44717e17..395513b1c0 100644
--- a/generator/centers_table_builder.cpp
+++ b/generator/centers_table_builder.cpp
@@ -17,7 +17,7 @@
namespace indexer
{
-bool BuildCentersTableFromDataFile(string const & filename, bool forceRebuild)
+bool BuildCentersTableFromDataFile(std::string const & filename, bool forceRebuild)
{
try
{
diff --git a/generator/centers_table_builder.hpp b/generator/centers_table_builder.hpp
index 6ba57b467c..69378add16 100644
--- a/generator/centers_table_builder.hpp
+++ b/generator/centers_table_builder.hpp
@@ -1,6 +1,6 @@
#pragma once
-#include "std/string.hpp"
+#include <string>
class FilesContainerR;
class Writer;
@@ -9,5 +9,5 @@ namespace indexer
{
// Builds the latest version of the centers table section and writes
// it to the mwm file.
-bool BuildCentersTableFromDataFile(string const & filename, bool forceRebuild = false);
+bool BuildCentersTableFromDataFile(std::string const & filename, bool forceRebuild = false);
} // namespace indexer
diff --git a/generator/check_model.cpp b/generator/check_model.cpp
index 2788db9aac..04bf9a6d30 100644
--- a/generator/check_model.cpp
+++ b/generator/check_model.cpp
@@ -13,7 +13,7 @@ using namespace feature;
namespace check_model
{
- void ReadFeatures(string const & fName)
+ void ReadFeatures(std::string const & fName)
{
Classificator const & c = classif();
diff --git a/generator/check_model.hpp b/generator/check_model.hpp
index 2728f29c83..40143ceca8 100644
--- a/generator/check_model.hpp
+++ b/generator/check_model.hpp
@@ -1,7 +1,7 @@
#pragma once
-#include "std/string.hpp"
+#include <string>
namespace check_model
{
- void ReadFeatures(string const & fName);
+ void ReadFeatures(std::string const & fName);
}
diff --git a/generator/coastlines_generator.cpp b/generator/coastlines_generator.cpp
index 4b6581379c..21ff7cf6bb 100644
--- a/generator/coastlines_generator.cpp
+++ b/generator/coastlines_generator.cpp
@@ -8,11 +8,12 @@
#include "base/string_utils.hpp"
#include "base/logging.hpp"
-#include "std/bind.hpp"
-#include "std/condition_variable.hpp"
-#include "std/function.hpp"
-#include "std/thread.hpp"
-#include "std/utility.hpp"
+#include <condition_variable>
+#include <functional>
+#include <thread>
+#include <utility>
+
+using namespace std;
typedef m2::RegionI RegionT;
typedef m2::PointI PointT;
@@ -272,7 +273,7 @@ public:
// Do 'and' with all regions and accumulate the result, including bound region.
// In 'odd' parts we will have an ocean.
DoDifference doDiff(rectR);
- m_index.ForEachInRect(GetLimitRect(rectR), bind<void>(ref(doDiff), _1));
+ m_index.ForEachInRect(GetLimitRect(rectR), bind<void>(ref(doDiff), placeholders::_1));
// Check if too many points for feature.
if (cell.Level() < kHighLevel && doDiff.GetPointsCount() >= kMaxPoints)
diff --git a/generator/dumper.cpp b/generator/dumper.cpp
index 3d25aea4c5..3ddc063988 100644
--- a/generator/dumper.cpp
+++ b/generator/dumper.cpp
@@ -13,12 +13,13 @@
#include "base/logging.hpp"
-#include "std/algorithm.hpp"
-#include "std/bind.hpp"
-#include "std/functional.hpp"
-#include "std/iostream.hpp"
-#include "std/map.hpp"
-#include "std/vector.hpp"
+#include <algorithm>
+#include <functional>
+#include <iostream>
+#include <map>
+#include <vector>
+
+using namespace std;
namespace
{
diff --git a/generator/dumper.hpp b/generator/dumper.hpp
index 08d27a2b31..5424b7e82d 100644
--- a/generator/dumper.hpp
+++ b/generator/dumper.hpp
@@ -1,19 +1,19 @@
#pragma once
-#include "std/string.hpp"
+#include <string>
namespace feature
{
- void DumpTypes(string const & fPath);
- void DumpPrefixes(string const & fPath);
+ void DumpTypes(std::string const & fPath);
+ void DumpPrefixes(std::string const & fPath);
// Writes top maxTokensToShow tokens sorted by their
// frequency, i.e. by the number of features in
// an mwm that contain the token in their name.
- void DumpSearchTokens(string const & fPath, size_t maxTokensToShow);
+ void DumpSearchTokens(std::string const & fPath, size_t maxTokensToShow);
// Writes the names of all features in the locale provided by lang
// (e.g. "en", "ru", "sv"). If the locale is not recognized, writes all names
// preceded by their locales.
- void DumpFeatureNames(string const & fPath, string const & lang);
+ void DumpFeatureNames(std::string const & fPath, std::string const & lang);
}
diff --git a/generator/feature_builder.cpp b/generator/feature_builder.cpp
index ba38702358..4e859a920c 100644
--- a/generator/feature_builder.cpp
+++ b/generator/feature_builder.cpp
@@ -19,8 +19,8 @@
#include "base/logging.hpp"
#include "base/string_utils.hpp"
-#include "std/cstring.hpp"
-#include "std/algorithm.hpp"
+#include <algorithm>
+#include <cstring>
using namespace feature;
@@ -79,14 +79,14 @@ void FeatureBuilder1::SetRank(uint8_t rank)
m_params.rank = rank;
}
-void FeatureBuilder1::AddHouseNumber(string const & houseNumber)
+void FeatureBuilder1::AddHouseNumber(std::string const & houseNumber)
{
m_params.AddHouseNumber(houseNumber);
}
-void FeatureBuilder1::AddStreet(string const & streetName) { m_params.AddStreet(streetName); }
+void FeatureBuilder1::AddStreet(std::string const & streetName) { m_params.AddStreet(streetName); }
-void FeatureBuilder1::AddPostcode(string const & postcode)
+void FeatureBuilder1::AddPostcode(std::string const & postcode)
{
m_params.GetMetadata().Set(Metadata::FMD_POSTCODE, postcode);
}
@@ -106,7 +106,7 @@ void FeatureBuilder1::SetLinear(bool reverseGeometry)
{
auto & cont = m_polygons.front();
ASSERT(!cont.empty(), ());
- reverse(cont.begin(), cont.end());
+ std::reverse(cont.begin(), cont.end());
}
}
@@ -169,7 +169,7 @@ bool FeatureBuilder1::RemoveInvalidTypes()
m_params.IsEmptyNames());
}
-bool FeatureBuilder1::FormatFullAddress(string & res) const
+bool FeatureBuilder1::FormatFullAddress(std::string & res) const
{
return m_params.FormatFullAddress(m_limitRect.Center(), res);
}
@@ -491,7 +491,7 @@ bool FeatureBuilder1::HasOsmId(osm::Id const & id) const
return false;
}
-string FeatureBuilder1::GetOsmIdsString() const
+std::string FeatureBuilder1::GetOsmIdsString() const
{
if (m_osmIds.empty())
return "(NOT AN OSM FEATURE)";
@@ -510,14 +510,14 @@ int FeatureBuilder1::GetMinFeatureDrawScale() const
return (minScale == -1 ? 1000 : minScale);
}
-bool FeatureBuilder1::AddName(string const & lang, string const & name)
+bool FeatureBuilder1::AddName(std::string const & lang, std::string const & name)
{
return m_params.AddName(lang, name);
}
-string FeatureBuilder1::GetName(int8_t lang) const
+std::string FeatureBuilder1::GetName(int8_t lang) const
{
- string s;
+ std::string s;
VERIFY(m_params.name.GetString(lang, s) != s.empty(), ());
return s;
}
@@ -530,7 +530,7 @@ size_t FeatureBuilder1::GetPointsCount() const
return counter;
}
-string DebugPrint(FeatureBuilder1 const & f)
+std::string DebugPrint(FeatureBuilder1 const & f)
{
ostringstream out;
@@ -569,7 +569,7 @@ uint64_t FeatureBuilder1::GetWayIDForRouting() const
return 0;
}
-string DebugPrint(FeatureBuilder2 const & f)
+std::string DebugPrint(FeatureBuilder2 const & f)
{
return DebugPrint(static_cast<FeatureBuilder1 const &>(f));
}
@@ -654,7 +654,7 @@ void FeatureBuilder2::Serialize(SupportingData & data, serial::CodingParams cons
serial::SavePoint(sink, GetOuterGeometry()[0], params);
// offsets was pushed from high scale index to low
- reverse(data.m_ptsOffset.begin(), data.m_ptsOffset.end());
+ std::reverse(data.m_ptsOffset.begin(), data.m_ptsOffset.end());
serial::WriteVarUintArray(data.m_ptsOffset, sink);
}
}
@@ -665,7 +665,7 @@ void FeatureBuilder2::Serialize(SupportingData & data, serial::CodingParams cons
else
{
// offsets was pushed from high scale index to low
- reverse(data.m_trgOffset.begin(), data.m_trgOffset.end());
+ std::reverse(data.m_trgOffset.begin(), data.m_trgOffset.end());
serial::WriteVarUintArray(data.m_trgOffset, sink);
}
}
diff --git a/generator/feature_builder.hpp b/generator/feature_builder.hpp
index 54216a5cd2..cbaf91acb1 100644
--- a/generator/feature_builder.hpp
+++ b/generator/feature_builder.hpp
@@ -7,8 +7,8 @@
#include "coding/file_reader.hpp"
#include "coding/read_write_utils.hpp"
-#include "std/bind.hpp"
-#include "std/list.hpp"
+#include <functional>
+#include <list>
namespace serial { class CodingParams; }
@@ -17,11 +17,11 @@ namespace serial { class CodingParams; }
class FeatureBuilder1
{
/// For debugging
- friend string DebugPrint(FeatureBuilder1 const & f);
+ friend std::string DebugPrint(FeatureBuilder1 const & f);
public:
using TPointSeq = vector<m2::PointD>;
- using TGeometry = list<TPointSeq>;
+ using TGeometry = std::list<TPointSeq>;
using TBuffer = vector<char>;
@@ -34,11 +34,11 @@ public:
void SetRank(uint8_t rank);
- void AddHouseNumber(string const & houseNumber);
+ void AddHouseNumber(std::string const & houseNumber);
- void AddStreet(string const & streetName);
+ void AddStreet(std::string const & streetName);
- void AddPostcode(string const & postcode);
+ void AddPostcode(std::string const & postcode);
/// Add point to geometry.
void AddPoint(m2::PointD const & p);
@@ -100,7 +100,7 @@ public:
//@{
inline m2::RectD GetLimitRect() const { return m_limitRect; }
- bool FormatFullAddress(string & res) const;
+ bool FormatFullAddress(std::string & res) const;
/// Get common parameters of feature.
FeatureBase GetFeatureBase() const;
@@ -171,7 +171,7 @@ public:
/// area's one if there is no relation, and relation id otherwise.
osm::Id GetMostGenericOsmId() const;
bool HasOsmId(osm::Id const & id) const;
- string GetOsmIdsString() const;
+ std::string GetOsmIdsString() const;
vector<osm::Id> const & GetOsmIds() const { return m_osmIds; }
//@}
@@ -183,8 +183,8 @@ public:
void SetCoastCell(int64_t iCell) { m_coastCell = iCell; }
inline bool IsCoastCell() const { return (m_coastCell != -1); }
- bool AddName(string const & lang, string const & name);
- string GetName(int8_t lang = StringUtf8Multilang::kDefaultCode) const;
+ bool AddName(std::string const & lang, std::string const & name);
+ std::string GetName(int8_t lang = StringUtf8Multilang::kDefaultCode) const;
uint8_t GetRank() const { return m_params.rank; }
@@ -227,7 +227,7 @@ class FeatureBuilder2 : public FeatureBuilder1
static void SerializeOffsets(uint32_t mask, TOffsets const & offsets, TBuffer & buffer);
/// For debugging
- friend string DebugPrint(FeatureBuilder2 const & f);
+ friend std::string DebugPrint(FeatureBuilder2 const & f);
public:
struct SupportingData
@@ -274,7 +274,7 @@ namespace feature
/// Process features in .dat file.
template <class ToDo>
- void ForEachFromDatRawFormat(string const & fName, ToDo && toDo)
+ void ForEachFromDatRawFormat(std::string const & fName, ToDo && toDo)
{
FileReader reader(fName);
ReaderSource<FileReader> src(reader);
diff --git a/generator/feature_generator.cpp b/generator/feature_generator.cpp
index 4cca790729..577b86a120 100644
--- a/generator/feature_generator.cpp
+++ b/generator/feature_generator.cpp
@@ -14,9 +14,9 @@
#include "base/logging.hpp"
#include "base/stl_add.hpp"
-#include "std/bind.hpp"
+#include <functional>
#include "std/target_os.hpp"
-#include "std/unordered_map.hpp"
+#include <unordered_map>
///////////////////////////////////////////////////////////////////////////////////////////////////
// FeaturesCollector implementation
@@ -24,7 +24,7 @@
namespace feature
{
-FeaturesCollector::FeaturesCollector(string const & fName)
+FeaturesCollector::FeaturesCollector(std::string const & fName)
: m_datFile(fName)
{
CHECK_EQUAL(GetFileSize(m_datFile), 0, ());
@@ -90,7 +90,7 @@ void FeaturesCollector::Write(char const * src, size_t size)
} while (size > 0);
}
-uint32_t FeaturesCollector::WriteFeatureBase(vector<char> const & bytes, FeatureBuilder1 const & fb)
+uint32_t FeaturesCollector::WriteFeatureBase(std::vector<char> const & bytes, FeatureBuilder1 const & fb)
{
size_t const sz = bytes.size();
CHECK(sz != 0, ("Empty feature not allowed here!"));
@@ -112,8 +112,8 @@ uint32_t FeaturesCollector::operator()(FeatureBuilder1 const & fb)
return featureId;
}
-FeaturesAndRawGeometryCollector::FeaturesAndRawGeometryCollector(string const & featuresFileName,
- string const & rawGeometryFileName)
+FeaturesAndRawGeometryCollector::FeaturesAndRawGeometryCollector(std::string const & featuresFileName,
+ std::string const & rawGeometryFileName)
: FeaturesCollector(featuresFileName), m_rawGeometryFileStream(rawGeometryFileName)
{
CHECK_EQUAL(GetFileSize(m_rawGeometryFileStream), 0, ());
diff --git a/generator/feature_generator.hpp b/generator/feature_generator.hpp
index 059470b6e2..a0e1af6b1d 100644
--- a/generator/feature_generator.hpp
+++ b/generator/feature_generator.hpp
@@ -4,9 +4,9 @@
#include "coding/file_writer.hpp"
-#include "std/limits.hpp"
-#include "std/string.hpp"
-#include "std/vector.hpp"
+#include <limits>
+#include <string>
+#include <vector>
class FeatureBuilder1;
@@ -20,7 +20,7 @@ class FeaturesCollector
uint32_t m_featureID = 0;
protected:
- static uint32_t constexpr kInvalidFeatureId = numeric_limits<uint32_t>::max();
+ static uint32_t constexpr kInvalidFeatureId = std::numeric_limits<uint32_t>::max();
FileWriter m_datFile;
m2::RectD m_bounds;
@@ -33,15 +33,15 @@ protected:
static uint32_t GetFileSize(FileWriter const & f);
/// @return feature offset in the file, which is used as an ID later
- uint32_t WriteFeatureBase(vector<char> const & bytes, FeatureBuilder1 const & fb);
+ uint32_t WriteFeatureBase(std::vector<char> const & bytes, FeatureBuilder1 const & fb);
void Flush();
public:
- FeaturesCollector(string const & fName);
+ FeaturesCollector(std::string const & fName);
virtual ~FeaturesCollector();
- string const & GetFilePath() const { return m_datFile.GetName(); }
+ std::string const & GetFilePath() const { return m_datFile.GetName(); }
/// \brief Serializes |f|.
/// \returns feature id of serialized feature if |f| is serialized after the call
/// and |kInvalidFeatureId| if not.
@@ -56,8 +56,8 @@ class FeaturesAndRawGeometryCollector : public FeaturesCollector
size_t m_rawGeometryCounter = 0;
public:
- FeaturesAndRawGeometryCollector(string const & featuresFileName,
- string const & rawGeometryFileName);
+ FeaturesAndRawGeometryCollector(std::string const & featuresFileName,
+ std::string const & rawGeometryFileName);
~FeaturesAndRawGeometryCollector();
uint32_t operator()(FeatureBuilder1 const & f) override;
diff --git a/generator/feature_merger.cpp b/generator/feature_merger.cpp
index a22cb15b09..37fbcd9e8b 100644
--- a/generator/feature_merger.cpp
+++ b/generator/feature_merger.cpp
@@ -143,7 +143,7 @@ void FeatureMergeProcessor::operator() (MergedFeatureBuilder1 * p)
///@ todo Do it only for small round features!
p->SetRound();
- p->ForEachMiddlePoints(bind(&FeatureMergeProcessor::Insert, this, _1, p));
+ p->ForEachMiddlePoints(std::bind(&FeatureMergeProcessor::Insert, this, std::placeholders::_1, p));
}
}
@@ -175,7 +175,7 @@ void FeatureMergeProcessor::Remove(MergedFeatureBuilder1 const * p)
{
ASSERT ( p->IsRound(), () );
- p->ForEachMiddlePoints(bind(&FeatureMergeProcessor::Remove1, this, _1, p));
+ p->ForEachMiddlePoints(std::bind(&FeatureMergeProcessor::Remove1, this, std::placeholders::_1, p));
}
}
@@ -275,7 +275,7 @@ void FeatureMergeProcessor::DoMerge(FeatureEmitterIFace & emitter)
uint32_t FeatureTypesProcessor::GetType(char const * arr[], size_t n)
{
- uint32_t const type = classif().GetTypeByPath(vector<string>(arr, arr + n));
+ uint32_t const type = classif().GetTypeByPath(std::vector<std::string>(arr, arr + n));
CHECK_NOT_EQUAL(type, ftype::GetEmptyValue(), ());
return type;
}
diff --git a/generator/feature_merger.hpp b/generator/feature_merger.hpp
index 600ff90e05..0075aa8037 100644
--- a/generator/feature_merger.hpp
+++ b/generator/feature_merger.hpp
@@ -2,10 +2,9 @@
#include "generator/feature_emitter_iface.hpp"
#include "generator/feature_builder.hpp"
-#include "std/map.hpp"
-#include "std/set.hpp"
-#include "std/vector.hpp"
-
+#include <map>
+#include <set>
+#include <vector>
/// Feature builder class that used while feature type processing and merging.
class MergedFeatureBuilder1 : public FeatureBuilder1
@@ -61,8 +60,8 @@ class FeatureMergeProcessor
MergedFeatureBuilder1 m_last;
- typedef vector<MergedFeatureBuilder1 *> vector_t;
- typedef map<key_t, vector_t> map_t;
+ typedef std::vector<MergedFeatureBuilder1 *> vector_t;
+ typedef std::map<key_t, vector_t> map_t;
map_t m_map;
void Insert(m2::PointD const & pt, MergedFeatureBuilder1 * p);
@@ -89,8 +88,8 @@ public:
/// Feature types corrector.
class FeatureTypesProcessor
{
- set<uint32_t> m_dontNormalize;
- map<uint32_t, uint32_t> m_mapping;
+ std::set<uint32_t> m_dontNormalize;
+ std::map<uint32_t, uint32_t> m_mapping;
static uint32_t GetType(char const * arr[], size_t n);
diff --git a/generator/feature_segments_checker/feature_segments_checker.cpp b/generator/feature_segments_checker/feature_segments_checker.cpp
index f1aa81c7e3..6e17b3c013 100644
--- a/generator/feature_segments_checker/feature_segments_checker.cpp
+++ b/generator/feature_segments_checker/feature_segments_checker.cpp
@@ -19,16 +19,18 @@
#include "base/logging.hpp"
#include "base/math.hpp"
-#include "std/cmath.hpp"
-#include "std/fstream.hpp"
-#include "std/iostream.hpp"
-#include "std/map.hpp"
-#include "std/numeric.hpp"
-#include "std/set.hpp"
-#include "std/string.hpp"
+#include <cmath>
+#include <fstream>
+#include <iostream>
+#include <map>
+#include <numeric>
+#include <set>
+#include <string>
#include "3party/gflags/src/gflags/gflags.h"
+using namespace std;
+
DEFINE_string(srtm_dir_path, "", "Path to directory with SRTM files");
DEFINE_string(mwm_file_path, "", "Path to an mwm file.");
diff --git a/generator/feature_sorter.cpp b/generator/feature_sorter.cpp
index 0e04109076..19beba9cad 100644
--- a/generator/feature_sorter.cpp
+++ b/generator/feature_sorter.cpp
@@ -95,7 +95,7 @@ namespace feature
class TmpFile : public FileWriter
{
public:
- explicit TmpFile(string const & filePath) : FileWriter(filePath) {}
+ explicit TmpFile(std::string const & filePath) : FileWriter(filePath) {}
~TmpFile()
{
DeleteFileX(GetName());
@@ -118,14 +118,14 @@ namespace feature
gen::OsmID2FeatureID m_osm2ft;
public:
- FeaturesCollector2(string const & fName, DataHeader const & header,
+ FeaturesCollector2(std::string const & fName, DataHeader const & header,
RegionData const & regionData, uint32_t versionDate)
: FeaturesCollector(fName + DATA_FILE_TAG), m_writer(fName),
m_header(header), m_regionData(regionData), m_versionDate(versionDate)
{
for (size_t i = 0; i < m_header.GetScalesCount(); ++i)
{
- string const postfix = strings::to_string(i);
+ std::string const postfix = strings::to_string(i);
m_geoFile.push_back(make_unique<TmpFile>(fName + GEOMETRY_FILE_TAG + postfix));
m_trgFile.push_back(make_unique<TmpFile>(fName + TRIANGLE_FILE_TAG + postfix));
}
@@ -162,8 +162,8 @@ namespace feature
m_writer.Write(m_datFile.GetName(), DATA_FILE_TAG);
// File Writer finalization function with appending to the main mwm file.
- auto const finalizeFn = [this](unique_ptr<TmpFile> w, string const & tag,
- string const & postfix = string())
+ auto const finalizeFn = [this](unique_ptr<TmpFile> w, std::string const & tag,
+ std::string const & postfix = std::string())
{
w->Flush();
m_writer.Write(w->GetName(), tag + postfix);
@@ -171,7 +171,7 @@ namespace feature
for (size_t i = 0; i < m_header.GetScalesCount(); ++i)
{
- string const postfix = strings::to_string(i);
+ std::string const postfix = strings::to_string(i);
finalizeFn(move(m_geoFile[i]), GEOMETRY_FILE_TAG, postfix);
finalizeFn(move(m_trgFile[i]), TRIANGLE_FILE_TAG, postfix);
}
@@ -250,7 +250,7 @@ namespace feature
tesselator::PointsInfo points;
m2::PointU (* D2U)(m2::PointD const &, uint32_t) = &PointD2PointU;
info.GetPointsInfo(saver.GetBasePoint(), saver.GetMaxPoint(),
- bind(D2U, _1, cp.GetCoordBits()), points);
+ std::bind(D2U, std::placeholders::_1, cp.GetCoordBits()), points);
// triangles processing (should be optimal)
info.ProcessPortions(points, saver, true);
@@ -556,10 +556,10 @@ namespace feature
return static_cast<FeatureBuilder2 &>(fb);
}
- bool GenerateFinalFeatures(feature::GenerateInfo const & info, string const & name, int mapType)
+ bool GenerateFinalFeatures(feature::GenerateInfo const & info, std::string const & name, int mapType)
{
- string const srcFilePath = info.GetTmpFileName(name);
- string const datFilePath = info.GetTargetFileName(name);
+ std::string const srcFilePath = info.GetTmpFileName(name);
+ std::string const datFilePath = info.GetTargetFileName(name);
// stores cellIds for middle points
CalculateMidPoints midPoints;
diff --git a/generator/feature_sorter.hpp b/generator/feature_sorter.hpp
index 9797aaea83..368a4cc4dd 100644
--- a/generator/feature_sorter.hpp
+++ b/generator/feature_sorter.hpp
@@ -7,7 +7,7 @@
#include "indexer/scales.hpp"
-#include "std/string.hpp"
+#include <string>
namespace feature
@@ -15,7 +15,7 @@ namespace feature
/// Final generation of data from input feature-dat-file.
/// @param path - path to folder with countries;
/// @param name - name of generated country;
- bool GenerateFinalFeatures(feature::GenerateInfo const & info, string const & name, int mapType);
+ bool GenerateFinalFeatures(feature::GenerateInfo const & info, std::string const & name, int mapType);
template <class PointT>
inline bool are_points_equal(PointT const & p1, PointT const & p2)
@@ -50,7 +50,7 @@ namespace feature
fabs(p.y - m_rect.minY()) <= m_eps || fabs(p.y - m_rect.maxY()) <= m_eps)
{
// points near rect should be in a result simplified vector
- return numeric_limits<double>::max();
+ return std::numeric_limits<double>::max();
}
return m2::DistanceToLineSquare<m2::PointD>::operator()(p);
diff --git a/generator/gen_mwm_info.hpp b/generator/gen_mwm_info.hpp
index 296bec6e34..09816200ba 100644
--- a/generator/gen_mwm_info.hpp
+++ b/generator/gen_mwm_info.hpp
@@ -6,16 +6,16 @@
#include "base/assert.hpp"
-#include "std/algorithm.hpp"
-#include "std/utility.hpp"
-#include "std/vector.hpp"
+#include <algorithm>
+#include <utility>
+#include <vector>
namespace gen
{
template <class T> class Accumulator
{
protected:
- vector<T> m_data;
+ std::vector<T> m_data;
public:
typedef T ValueT;
@@ -33,7 +33,7 @@ public:
}
};
-class OsmID2FeatureID : public Accumulator<pair<osm::Id, uint32_t /* feature id */>>
+class OsmID2FeatureID : public Accumulator<std::pair<osm::Id, uint32_t /* feature id */>>
{
typedef Accumulator<ValueT> BaseT;
@@ -47,7 +47,7 @@ class OsmID2FeatureID : public Accumulator<pair<osm::Id, uint32_t /* feature id
public:
template <class TSink> void Flush(TSink & sink)
{
- sort(m_data.begin(), m_data.end());
+ std::sort(m_data.begin(), m_data.end());
BaseT::Flush(sink);
}
@@ -55,7 +55,7 @@ public:
uint32_t GetRoadFeatureID(uint64_t wayId) const
{
osm::Id id = osm::Id::Way(wayId);
- auto const it = lower_bound(m_data.begin(), m_data.end(), id, LessID());
+ auto const it = std::lower_bound(m_data.begin(), m_data.end(), id, LessID());
if (it != m_data.end() && it->first == id)
return it->second;
return 0;
diff --git a/generator/generate_info.hpp b/generator/generate_info.hpp
index 275ac2e9d8..e6983b81ef 100644
--- a/generator/generate_info.hpp
+++ b/generator/generate_info.hpp
@@ -6,8 +6,8 @@
#include "coding/file_name_utils.hpp"
-#include "std/string.hpp"
-#include "std/vector.hpp"
+#include <string>
+#include <vector>
namespace feature
{
@@ -27,27 +27,27 @@ struct GenerateInfo
};
// Directory for .mwm.tmp files.
- string m_tmpDir;
+ std::string m_tmpDir;
// Directory for result .mwm files.
- string m_targetDir;
+ std::string m_targetDir;
// Directory for all intermediate files.
- string m_intermediateDir;
+ std::string m_intermediateDir;
// Current generated file name if --output option is defined.
- string m_fileName;
+ std::string m_fileName;
NodeStorageType m_nodeStorageType;
OsmSourceType m_osmFileType;
- string m_osmFileName;
+ std::string m_osmFileName;
- string m_bookingDatafileName;
- string m_bookingReferenceDir;
- string m_opentableDatafileName;
- string m_opentableReferenceDir;
+ std::string m_bookingDatafileName;
+ std::string m_bookingReferenceDir;
+ std::string m_opentableDatafileName;
+ std::string m_opentableReferenceDir;
uint32_t m_versionDate = 0;
- vector<string> m_bucketNames;
+ std::vector<std::string> m_bucketNames;
bool m_createWorld = false;
bool m_splitByPolygons = false;
@@ -60,7 +60,7 @@ struct GenerateInfo
GenerateInfo() = default;
- void SetOsmFileType(string const & type)
+ void SetOsmFileType(std::string const & type)
{
if (type == "xml")
m_osmFileType = OsmSourceType::XML;
@@ -70,7 +70,7 @@ struct GenerateInfo
LOG(LCRITICAL, ("Unknown source type:", type));
}
- void SetNodeStorageType(string const & type)
+ void SetNodeStorageType(std::string const & type)
{
if (type == "raw")
m_nodeStorageType = NodeStorageType::File;
@@ -82,24 +82,24 @@ struct GenerateInfo
LOG(LCRITICAL, ("Incorrect node_storage type:", type));
}
- string GetTmpFileName(string const & fileName, char const * ext = DATA_FILE_EXTENSION_TMP) const
+ std::string GetTmpFileName(std::string const & fileName, char const * ext = DATA_FILE_EXTENSION_TMP) const
{
return my::JoinFoldersToPath(m_tmpDir, fileName + ext);
}
- string GetTargetFileName(string const & fileName, char const * ext = DATA_FILE_EXTENSION) const
+ std::string GetTargetFileName(std::string const & fileName, char const * ext = DATA_FILE_EXTENSION) const
{
return my::JoinFoldersToPath(m_targetDir, fileName + ext);
}
- string GetIntermediateFileName(string const & fileName, char const * ext = DATA_FILE_EXTENSION) const
+ std::string GetIntermediateFileName(std::string const & fileName, char const * ext = DATA_FILE_EXTENSION) const
{
return my::JoinFoldersToPath(m_intermediateDir, fileName + ext);
}
- string GetAddressesFileName() const
+ std::string GetAddressesFileName() const
{
- return ((m_genAddresses && !m_fileName.empty()) ? GetTargetFileName(m_fileName, ADDR_FILE_EXTENSION) : string());
+ return ((m_genAddresses && !m_fileName.empty()) ? GetTargetFileName(m_fileName, ADDR_FILE_EXTENSION) : std::string());
}
};
} // namespace feature
diff --git a/generator/generator_tests/altitude_test.cpp b/generator/generator_tests/altitude_test.cpp
index 0138edea7f..220e9b4845 100644
--- a/generator/generator_tests/altitude_test.cpp
+++ b/generator/generator_tests/altitude_test.cpp
@@ -25,7 +25,7 @@
#include "base/logging.hpp"
#include "base/scope_guard.hpp"
-#include "std/string.hpp"
+#include <string>
using namespace feature;
using namespace generator;
@@ -45,9 +45,9 @@ namespace
// @TODO(bykoianko) Add ability to add to the tests not road features without altitude information.
// Directory name for creating test mwm and temporary files.
-string const kTestDir = "altitude_generation_test";
+std::string const kTestDir = "altitude_generation_test";
// Temporary mwm name for testing.
-string const kTestMwm = "test";
+std::string const kTestMwm = "test";
struct Point3D
{
@@ -125,10 +125,10 @@ void BuildMwmWithoutAltitudes(vector<TPoint3DList> const & roads, LocalCountryFi
generator::tests_support::TestMwmBuilder builder(country, feature::DataHeader::country);
for (TPoint3DList const & geom3D : roads)
- builder.Add(generator::tests_support::TestStreet(ExtractPoints(geom3D), string(), string()));
+ builder.Add(generator::tests_support::TestStreet(ExtractPoints(geom3D), std::string(), std::string()));
}
-void TestAltitudes(MwmValue const & mwmValue, string const & mwmPath,
+void TestAltitudes(MwmValue const & mwmValue, std::string const & mwmPath,
bool hasAltitudeExpected, AltitudeGetter & expectedAltitudes)
{
AltitudeLoader loader(mwmValue);
@@ -163,7 +163,7 @@ void TestAltitudesBuilding(vector<TPoint3DList> const & roads, bool hasAltitudeE
{
classificator::Load();
Platform & platform = GetPlatform();
- string const testDirFullPath = my::JoinFoldersToPath(platform.WritableDir(), kTestDir);
+ std::string const testDirFullPath = my::JoinFoldersToPath(platform.WritableDir(), kTestDir);
// Building mwm without altitude section.
LocalCountryFile country(testDirFullPath, CountryFile(kTestMwm), 1);
@@ -172,7 +172,7 @@ void TestAltitudesBuilding(vector<TPoint3DList> const & roads, bool hasAltitudeE
BuildMwmWithoutAltitudes(roads, country);
// Adding altitude section to mwm.
- string const mwmPath = my::JoinFoldersToPath(testDirFullPath, kTestMwm + DATA_FILE_EXTENSION);
+ std::string const mwmPath = my::JoinFoldersToPath(testDirFullPath, kTestMwm + DATA_FILE_EXTENSION);
BuildRoadAltitudes(mwmPath, altitudeGetter);
// Reading from mwm and testing altitude information.
diff --git a/generator/generator_tests/coasts_test.cpp b/generator/generator_tests/coasts_test.cpp
index 94439cea34..1a4a7711f1 100644
--- a/generator/generator_tests/coasts_test.cpp
+++ b/generator/generator_tests/coasts_test.cpp
@@ -12,6 +12,7 @@
#include "base/logging.hpp"
+using namespace std;
namespace
{
diff --git a/generator/generator_tests/osm_o5m_source_test.cpp b/generator/generator_tests/osm_o5m_source_test.cpp
index 7ab8c54cfb..4e99a4481d 100644
--- a/generator/generator_tests/osm_o5m_source_test.cpp
+++ b/generator/generator_tests/osm_o5m_source_test.cpp
@@ -2,14 +2,16 @@
#include "generator/osm_o5m_source.hpp"
-#include "std/iterator.hpp"
-#include "std/set.hpp"
-#include "std/utility.hpp"
-#include "std/vector.hpp"
+#include <iterator>
+#include <set>
+#include <utility>
+#include <vector>
#include "source_data.hpp"
+using namespace std;
+
UNIT_TEST(OSM_O5M_Source_Node_read_test)
{
string data(begin(node2_o5m_data), end(node2_o5m_data));
diff --git a/generator/generator_tests/osm_type_test.cpp b/generator/generator_tests/osm_type_test.cpp
index 60d3532332..00af901795 100644
--- a/generator/generator_tests/osm_type_test.cpp
+++ b/generator/generator_tests/osm_type_test.cpp
@@ -14,7 +14,7 @@
#include "indexer/classificator.hpp"
#include "indexer/classificator_loader.hpp"
-#include "std/iostream.hpp"
+#include <iostream>
using namespace tests;
@@ -42,11 +42,11 @@ UNIT_TEST(OsmType_SkipDummy)
namespace
{
- void DumpTypes(vector<uint32_t> const & v)
+ void DumpTypes(std::vector<uint32_t> const & v)
{
Classificator const & c = classif();
for (size_t i = 0; i < v.size(); ++i)
- cout << c.GetFullObjectName(v[i]) << endl;
+ std::cout << c.GetFullObjectName(v[i]) << std::endl;
}
void DumpParsedTypes(char const * arr[][2], size_t count)
@@ -60,7 +60,8 @@ namespace
DumpTypes(params.m_Types);
}
- void TestSurfaceTypes(string const & surface, string const & smoothness, string const & grade, char const * value)
+ void TestSurfaceTypes(std::string const & surface, std::string const & smoothness,
+ std::string const & grade, char const * value)
{
OsmElement e;
e.AddTag("highway", "unclassified");
@@ -73,10 +74,10 @@ namespace
TEST_EQUAL(params.m_Types.size(), 2, (params));
TEST(params.IsTypeExist(GetType({"highway", "unclassified"})), ());
- string psurface;
+ std::string psurface;
for (auto type : params.m_Types)
{
- string const rtype = classif().GetReadableObjectName(type);
+ std::string const rtype = classif().GetReadableObjectName(type);
if (rtype.substr(0, 9) == "psurface-")
psurface = rtype.substr(9);
}
@@ -141,7 +142,7 @@ UNIT_TEST(OsmType_Combined)
TEST(params.IsTypeExist(GetType(arr[3])), ());
TEST(params.IsTypeExist(GetType({"building"})), ());
- string s;
+ std::string s;
params.name.GetString(0, s);
TEST_EQUAL(s, arr[5][1], ());
@@ -195,7 +196,7 @@ UNIT_TEST(OsmType_PlaceState)
TEST_EQUAL(params.m_Types.size(), 1, (params));
TEST(params.IsTypeExist(GetType({"place", "state", "USA"})), ());
- string s;
+ std::string s;
TEST(params.name.GetString(0, s), ());
TEST_EQUAL(s, "California", ());
TEST_GREATER(params.rank, 1, ());
@@ -667,7 +668,7 @@ UNIT_TEST(OsmType_Dibrugarh)
TEST_EQUAL(params.m_Types.size(), 1, (params));
TEST(params.IsTypeExist(GetType({"place", "city"})), (params));
- string name;
+ std::string name;
TEST(params.name.GetString(StringUtf8Multilang::kDefaultCode, name), (params));
TEST_EQUAL(name, "Dibrugarh", (params));
}
diff --git a/generator/generator_tests/restriction_collector_test.cpp b/generator/generator_tests/restriction_collector_test.cpp
index 75bdf4d5c7..e68df0e752 100644
--- a/generator/generator_tests/restriction_collector_test.cpp
+++ b/generator/generator_tests/restriction_collector_test.cpp
@@ -16,9 +16,9 @@
#include "base/stl_helpers.hpp"
-#include "std/string.hpp"
-#include "std/utility.hpp"
-#include "std/vector.hpp"
+#include <string>
+#include <utility>
+#include <vector>
using namespace generator;
using namespace platform;
@@ -26,7 +26,7 @@ using namespace platform::tests_support;
namespace routing
{
-string const kRestrictionTestDir = "test-restrictions";
+std::string const kRestrictionTestDir = "test-restrictions";
UNIT_TEST(RestrictionTest_ValidCase)
{
@@ -67,9 +67,9 @@ UNIT_TEST(RestrictionTest_InvalidCase)
UNIT_TEST(RestrictionTest_ParseRestrictions)
{
- string const kRestrictionName = "restrictions_in_osm_ids.csv";
- string const kRestrictionPath = my::JoinFoldersToPath(kRestrictionTestDir, kRestrictionName);
- string const kRestrictionContent = R"(No, 1, 1,
+ std::string const kRestrictionName = "restrictions_in_osm_ids.csv";
+ std::string const kRestrictionPath = my::JoinFoldersToPath(kRestrictionTestDir, kRestrictionName);
+ std::string const kRestrictionContent = R"(No, 1, 1,
Only, 0, 2,
Only, 2, 3,
No, 38028428, 38028428
@@ -92,22 +92,22 @@ UNIT_TEST(RestrictionTest_RestrictionCollectorWholeClassTest)
{
ScopedDir scopedDir(kRestrictionTestDir);
- string const kRestrictionName = "restrictions_in_osm_ids.csv";
- string const kRestrictionPath = my::JoinFoldersToPath(kRestrictionTestDir, kRestrictionName);
- string const kRestrictionContent = R"(No, 10, 10,
+ std::string const kRestrictionName = "restrictions_in_osm_ids.csv";
+ std::string const kRestrictionPath = my::JoinFoldersToPath(kRestrictionTestDir, kRestrictionName);
+ std::string const kRestrictionContent = R"(No, 10, 10,
Only, 10, 20,
Only, 30, 40,)";
ScopedFile restrictionScopedFile(kRestrictionPath, kRestrictionContent);
- string const kOsmIdsToFeatureIdsName = "osm_ids_to_feature_ids" OSM2FEATURE_FILE_EXTENSION;
- string const osmIdsToFeatureIdsPath =
+ std::string const kOsmIdsToFeatureIdsName = "osm_ids_to_feature_ids" OSM2FEATURE_FILE_EXTENSION;
+ std::string const osmIdsToFeatureIdsPath =
my::JoinFoldersToPath(kRestrictionTestDir, kOsmIdsToFeatureIdsName);
- string const kOsmIdsToFeatureIdsContent = R"(10, 1,
+ std::string const kOsmIdsToFeatureIdsContent = R"(10, 1,
20, 2,
30, 3,
40, 4)";
Platform const & platform = Platform();
- string const osmIdsToFeatureIdsFullPath =
+ std::string const osmIdsToFeatureIdsFullPath =
my::JoinFoldersToPath(platform.WritableDir(), osmIdsToFeatureIdsPath);
ReEncodeOsmIdsToFeatureIdsMapping(kOsmIdsToFeatureIdsContent, osmIdsToFeatureIdsFullPath);
ScopedFile mappingScopedFile(osmIdsToFeatureIdsPath);
diff --git a/generator/generator_tests/restriction_test.cpp b/generator/generator_tests/restriction_test.cpp
index b02f335f94..9c40951442 100644
--- a/generator/generator_tests/restriction_test.cpp
+++ b/generator/generator_tests/restriction_test.cpp
@@ -19,7 +19,9 @@
#include "base/logging.hpp"
-#include "std/string.hpp"
+#include <string>
+
+using namespace std;
using namespace feature;
using namespace generator;
diff --git a/generator/generator_tests/road_access_test.cpp b/generator/generator_tests/road_access_test.cpp
index e1bbf332ff..ce444144af 100644
--- a/generator/generator_tests/road_access_test.cpp
+++ b/generator/generator_tests/road_access_test.cpp
@@ -28,6 +28,8 @@
#include <string>
#include <vector>
+using namespace std;
+
using namespace feature;
using namespace generator::tests_support;
using namespace generator;
diff --git a/generator/generator_tests/source_to_element_test.cpp b/generator/generator_tests/source_to_element_test.cpp
index 23011ee15c..eac95469b6 100644
--- a/generator/generator_tests/source_to_element_test.cpp
+++ b/generator/generator_tests/source_to_element_test.cpp
@@ -4,16 +4,16 @@
#include "generator/osm_source.hpp"
#include "generator/osm_element.hpp"
-#include "std/iterator.hpp"
+#include <iterator>
#include "source_data.hpp"
UNIT_TEST(Source_To_Element_create_from_xml_test)
{
- istringstream ss(way_xml_data);
+ std::istringstream ss(way_xml_data);
SourceReader reader(ss);
- vector<OsmElement> elements;
+ std::vector<OsmElement> elements;
ProcessOsmElementsFromXML(reader, [&elements](OsmElement * e)
{
elements.push_back(*e);
@@ -24,36 +24,36 @@ UNIT_TEST(Source_To_Element_create_from_xml_test)
UNIT_TEST(Source_To_Element_create_from_o5m_test)
{
- string src(begin(relation_o5m_data), end(relation_o5m_data));
- istringstream ss(src);
+ std::string src(std::begin(relation_o5m_data), std::end(relation_o5m_data));
+ std::istringstream ss(src);
SourceReader reader(ss);
- vector<OsmElement> elements;
+ std::vector<OsmElement> elements;
ProcessOsmElementsFromO5M(reader, [&elements](OsmElement * e)
{
elements.push_back(*e);
});
TEST_EQUAL(elements.size(), 11, (elements));
- cout << DebugPrint(elements);
+ std::cout << DebugPrint(elements);
}
UNIT_TEST(Source_To_Element_check_equivalence)
{
- istringstream ss1(relation_xml_data);
+ std::istringstream ss1(relation_xml_data);
SourceReader readerXML(ss1);
- vector<OsmElement> elementsXML;
+ std::vector<OsmElement> elementsXML;
ProcessOsmElementsFromXML(readerXML, [&elementsXML](OsmElement * e)
{
elementsXML.push_back(*e);
});
- string src(begin(relation_o5m_data), end(relation_o5m_data));
- istringstream ss2(src);
+ std::string src(std::begin(relation_o5m_data), std::end(relation_o5m_data));
+ std::istringstream ss2(src);
SourceReader readerO5M(ss2);
- vector<OsmElement> elementsO5M;
+ std::vector<OsmElement> elementsO5M;
ProcessOsmElementsFromO5M(readerO5M, [&elementsO5M](OsmElement * e)
{
elementsO5M.push_back(*e);
diff --git a/generator/generator_tests/srtm_parser_test.cpp b/generator/generator_tests/srtm_parser_test.cpp
index 79ef60431e..fa8b7acc06 100644
--- a/generator/generator_tests/srtm_parser_test.cpp
+++ b/generator/generator_tests/srtm_parser_test.cpp
@@ -6,7 +6,7 @@ using namespace generator;
namespace
{
-inline string GetBase(ms::LatLon const & coord) { return SrtmTile::GetBase(coord); }
+inline std::string GetBase(ms::LatLon const & coord) { return SrtmTile::GetBase(coord); }
UNIT_TEST(FilenameTests)
{
diff --git a/generator/generator_tests/tag_admixer_test.cpp b/generator/generator_tests/tag_admixer_test.cpp
index 92317629cc..0e1e24f87b 100644
--- a/generator/generator_tests/tag_admixer_test.cpp
+++ b/generator/generator_tests/tag_admixer_test.cpp
@@ -2,30 +2,30 @@
#include "generator/tag_admixer.hpp"
-#include "std/map.hpp"
-#include "std/set.hpp"
-#include "std/sstream.hpp"
+#include <map>
+#include <set>
+#include <sstream>
UNIT_TEST(WaysParserTests)
{
- map<uint64_t, string> ways;
+ std::map<uint64_t, std::string> ways;
WaysParserHelper parser(ways);
- istringstream stream("140247102;world_level\n86398306;another_level\n294584441;world_level");
+ std::istringstream stream("140247102;world_level\n86398306;another_level\n294584441;world_level");
parser.ParseStream(stream);
TEST(ways.find(140247102) != ways.end(), ());
- TEST_EQUAL(ways[140247102], string("world_level"), ());
+ TEST_EQUAL(ways[140247102], std::string("world_level"), ());
TEST(ways.find(86398306) != ways.end(), ());
- TEST_EQUAL(ways[86398306], string("another_level"), ());
+ TEST_EQUAL(ways[86398306], std::string("another_level"), ());
TEST(ways.find(294584441) != ways.end(), ());
- TEST_EQUAL(ways[294584441], string("world_level"), ());
+ TEST_EQUAL(ways[294584441], std::string("world_level"), ());
TEST(ways.find(140247101) == ways.end(), ());
}
UNIT_TEST(CapitalsParserTests)
{
- set<uint64_t> capitals;
+ std::set<uint64_t> capitals;
CapitalsParserHelper parser(capitals);
- istringstream stream("-21.1343401;-175.201808;1082208696;t\n-16.6934156;-179.87995;242715809;f\n19.0534159;169.919199;448768937;t");
+ std::istringstream stream("-21.1343401;-175.201808;1082208696;t\n-16.6934156;-179.87995;242715809;f\n19.0534159;169.919199;448768937;t");
parser.ParseStream(stream);
TEST(capitals.find(1082208696) != capitals.end(), ());
TEST(capitals.find(242715809) != capitals.end(), ());
diff --git a/generator/generator_tests/tesselator_test.cpp b/generator/generator_tests/tesselator_test.cpp
index 8a7c7ab0cd..a6b04ae9c0 100644
--- a/generator/generator_tests/tesselator_test.cpp
+++ b/generator/generator_tests/tesselator_test.cpp
@@ -4,6 +4,7 @@
#include "base/logging.hpp"
+using namespace std;
namespace
{
diff --git a/generator/generator_tests/triangles_tree_coding_test.cpp b/generator/generator_tests/triangles_tree_coding_test.cpp
index a3da04d6dc..331497689d 100644
--- a/generator/generator_tests/triangles_tree_coding_test.cpp
+++ b/generator/generator_tests/triangles_tree_coding_test.cpp
@@ -64,12 +64,12 @@ namespace
tesselator::PointsInfo points;
m2::PointU (* D2U)(m2::PointD const &, uint32_t) = &PointD2PointU;
info.GetPointsInfo(saver.GetBasePoint(), saver.GetMaxPoint(),
- bind(D2U, _1, cp.GetCoordBits()), points);
+ std::bind(D2U, std::placeholders::_1, cp.GetCoordBits()), points);
info.ProcessPortions(points, saver);
- vector<char> buffer;
- MemWriter<vector<char> > writer(buffer);
+ std::vector<char> buffer;
+ MemWriter<std::vector<char> > writer(buffer);
saver.Save(writer);
TEST ( !buffer.empty(), () );
diff --git a/generator/generator_tests/types_helper.hpp b/generator/generator_tests/types_helper.hpp
index 47c091e5d2..b8173e81b5 100644
--- a/generator/generator_tests/types_helper.hpp
+++ b/generator/generator_tests/types_helper.hpp
@@ -5,8 +5,10 @@
#include "indexer/classificator.hpp"
#include "indexer/feature_data.hpp"
-#include "std/string.hpp"
-#include "std/vector.hpp"
+#include "base/stl_add.hpp"
+
+#include <string>
+#include <vector>
namespace tests
@@ -18,7 +20,7 @@ inline void AddTypes(FeatureParams & params, char const * (&arr)[N][M])
Classificator const & c = classif();
for (size_t i = 0; i < N; ++i)
- params.AddType(c.GetTypeByPath(vector<string>(arr[i], arr[i] + M)));
+ params.AddType(c.GetTypeByPath(std::vector<std::string>(arr[i], arr[i] + M)));
}
inline void FillXmlElement(char const * arr[][2], size_t count, OsmElement * p)
@@ -30,11 +32,11 @@ inline void FillXmlElement(char const * arr[][2], size_t count, OsmElement * p)
template <size_t N>
inline uint32_t GetType(char const * (&arr)[N])
{
- vector<string> path(arr, arr + N);
+ std::vector<std::string> path(arr, arr + N);
return classif().GetTypeByPath(path);
}
-inline uint32_t GetType(StringIL const & lst)
+inline uint32_t GetType(my::StringIL const & lst)
{
return classif().GetTypeByPath(lst);
}
diff --git a/generator/generator_tests_support/routing_helpers.cpp b/generator/generator_tests_support/routing_helpers.cpp
index dacb57a333..7207d6a245 100644
--- a/generator/generator_tests_support/routing_helpers.cpp
+++ b/generator/generator_tests_support/routing_helpers.cpp
@@ -9,15 +9,15 @@
#include "base/string_utils.hpp"
-#include "std/utility.hpp"
+#include <utility>
namespace generator
{
-void ReEncodeOsmIdsToFeatureIdsMapping(string const & mappingContent, string const & outputFilePath)
+void ReEncodeOsmIdsToFeatureIdsMapping(std::string const & mappingContent, std::string const & outputFilePath)
{
strings::SimpleTokenizer lineIter(mappingContent, "\n\r" /* line delimiters */);
- gen::Accumulator<pair<osm::Id, uint32_t>> osmIdsToFeatureIds;
+ gen::Accumulator<std::pair<osm::Id, uint32_t>> osmIdsToFeatureIds;
for (; lineIter; ++lineIter)
{
strings::SimpleTokenizer idIter(*lineIter, ", \t" /* id delimiters */);
@@ -30,7 +30,7 @@ void ReEncodeOsmIdsToFeatureIdsMapping(string const & mappingContent, string con
uint32_t featureId = 0;
TEST(idIter, ());
TEST(strings::to_uint(*idIter, featureId), ("Cannot convert to uint:", *idIter));
- osmIdsToFeatureIds.Add(make_pair(osm::Id::Way(osmId), featureId));
+ osmIdsToFeatureIds.Add(std::make_pair(osm::Id::Way(osmId), featureId));
++idIter;
TEST(!idIter, ());
}
diff --git a/generator/generator_tests_support/routing_helpers.hpp b/generator/generator_tests_support/routing_helpers.hpp
index 83f1a174f2..2906656938 100644
--- a/generator/generator_tests_support/routing_helpers.hpp
+++ b/generator/generator_tests_support/routing_helpers.hpp
@@ -1,6 +1,6 @@
#pragma once
-#include "std/string.hpp"
+#include <string>
namespace generator
{
@@ -12,6 +12,6 @@ namespace generator
/// 30, 3,
/// 40, 4
/// \param outputFilePath full path to an output file where the mapping is saved.
-void ReEncodeOsmIdsToFeatureIdsMapping(string const & mappingContent,
- string const & outputFilePath);
+void ReEncodeOsmIdsToFeatureIdsMapping(std::string const & mappingContent,
+ std::string const & outputFilePath);
} // namespace generator
diff --git a/generator/generator_tests_support/test_feature.cpp b/generator/generator_tests_support/test_feature.cpp
index 53c15af023..fd2a7de13a 100644
--- a/generator/generator_tests_support/test_feature.cpp
+++ b/generator/generator_tests_support/test_feature.cpp
@@ -17,8 +17,10 @@
#include "base/assert.hpp"
#include "base/string_utils.hpp"
-#include "std/atomic.hpp"
-#include "std/sstream.hpp"
+#include <atomic>
+#include <sstream>
+
+using namespace std;
namespace generator
{
diff --git a/generator/generator_tests_support/test_feature.hpp b/generator/generator_tests_support/test_feature.hpp
index d0afbe377e..f2727ea01c 100644
--- a/generator/generator_tests_support/test_feature.hpp
+++ b/generator/generator_tests_support/test_feature.hpp
@@ -5,9 +5,9 @@
#include "geometry/point2d.hpp"
-#include "std/string.hpp"
-#include "std/utility.hpp"
-#include "std/vector.hpp"
+#include <string>
+#include <utility>
+#include <vector>
class FeatureBuilder1;
class FeatureType;
@@ -27,43 +27,43 @@ public:
virtual ~TestFeature() = default;
bool Matches(FeatureType const & feature) const;
- inline void SetPostcode(string const & postcode) { m_postcode = postcode; }
+ inline void SetPostcode(std::string const & postcode) { m_postcode = postcode; }
inline uint64_t GetId() const { return m_id; }
- inline string const & GetName() const { return m_name; }
+ inline std::string const & GetName() const { return m_name; }
virtual void Serialize(FeatureBuilder1 & fb) const;
- virtual string ToString() const = 0;
+ virtual std::string ToString() const = 0;
protected:
- TestFeature(string const & name, string const & lang);
- TestFeature(m2::PointD const & center, string const & name, string const & lang);
+ TestFeature(std::string const & name, std::string const & lang);
+ TestFeature(m2::PointD const & center, std::string const & name, std::string const & lang);
uint64_t const m_id;
m2::PointD const m_center;
bool const m_hasCenter;
- string const m_name;
- string const m_lang;
- string m_postcode;
+ std::string const m_name;
+ std::string const m_lang;
+ std::string m_postcode;
};
class TestCountry : public TestFeature
{
public:
- TestCountry(m2::PointD const & center, string const & name, string const & lang);
+ TestCountry(m2::PointD const & center, std::string const & name, std::string const & lang);
// TestFeature overrides:
void Serialize(FeatureBuilder1 & fb) const override;
- string ToString() const override;
+ std::string ToString() const override;
};
class TestCity : public TestFeature
{
public:
- TestCity(m2::PointD const & center, string const & name, string const & lang, uint8_t rank);
+ TestCity(m2::PointD const & center, std::string const & name, std::string const & lang, uint8_t rank);
// TestFeature overrides:
void Serialize(FeatureBuilder1 & fb) const override;
- string ToString() const override;
+ std::string ToString() const override;
private:
uint8_t const m_rank;
@@ -72,11 +72,11 @@ private:
class TestVillage : public TestFeature
{
public:
- TestVillage(m2::PointD const & center, string const & name, string const & lang, uint8_t rank);
+ TestVillage(m2::PointD const & center, std::string const & name, std::string const & lang, uint8_t rank);
// TestFeature overrides:
void Serialize(FeatureBuilder1 & fb) const override;
- string ToString() const override;
+ std::string ToString() const override;
private:
uint8_t const m_rank;
@@ -85,84 +85,84 @@ private:
class TestStreet : public TestFeature
{
public:
- TestStreet(vector<m2::PointD> const & points, string const & name, string const & lang);
+ TestStreet(std::vector<m2::PointD> const & points, std::string const & name, std::string const & lang);
// TestFeature overrides:
void Serialize(FeatureBuilder1 & fb) const override;
- string ToString() const override;
+ std::string ToString() const override;
private:
- vector<m2::PointD> m_points;
+ std::vector<m2::PointD> m_points;
};
class TestPOI : public TestFeature
{
public:
- TestPOI(m2::PointD const & center, string const & name, string const & lang);
+ TestPOI(m2::PointD const & center, std::string const & name, std::string const & lang);
- static pair<TestPOI, FeatureID> AddWithEditor(osm::Editor & editor, MwmSet::MwmId const & mwmId,
- string const & enName, m2::PointD const & pt);
+ static std::pair<TestPOI, FeatureID> AddWithEditor(osm::Editor & editor, MwmSet::MwmId const & mwmId,
+ std::string const & enName, m2::PointD const & pt);
// TestFeature overrides:
void Serialize(FeatureBuilder1 & fb) const override;
- string ToString() const override;
+ std::string ToString() const override;
- inline void SetHouseNumber(string const & houseNumber) { m_houseNumber = houseNumber; }
+ inline void SetHouseNumber(std::string const & houseNumber) { m_houseNumber = houseNumber; }
inline void SetStreet(TestStreet const & street) { m_streetName = street.GetName(); }
- inline void SetTypes(vector<vector<string>> const & types) { m_types = types; }
+ inline void SetTypes(std::vector<std::vector<std::string>> const & types) { m_types = types; }
private:
- string m_houseNumber;
- string m_streetName;
- vector<vector<string>> m_types;
+ std::string m_houseNumber;
+ std::string m_streetName;
+ std::vector<std::vector<std::string>> m_types;
};
class TestBuilding : public TestFeature
{
public:
- TestBuilding(m2::PointD const & center, string const & name, string const & houseNumber,
- string const & lang);
- TestBuilding(m2::PointD const & center, string const & name, string const & houseNumber,
- TestStreet const & street, string const & lang);
- TestBuilding(vector<m2::PointD> const & boundary, string const & name, string const & houseNumber,
- TestStreet const & street, string const & lang);
+ TestBuilding(m2::PointD const & center, std::string const & name, std::string const & houseNumber,
+ std::string const & lang);
+ TestBuilding(m2::PointD const & center, std::string const & name, std::string const & houseNumber,
+ TestStreet const & street, std::string const & lang);
+ TestBuilding(std::vector<m2::PointD> const & boundary, std::string const & name, std::string const & houseNumber,
+ TestStreet const & street, std::string const & lang);
// TestFeature overrides:
void Serialize(FeatureBuilder1 & fb) const override;
- string ToString() const override;
+ std::string ToString() const override;
private:
- vector<m2::PointD> const m_boundary;
- string const m_houseNumber;
- string const m_streetName;
+ std::vector<m2::PointD> const m_boundary;
+ std::string const m_houseNumber;
+ std::string const m_streetName;
};
class TestPark : public TestFeature
{
public:
- TestPark(vector<m2::PointD> const & boundary, string const & name, string const & lang);
+ TestPark(std::vector<m2::PointD> const & boundary, std::string const & name, std::string const & lang);
// TestFeature overrides:
void Serialize(FeatureBuilder1 & fb) const override;
- string ToString() const override;
+ std::string ToString() const override;
private:
- vector<m2::PointD> m_boundary;
+ std::vector<m2::PointD> m_boundary;
};
class TestRoad : public TestFeature
{
public:
- TestRoad(vector<m2::PointD> const & points, string const & name, string const & lang);
+ TestRoad(std::vector<m2::PointD> const & points, std::string const & name, std::string const & lang);
// TestFeature overrides:
void Serialize(FeatureBuilder1 & fb) const override;
- string ToString() const override;
+ std::string ToString() const override;
private:
- vector<m2::PointD> m_points;
+ std::vector<m2::PointD> m_points;
};
-string DebugPrint(TestFeature const & feature);
+std::string DebugPrint(TestFeature const & feature);
} // namespace tests_support
} // namespace generator
diff --git a/generator/generator_tests_support/test_mwm_builder.cpp b/generator/generator_tests_support/test_mwm_builder.cpp
index 736452e33c..8305ece645 100644
--- a/generator/generator_tests_support/test_mwm_builder.cpp
+++ b/generator/generator_tests_support/test_mwm_builder.cpp
@@ -28,7 +28,7 @@ TestMwmBuilder::TestMwmBuilder(platform::LocalCountryFile & file, feature::DataH
: m_file(file),
m_type(type),
m_collector(
- make_unique<feature::FeaturesCollector>(m_file.GetPath(MapOptions::Map) + EXTENSION_TMP))
+ my::make_unique<feature::FeaturesCollector>(m_file.GetPath(MapOptions::Map) + EXTENSION_TMP))
{
}
@@ -67,7 +67,7 @@ bool TestMwmBuilder::Add(FeatureBuilder1 & fb)
void TestMwmBuilder::Finish()
{
- string const tmpFilePath = m_collector->GetFilePath();
+ std::string const tmpFilePath = m_collector->GetFilePath();
CHECK(m_collector, ("Finish() already was called."));
m_collector.reset();
@@ -80,7 +80,7 @@ void TestMwmBuilder::Finish()
CHECK(my::DeleteFileX(tmpFilePath), ());
- string const path = m_file.GetPath(MapOptions::Map);
+ std::string const path = m_file.GetPath(MapOptions::Map);
(void)my::DeleteFileX(path + OSM2FEATURE_FILE_EXTENSION);
CHECK(feature::BuildOffsetsTable(path), ("Can't build feature offsets table."));
diff --git a/generator/generator_tests_support/test_mwm_builder.hpp b/generator/generator_tests_support/test_mwm_builder.hpp
index 948999a5da..123075720c 100644
--- a/generator/generator_tests_support/test_mwm_builder.hpp
+++ b/generator/generator_tests_support/test_mwm_builder.hpp
@@ -2,7 +2,7 @@
#include "indexer/data_header.hpp"
-#include "std/unique_ptr.hpp"
+#include <memory>
namespace feature
{
@@ -35,7 +35,7 @@ public:
private:
platform::LocalCountryFile & m_file;
feature::DataHeader::MapType m_type;
- unique_ptr<feature::FeaturesCollector> m_collector;
+ std::unique_ptr<feature::FeaturesCollector> m_collector;
};
} // namespace tests_support
} // namespace generator
diff --git a/generator/generator_tool/generator_tool.cpp b/generator/generator_tool/generator_tool.cpp
index b8b463f1c1..9d7b9504ed 100644
--- a/generator/generator_tool/generator_tool.cpp
+++ b/generator/generator_tool/generator_tool.cpp
@@ -117,7 +117,7 @@ int main(int argc, char ** argv)
if (!FLAGS_user_resource_path.empty())
pl.SetResourceDir(FLAGS_user_resource_path);
- string const path =
+ std::string const path =
FLAGS_data_path.empty() ? pl.WritableDir() : my::AddSlashIfNeeded(FLAGS_data_path);
feature::GenerateInfo genInfo;
@@ -128,7 +128,7 @@ int main(int argc, char ** argv)
/// @todo Probably, it's better to add separate option for .mwm.tmp files.
if (!FLAGS_intermediate_data_path.empty())
{
- string const tmpPath = genInfo.m_intermediateDir + "tmp" + my::GetNativeSeparator();
+ std::string const tmpPath = genInfo.m_intermediateDir + "tmp" + my::GetNativeSeparator();
if (pl.MkDir(tmpPath) != Platform::ERR_UNKNOWN)
genInfo.m_tmpDir = tmpPath;
}
@@ -203,8 +203,8 @@ int main(int argc, char ** argv)
size_t const count = genInfo.m_bucketNames.size();
for (size_t i = 0; i < count; ++i)
{
- string const & country = genInfo.m_bucketNames[i];
- string const datFile = my::JoinFoldersToPath(path, country + DATA_FILE_EXTENSION);
+ std::string const & country = genInfo.m_bucketNames[i];
+ std::string const datFile = my::JoinFoldersToPath(path, country + DATA_FILE_EXTENSION);
if (FLAGS_generate_geometry)
{
@@ -252,13 +252,13 @@ int main(int argc, char ** argv)
if (!FLAGS_srtm_path.empty())
routing::BuildRoadAltitudes(datFile, FLAGS_srtm_path);
- string const osmToFeatureFilename = genInfo.GetTargetFileName(country) + OSM2FEATURE_FILE_EXTENSION;
+ std::string const osmToFeatureFilename = genInfo.GetTargetFileName(country) + OSM2FEATURE_FILE_EXTENSION;
if (FLAGS_make_routing_index)
{
- string const restrictionsFilename =
+ std::string const restrictionsFilename =
genInfo.GetIntermediateFileName(RESTRICTIONS_FILENAME, "" /* extension */);
- string const roadAccessFilename =
+ std::string const roadAccessFilename =
genInfo.GetIntermediateFileName(ROAD_ACCESS_FILENAME, "" /* extension */);
routing::BuildRoadRestrictions(datFile, restrictionsFilename, osmToFeatureFilename);
@@ -280,7 +280,7 @@ int main(int argc, char ** argv)
}
}
- string const datFile = my::JoinFoldersToPath(path, FLAGS_output + DATA_FILE_EXTENSION);
+ std::string const datFile = my::JoinFoldersToPath(path, FLAGS_output + DATA_FILE_EXTENSION);
if (FLAGS_calc_statistics)
{
diff --git a/generator/intermediate_data.hpp b/generator/intermediate_data.hpp
index f961c47223..42d3fb4fc6 100644
--- a/generator/intermediate_data.hpp
+++ b/generator/intermediate_data.hpp
@@ -9,15 +9,14 @@
#include "base/logging.hpp"
-#include "std/algorithm.hpp"
-#include "std/deque.hpp"
-#include "std/exception.hpp"
-#include "std/limits.hpp"
-#include "std/unordered_map.hpp"
-#include "std/utility.hpp"
-#include "std/vector.hpp"
-
-#include "std/fstream.hpp"
+#include <algorithm>
+#include <deque>
+#include <exception>
+#include <fstream>
+#include <limits>
+#include <unordered_map>
+#include <utility>
+#include <vector>
#include "defines.hpp"
@@ -35,8 +34,8 @@ class IndexFile
{
using TKey = uint64_t;
static_assert(is_integral<TKey>::value, "TKey is not integral type");
- using TElement = pair<TKey, TValue>;
- using TContainer = vector<TElement>;
+ using TElement = std::pair<TKey, TValue>;
+ using TContainer = std::vector<TElement>;
TContainer m_elements;
TFile m_file;
@@ -55,14 +54,14 @@ class IndexFile
static size_t CheckedCast(uint64_t v)
{
- ASSERT_LESS(v, numeric_limits<size_t>::max(), ("Value too long for memory address : ", v));
+ ASSERT_LESS(v, std::numeric_limits<size_t>::max(), ("Value too long for memory address : ", v));
return static_cast<size_t>(v);
}
public:
- explicit IndexFile(string const & name) : m_file(name.c_str()) {}
+ explicit IndexFile(std::string const & name) : m_file(name.c_str()) {}
- string GetFileName() const { return m_file.GetName(); }
+ std::string GetFileName() const { return m_file.GetName(); }
void WriteAll()
{
@@ -87,14 +86,14 @@ public:
{
m_elements.resize(CheckedCast(fileSize / sizeof(TElement)));
}
- catch (exception const &) // bad_alloc
+ catch (std::exception const &) // bad_alloc
{
LOG(LCRITICAL, ("Insufficient memory for required offset map"));
}
m_file.Read(0, &m_elements[0], CheckedCast(fileSize));
- sort(m_elements.begin(), m_elements.end(), ElementComparator());
+ std::sort(m_elements.begin(), m_elements.end(), ElementComparator());
LOG_SHORT(LINFO, ("Offsets reading is finished"));
}
@@ -104,12 +103,12 @@ public:
if (m_elements.size() > kFlushCount)
WriteAll();
- m_elements.push_back(make_pair(k, v));
+ m_elements.push_back(std::make_pair(k, v));
}
bool GetValueByKey(TKey key, TValue & value) const
{
- auto it = lower_bound(m_elements.begin(), m_elements.end(), key, ElementComparator());
+ auto it = std::lower_bound(m_elements.begin(), m_elements.end(), key, ElementComparator());
if ((it != m_elements.end()) && ((*it).first == key))
{
value = (*it).second;
@@ -121,7 +120,7 @@ public:
template <class ToDo>
void ForEachByKey(TKey k, ToDo && toDo) const
{
- auto range = equal_range(m_elements.begin(), m_elements.end(), k, ElementComparator());
+ auto range = std::equal_range(m_elements.begin(), m_elements.end(), k, ElementComparator());
for (; range.first != range.second; ++range.first)
{
if (toDo((*range.first).second))
@@ -140,15 +139,15 @@ public:
using TOffsetFile = typename conditional<TMode == EMode::Write, FileWriter, FileReader>::type;
protected:
- using TBuffer = vector<uint8_t>;
+ using TBuffer = std::vector<uint8_t>;
TStorage m_storage;
detail::IndexFile<TOffsetFile, uint64_t> m_offsets;
- string m_name;
+ std::string m_name;
TBuffer m_data;
bool m_preload = false;
public:
- OSMElementCache(string const & name, bool preload = false)
+ OSMElementCache(std::string const & name, bool preload = false)
: m_storage(name)
, m_offsets(name + OFFSET_EXT)
, m_name(name)
@@ -180,7 +179,7 @@ public:
value.Write(w);
// write buffer
- ASSERT_LESS(m_data.size(), numeric_limits<uint32_t>::max(), ());
+ ASSERT_LESS(m_data.size(), std::numeric_limits<uint32_t>::max(), ());
uint32_t sz = static_cast<uint32_t>(m_data.size());
m_storage.Write(&sz, sizeof(sz));
m_storage.Write(m_data.data(), sz * sizeof(TBuffer::value_type));
@@ -258,7 +257,7 @@ class RawFilePointStorage : public PointStorage
constexpr static double const kValueOrder = 1E+7;
public:
- explicit RawFilePointStorage(string const & name) : m_file(name) {}
+ explicit RawFilePointStorage(std::string const & name) : m_file(name) {}
template <EMode T = TMode>
typename enable_if<T == EMode::Write, void>::type AddPoint(uint64_t id, double lat, double lng)
@@ -304,10 +303,10 @@ class RawMemPointStorage : public PointStorage
constexpr static double const kValueOrder = 1E+7;
- vector<LatLon> m_data;
+ std::vector<LatLon> m_data;
public:
- explicit RawMemPointStorage(string const & name) : m_file(name), m_data(static_cast<size_t>(1) << 33)
+ explicit RawMemPointStorage(std::string const & name) : m_file(name), m_data(static_cast<size_t>(1) << 33)
{
InitStorage<TMode>();
}
@@ -369,12 +368,12 @@ template <EMode TMode>
class MapFilePointStorage : public PointStorage
{
typename conditional<TMode == EMode::Write, FileWriter, FileReader>::type m_file;
- unordered_map<uint64_t, pair<int32_t, int32_t>> m_map;
+ std::unordered_map<uint64_t, std::pair<int32_t, int32_t>> m_map;
constexpr static double const kValueOrder = 1E+7;
public:
- explicit MapFilePointStorage(string const & name) : m_file(name + ".short") { InitStorage<TMode>(); }
+ explicit MapFilePointStorage(std::string const & name) : m_file(name + ".short") { InitStorage<TMode>(); }
template <EMode T>
typename enable_if<T == EMode::Write, void>::type InitStorage() {}
@@ -392,7 +391,7 @@ public:
LatLonPos ll;
m_file.Read(pos, &ll, sizeof(ll));
- m_map.emplace(make_pair(ll.pos, make_pair(ll.lat, ll.lon)));
+ m_map.emplace(std::make_pair(ll.pos, std::make_pair(ll.lat, ll.lon)));
pos += sizeof(ll);
}
diff --git a/generator/intermediate_elements.hpp b/generator/intermediate_elements.hpp
index d614885d90..bd906c267d 100644
--- a/generator/intermediate_elements.hpp
+++ b/generator/intermediate_elements.hpp
@@ -7,18 +7,18 @@
#include "coding/varint.hpp"
#include "coding/writer.hpp"
-#include "std/algorithm.hpp"
-#include "std/bind.hpp"
-#include "std/limits.hpp"
-#include "std/map.hpp"
-#include "std/string.hpp"
-#include "std/sstream.hpp"
-#include "std/utility.hpp"
-#include "std/vector.hpp"
+#include <algorithm>
+#include <functional>
+#include <limits>
+#include <map>
+#include <sstream>
+#include <string>
+#include <utility>
+#include <vector>
struct WayElement
{
- vector<uint64_t> nodes;
+ std::vector<uint64_t> nodes;
uint64_t m_wayOsmId;
explicit WayElement(uint64_t osmId) : m_wayOsmId(osmId) {}
@@ -37,7 +37,7 @@ struct WayElement
template <class ToDo>
void ForEachPoint(ToDo & toDo) const
{
- for_each(nodes.begin(), nodes.end(), ref(toDo));
+ std::for_each(nodes.begin(), nodes.end(), std::ref(toDo));
}
template <class ToDo>
@@ -45,9 +45,9 @@ struct WayElement
{
ASSERT(!nodes.empty(), ());
if (start == nodes.front())
- for_each(nodes.begin(), nodes.end(), ref(toDo));
+ std::for_each(nodes.begin(), nodes.end(), std::ref(toDo));
else
- for_each(nodes.rbegin(), nodes.rend(), ref(toDo));
+ std::for_each(nodes.rbegin(), nodes.rend(), std::ref(toDo));
}
template <class TWriter>
@@ -69,16 +69,16 @@ struct WayElement
e = ReadVarUint<uint64_t>(r);
}
- string ToString() const
+ std::string ToString() const
{
- stringstream ss;
+ std::stringstream ss;
ss << nodes.size() << " " << m_wayOsmId;
return ss.str();
}
- string Dump() const
+ std::string Dump() const
{
- stringstream ss;
+ std::stringstream ss;
for (auto const & e : nodes)
ss << e << ";";
return ss.str();
@@ -88,23 +88,23 @@ struct WayElement
class RelationElement
{
public:
- using TMembers = vector<pair<uint64_t, string>>;
+ using TMembers = std::vector<std::pair<uint64_t, std::string>>;
TMembers nodes;
TMembers ways;
- map<string, string> tags;
+ std::map<std::string, std::string> tags;
bool IsValid() const { return !(nodes.empty() && ways.empty()); }
- string GetTagValue(string const & key) const
+ std::string GetTagValue(std::string const & key) const
{
auto it = tags.find(key);
- return ((it != tags.end()) ? it->second : string());
+ return ((it != tags.end()) ? it->second : std::string());
}
- string GetType() const { return GetTagValue("type"); }
- bool FindWay(uint64_t id, string & role) const { return FindRoleImpl(ways, id, role); }
- bool FindNode(uint64_t id, string & role) const { return FindRoleImpl(nodes, id, role); }
+ std::string GetType() const { return GetTagValue("type"); }
+ bool FindWay(uint64_t id, std::string & role) const { return FindRoleImpl(ways, id, role); }
+ bool FindNode(uint64_t id, std::string & role) const { return FindRoleImpl(nodes, id, role); }
template <class ToDo>
void ForEachWay(ToDo & toDo) const
@@ -113,20 +113,20 @@ public:
toDo(ways[i].first, ways[i].second);
}
- string GetNodeRole(uint64_t const id) const
+ std::string GetNodeRole(uint64_t const id) const
{
for (size_t i = 0; i < nodes.size(); ++i)
if (nodes[i].first == id)
return nodes[i].second;
- return string();
+ return std::string();
}
- string GetWayRole(uint64_t const id) const
+ std::string GetWayRole(uint64_t const id) const
{
for (size_t i = 0; i < ways.size(); ++i)
if (ways[i].first == id)
return ways[i].second;
- return string();
+ return std::string();
}
void Swap(RelationElement & rhs)
@@ -139,10 +139,10 @@ public:
template <class TWriter>
void Write(TWriter & writer) const
{
- auto StringWriter = [&writer, this](string const & str)
+ auto StringWriter = [&writer, this](std::string const & str)
{
- CHECK_LESS(str.size(), numeric_limits<uint16_t>::max(),
- ("Can't store string greater then 65535 bytes", Dump()));
+ CHECK_LESS(str.size(), std::numeric_limits<uint16_t>::max(),
+ ("Can't store std::string greater then 65535 bytes", Dump()));
uint16_t sz = static_cast<uint16_t>(str.size());
writer.Write(&sz, sizeof(sz));
writer.Write(str.data(), sz);
@@ -180,7 +180,7 @@ public:
{
ReaderSource<TReader> r(reader);
- auto StringReader = [&r](string & str)
+ auto StringReader = [&r](std::string & str)
{
uint16_t sz = 0;
r.Read(&sz, sizeof(sz));
@@ -209,7 +209,7 @@ public:
uint64_t count = ReadVarUint<uint64_t>(r);
for (uint64_t i = 0; i < count; ++i)
{
- pair<string, string> kv;
+ std::pair<std::string, std::string> kv;
// decode key
StringReader(kv.first);
// decode value
@@ -218,16 +218,16 @@ public:
}
}
- string ToString() const
+ std::string ToString() const
{
- stringstream ss;
+ std::stringstream ss;
ss << nodes.size() << " " << ways.size() << " " << tags.size();
return ss.str();
}
- string Dump() const
+ std::string Dump() const
{
- stringstream ss;
+ std::stringstream ss;
for (auto const & e : nodes)
ss << "n{" << e.first << "," << e.second << "};";
for (auto const & e : ways)
@@ -238,7 +238,7 @@ public:
}
protected:
- bool FindRoleImpl(TMembers const & container, uint64_t id, string & role) const
+ bool FindRoleImpl(TMembers const & container, uint64_t id, std::string & role) const
{
for (auto const & e : container)
{
diff --git a/generator/kml_parser.cpp b/generator/kml_parser.cpp
index 757a475c49..55ca4490d1 100644
--- a/generator/kml_parser.cpp
+++ b/generator/kml_parser.cpp
@@ -32,10 +32,10 @@ namespace kml
class KmlParser
{
- vector<string> m_tags;
+ vector<std::string> m_tags;
/// buffer for text with points
- string m_data;
- string m_name;
+ std::string m_data;
+ std::string m_name;
PolygonsContainerT & m_country;
int m_level;
@@ -43,10 +43,10 @@ namespace kml
public:
KmlParser(PolygonsContainerT & country, int level);
- bool Push(string const & element);
- void Pop(string const & element);
- void AddAttr(string const &, string const &) {}
- void CharData(string const & data);
+ bool Push(std::string const & element);
+ void Pop(std::string const & element);
+ void AddAttr(std::string const &, std::string const &) {}
+ void CharData(std::string const & data);
};
KmlParser::KmlParser(PolygonsContainerT & country, int level)
@@ -54,7 +54,7 @@ namespace kml
{
}
- bool KmlParser::Push(string const & element)
+ bool KmlParser::Push(std::string const & element)
{
m_tags.push_back(element);
@@ -71,16 +71,16 @@ namespace kml
{
}
- void operator()(string const & latLon)
+ void operator()(std::string const & latLon)
{
size_t const firstCommaPos = latLon.find(',');
- CHECK(firstCommaPos != string::npos, ("invalid latlon", latLon));
- string const lonStr = latLon.substr(0, firstCommaPos);
+ CHECK(firstCommaPos != std::string::npos, ("invalid latlon", latLon));
+ std::string const lonStr = latLon.substr(0, firstCommaPos);
double lon;
CHECK(utils::to_double(lonStr, lon), ("invalid lon", lonStr));
size_t const secondCommaPos = latLon.find(',', firstCommaPos + 1);
- string latStr;
- if (secondCommaPos == string::npos)
+ std::string latStr;
+ if (secondCommaPos == std::string::npos)
latStr = latLon.substr(firstCommaPos + 1);
else
latStr = latLon.substr(firstCommaPos + 1, secondCommaPos - firstCommaPos - 1);
@@ -117,7 +117,7 @@ namespace kml
m_Triangles.push_back(triangles[i]);
}
};
- void KmlParser::Pop(string const & element)
+ void KmlParser::Pop(std::string const & element)
{
if (element == "Placemark")
{
@@ -198,7 +198,7 @@ namespace kml
m_tags.pop_back();
}
- void KmlParser::CharData(string const & data)
+ void KmlParser::CharData(std::string const & data)
{
size_t const size = m_tags.size();
@@ -214,7 +214,7 @@ namespace kml
}
}
- bool LoadPolygons(string const & kmlFile, PolygonsContainerT & country, int level)
+ bool LoadPolygons(std::string const & kmlFile, PolygonsContainerT & country, int level)
{
KmlParser parser(country, level);
try
diff --git a/generator/kml_parser.hpp b/generator/kml_parser.hpp
index 45b8c813da..f6b73b2cb5 100644
--- a/generator/kml_parser.hpp
+++ b/generator/kml_parser.hpp
@@ -6,5 +6,5 @@ class PolygonsContainerT;
namespace kml
{
- bool LoadPolygons(string const & kmlFile, PolygonsContainerT & country, int level);
+ bool LoadPolygons(std::string const & kmlFile, PolygonsContainerT & country, int level);
}
diff --git a/generator/opentable_dataset.cpp b/generator/opentable_dataset.cpp
index 01faa6104a..816284a08e 100644
--- a/generator/opentable_dataset.cpp
+++ b/generator/opentable_dataset.cpp
@@ -8,16 +8,16 @@
#include "base/string_utils.hpp"
-#include "std/iomanip.hpp"
+#include <iomanip>
#include "boost/algorithm/string/replace.hpp"
namespace generator
{
// OpentableRestaurant ------------------------------------------------------------------------------
-OpentableRestaurant::OpentableRestaurant(string const & src)
+OpentableRestaurant::OpentableRestaurant(std::string const & src)
{
- vector<string> rec;
+ vector<std::string> rec;
strings::ParseCSVRow(src, '\t', rec);
CHECK_EQUAL(rec.size(), FieldsCount(), ("Error parsing restaurants.tsv line:",
boost::replace_all_copy(src, "\t", "\\t")));
@@ -33,7 +33,7 @@ OpentableRestaurant::OpentableRestaurant(string const & src)
ostream & operator<<(ostream & s, OpentableRestaurant const & h)
{
- s << fixed << setprecision(7);
+ s << std::fixed << std::setprecision(7);
return s << "Id: " << h.m_id << "\t Name: " << h.m_name << "\t Address: " << h.m_address
<< "\t lat: " << h.m_latLon.lat << " lon: " << h.m_latLon.lon;
}
diff --git a/generator/opentable_dataset.hpp b/generator/opentable_dataset.hpp
index 2f32e75ae6..7fec7aa516 100644
--- a/generator/opentable_dataset.hpp
+++ b/generator/opentable_dataset.hpp
@@ -6,8 +6,8 @@
#include "base/newtype.hpp"
-#include "std/limits.hpp"
-#include "std/string.hpp"
+#include <limits>
+#include <string>
namespace generator
{
@@ -32,10 +32,10 @@ struct OpentableRestaurant
static constexpr ObjectId InvalidObjectId()
{
- return ObjectId(numeric_limits<typename ObjectId::RepType>::max());
+ return ObjectId(std::numeric_limits<typename ObjectId::RepType>::max());
}
- explicit OpentableRestaurant(string const & src);
+ explicit OpentableRestaurant(std::string const & src);
static constexpr size_t FieldIndex(Fields field) { return static_cast<size_t>(field); }
static constexpr size_t FieldsCount() { return static_cast<size_t>(Fields::Counter); }
@@ -44,12 +44,12 @@ struct OpentableRestaurant
ObjectId m_id{InvalidObjectId()};
ms::LatLon m_latLon = ms::LatLon::Zero();
- string m_name;
- string m_street;
- string m_houseNumber;
+ std::string m_name;
+ std::string m_street;
+ std::string m_houseNumber;
- string m_address;
- string m_descUrl;
+ std::string m_address;
+ std::string m_descUrl;
// string m_translations;
};
diff --git a/generator/osm2meta.cpp b/generator/osm2meta.cpp
index 340050c782..9b76032a84 100644
--- a/generator/osm2meta.cpp
+++ b/generator/osm2meta.cpp
@@ -7,11 +7,13 @@
#include "base/logging.hpp"
#include "base/string_utils.hpp"
-#include "std/algorithm.hpp"
-#include "std/cctype.hpp"
-#include "std/cmath.hpp"
-#include "std/cstdlib.hpp"
-#include "std/unordered_set.hpp"
+#include <algorithm>
+#include <cctype>
+#include <cmath>
+#include <cstdlib>
+#include <unordered_set>
+
+using namespace std;
namespace
{
@@ -29,7 +31,7 @@ void RemoveDuplicatesAndKeepOrder(vector<T> & vec)
seen.insert(value);
return false;
};
- vec.erase(std::remove_if(vec.begin(), vec.end(), predicate), vec.end());
+ vec.erase(remove_if(vec.begin(), vec.end(), predicate), vec.end());
}
// Also filters out duplicates.
diff --git a/generator/osm2meta.hpp b/generator/osm2meta.hpp
index ffbdfe2e0e..1d14aa0e7e 100644
--- a/generator/osm2meta.hpp
+++ b/generator/osm2meta.hpp
@@ -4,7 +4,7 @@
#include "indexer/classificator.hpp"
#include "indexer/ftypes_matcher.hpp"
-#include "std/string.hpp"
+#include <string>
struct MetadataTagProcessorImpl
{
@@ -13,28 +13,28 @@ struct MetadataTagProcessorImpl
{
}
- string ValidateAndFormat_maxspeed(string const & v) const;
- string ValidateAndFormat_stars(string const & v) const;
- string ValidateAndFormat_cuisine(string v) const;
- string ValidateAndFormat_operator(string const & v) const;
- string ValidateAndFormat_url(string const & v) const;
- string ValidateAndFormat_phone(string const & v) const;
- string ValidateAndFormat_opening_hours(string const & v) const;
- string ValidateAndFormat_ele(string const & v) const;
- string ValidateAndFormat_turn_lanes(string const & v) const;
- string ValidateAndFormat_turn_lanes_forward(string const & v) const;
- string ValidateAndFormat_turn_lanes_backward(string const & v) const;
- string ValidateAndFormat_email(string const & v) const;
- string ValidateAndFormat_postcode(string const & v) const;
- string ValidateAndFormat_flats(string const & v) const;
- string ValidateAndFormat_internet(string v) const;
- string ValidateAndFormat_height(string const & v) const;
- string ValidateAndFormat_building_levels(string v) const;
- string ValidateAndFormat_denomination(string const & v) const;
- string ValidateAndFormat_wikipedia(string v) const;
- string ValidateAndFormat_price_rate(string const & v) const;
- string ValidateAndFormat_sponsored_id(string const & v) const;
- string ValidateAndFormat_rating(string const & v) const;
+ std::string ValidateAndFormat_maxspeed(std::string const & v) const;
+ std::string ValidateAndFormat_stars(std::string const & v) const;
+ std::string ValidateAndFormat_cuisine(std::string v) const;
+ std::string ValidateAndFormat_operator(std::string const & v) const;
+ std::string ValidateAndFormat_url(std::string const & v) const;
+ std::string ValidateAndFormat_phone(std::string const & v) const;
+ std::string ValidateAndFormat_opening_hours(std::string const & v) const;
+ std::string ValidateAndFormat_ele(std::string const & v) const;
+ std::string ValidateAndFormat_turn_lanes(std::string const & v) const;
+ std::string ValidateAndFormat_turn_lanes_forward(std::string const & v) const;
+ std::string ValidateAndFormat_turn_lanes_backward(std::string const & v) const;
+ std::string ValidateAndFormat_email(std::string const & v) const;
+ std::string ValidateAndFormat_postcode(std::string const & v) const;
+ std::string ValidateAndFormat_flats(std::string const & v) const;
+ std::string ValidateAndFormat_internet(std::string v) const;
+ std::string ValidateAndFormat_height(std::string const & v) const;
+ std::string ValidateAndFormat_building_levels(std::string v) const;
+ std::string ValidateAndFormat_denomination(std::string const & v) const;
+ std::string ValidateAndFormat_wikipedia(std::string v) const;
+ std::string ValidateAndFormat_price_rate(std::string const & v) const;
+ std::string ValidateAndFormat_sponsored_id(std::string const & v) const;
+ std::string ValidateAndFormat_rating(std::string const & v) const;
protected:
FeatureParams & m_params;
@@ -48,7 +48,7 @@ public:
/// Since it is used as a functor wich stops iteration in ftype::ForEachTag
/// and the is no need for interrupting it always returns false.
/// TODO(mgsergio): Move to cpp after merge with https://github.com/mapsme/omim/pull/1314
- bool operator() (string const & k, string const & v)
+ bool operator() (std::string const & k, std::string const & v)
{
if (v.empty())
return false;
@@ -69,7 +69,7 @@ public:
return false;
}
- string valid;
+ std::string valid;
switch (mdType)
{
case Metadata::FMD_CUISINE: valid = ValidateAndFormat_cuisine(v); break;
diff --git a/generator/osm2type.cpp b/generator/osm2type.cpp
index b2ea830ac5..fb829fe6a7 100644
--- a/generator/osm2type.cpp
+++ b/generator/osm2type.cpp
@@ -9,14 +9,16 @@
#include "geometry/mercator.hpp"
#include "base/assert.hpp"
+#include "base/stl_add.hpp"
#include "base/string_utils.hpp"
-#include "std/bind.hpp"
-#include "std/cstdint.hpp"
-#include "std/function.hpp"
-#include "std/initializer_list.hpp"
-#include "std/set.hpp"
-#include "std/vector.hpp"
+#include <cstdint>
+#include <functional>
+#include <initializer_list>
+#include <set>
+#include <vector>
+
+using namespace std;
namespace ftype
{
@@ -227,7 +229,7 @@ namespace ftype
{
Classificator const & c = classif();
- StringIL arr[] =
+ my::StringIL arr[] =
{
{"entrance"}, {"highway"},
{"building", "address"}, {"hwtag", "oneway"}, {"hwtag", "private"},
@@ -431,13 +433,13 @@ namespace ftype
if (!isHighway || (surface.empty() && smoothness.empty()))
return string();
- static StringIL pavedSurfaces = {"paved", "asphalt", "cobblestone", "cobblestone:flattened",
- "sett", "concrete", "concrete:lanes", "concrete:plates",
- "paving_stones", "metal", "wood"};
- static StringIL badSurfaces = {"cobblestone", "sett", "metal", "wood", "grass", "gravel",
- "mud", "sand", "snow", "woodchips"};
- static StringIL badSmoothness = {"bad", "very_bad", "horrible", "very_horrible", "impassable",
- "robust_wheels", "high_clearance", "off_road_wheels", "rough"};
+ static my::StringIL pavedSurfaces = {"paved", "asphalt", "cobblestone", "cobblestone:flattened",
+ "sett", "concrete", "concrete:lanes", "concrete:plates",
+ "paving_stones", "metal", "wood"};
+ static my::StringIL badSurfaces = {"cobblestone", "sett", "metal", "wood", "grass", "gravel",
+ "mud", "sand", "snow", "woodchips"};
+ static my::StringIL badSmoothness = {"bad", "very_bad", "horrible", "very_horrible", "impassable",
+ "robust_wheels", "high_clearance", "off_road_wheels", "rough"};
bool isPaved = false;
bool isGood = true;
diff --git a/generator/osm_element.cpp b/generator/osm_element.cpp
index c82f3a9257..4f7370de7d 100644
--- a/generator/osm_element.cpp
+++ b/generator/osm_element.cpp
@@ -3,11 +3,11 @@
#include "base/string_utils.hpp"
#include "coding/parse_xml.hpp"
-#include "std/algorithm.hpp"
-#include "std/cstdio.hpp"
-#include "std/sstream.hpp"
+#include <algorithm>
+#include <cstdio>
+#include <sstream>
-string DebugPrint(OsmElement::EntityType e)
+std::string DebugPrint(OsmElement::EntityType e)
{
switch (e)
{
@@ -31,7 +31,7 @@ string DebugPrint(OsmElement::EntityType e)
}
-void OsmElement::AddTag(string const & k, string const & v)
+void OsmElement::AddTag(std::string const & k, std::string const & v)
{
// Seems like source osm data has empty values. They are useless for us.
if (k.empty() || v.empty())
@@ -64,19 +64,19 @@ void OsmElement::AddTag(string const & k, string const & v)
SKIP_KEY("official_name");
#undef SKIP_KEY
- string value = v;
+ std::string value = v;
strings::Trim(value);
m_tags.emplace_back(k, value);
}
-string OsmElement::ToString(string const & shift) const
+std::string OsmElement::ToString(std::string const & shift) const
{
- stringstream ss;
+ std::stringstream ss;
ss << (shift.empty() ? "\n" : shift);
switch (type)
{
case EntityType::Node:
- ss << "Node: " << id << " (" << fixed << setw(7) << lat << ", " << lon << ")"
+ ss << "Node: " << id << " (" << std::fixed << std::setw(7) << lat << ", " << lon << ")"
<< " tags: " << m_tags.size();
break;
case EntityType::Nd:
@@ -86,7 +86,7 @@ string OsmElement::ToString(string const & shift) const
ss << "Way: " << id << " nds: " << m_nds.size() << " tags: " << m_tags.size();
if (!m_nds.empty())
{
- string shift2 = shift;
+ std::string shift2 = shift;
shift2 += shift2.empty() ? "\n " : " ";
for (auto const & e : m_nds)
ss << shift2 << e;
@@ -96,7 +96,7 @@ string OsmElement::ToString(string const & shift) const
ss << "Relation: " << id << " members: " << m_members.size() << " tags: " << m_tags.size();
if (!m_members.empty())
{
- string shift2 = shift;
+ std::string shift2 = shift;
shift2 += shift2.empty() ? "\n " : " ";
for (auto const & e : m_members)
ss << shift2 << e.ref << " " << DebugPrint(e.type) << " " << e.role;
@@ -113,7 +113,7 @@ string OsmElement::ToString(string const & shift) const
}
if (!m_tags.empty())
{
- string shift2 = shift;
+ std::string shift2 = shift;
shift2 += shift2.empty() ? "\n " : " ";
for (auto const & e : m_tags)
ss << shift2 << e.key << " = " << e.value;
@@ -121,9 +121,9 @@ string OsmElement::ToString(string const & shift) const
return ss.str();
}
-string OsmElement::GetTag(string const & key) const
+std::string OsmElement::GetTag(std::string const & key) const
{
- auto const it = find_if(begin(m_tags), end(m_tags), [&key](Tag const & tag)
+ auto const it = std::find_if(begin(m_tags), end(m_tags), [&key](Tag const & tag)
{
return tag.key == key;
});
@@ -134,14 +134,14 @@ string OsmElement::GetTag(string const & key) const
return it->value;
}
-string DebugPrint(OsmElement const & e)
+std::string DebugPrint(OsmElement const & e)
{
return e.ToString();
}
-string DebugPrint(OsmElement::Tag const & tag)
+std::string DebugPrint(OsmElement::Tag const & tag)
{
- stringstream ss;
+ std::stringstream ss;
ss << tag.key << '=' << tag.value;
return ss.str();
}
diff --git a/generator/osm_element.hpp b/generator/osm_element.hpp
index cca5e99717..cd41746ff8 100644
--- a/generator/osm_element.hpp
+++ b/generator/osm_element.hpp
@@ -3,13 +3,13 @@
#include "base/math.hpp"
#include "base/string_utils.hpp"
-#include "std/exception.hpp"
-#include "std/function.hpp"
-#include "std/iomanip.hpp"
-#include "std/iostream.hpp"
-#include "std/map.hpp"
-#include "std/string.hpp"
-#include "std/vector.hpp"
+#include <exception>
+#include <functional>
+#include <iomanip>
+#include <iostream>
+#include <map>
+#include <string>
+#include <vector>
struct OsmElement
{
@@ -29,10 +29,10 @@ struct OsmElement
{
uint64_t ref = 0;
EntityType type = EntityType::Unknown;
- string role;
+ std::string role;
Member() = default;
- Member(uint64_t ref, EntityType type, string const & role)
+ Member(uint64_t ref, EntityType type, std::string const & role)
: ref(ref), type(type), role(role)
{}
@@ -44,11 +44,11 @@ struct OsmElement
struct Tag
{
- string key;
- string value;
+ std::string key;
+ std::string value;
Tag() = default;
- Tag(string const & k, string const & v) : key(k), value(v) {}
+ Tag(std::string const & k, std::string const & v) : key(k), value(v) {}
bool operator == (Tag const & e) const
{
@@ -67,14 +67,14 @@ struct OsmElement
double lon = 0;
double lat = 0;
uint64_t ref = 0;
- string k;
- string v;
+ std::string k;
+ std::string v;
EntityType memberType = EntityType::Unknown;
- string role;
+ std::string role;
- vector<uint64_t> m_nds;
- vector<Member> m_members;
- vector<Tag> m_tags;
+ std::vector<uint64_t> m_nds;
+ std::vector<Member> m_members;
+ std::vector<Tag> m_tags;
void Clear()
{
@@ -93,13 +93,13 @@ struct OsmElement
m_tags.clear();
}
- string ToString(string const & shift = string()) const;
+ std::string ToString(std::string const & shift = std::string()) const;
- inline vector<uint64_t> const & Nodes() const { return m_nds; }
- inline vector<Member> const & Members() const { return m_members; }
- inline vector<Tag> const & Tags() const { return m_tags; }
+ inline std::vector<uint64_t> const & Nodes() const { return m_nds; }
+ inline std::vector<Member> const & Members() const { return m_members; }
+ inline std::vector<Tag> const & Tags() const { return m_tags; }
- static EntityType StringToEntityType(string const & t)
+ static EntityType StringToEntityType(std::string const & t)
{
if (t == "way")
return EntityType::Way;
@@ -130,13 +130,13 @@ struct OsmElement
}
void AddNd(uint64_t ref) { m_nds.emplace_back(ref); }
- void AddMember(uint64_t ref, EntityType type, string const & role)
+ void AddMember(uint64_t ref, EntityType type, std::string const & role)
{
m_members.emplace_back(ref, type, role);
}
- void AddTag(string const & k, string const & v);
- template <class TFn> void UpdateTag(string const & k, TFn && fn)
+ void AddTag(std::string const & k, std::string const & v);
+ template <class TFn> void UpdateTag(std::string const & k, TFn && fn)
{
for (auto & tag : m_tags)
{
@@ -147,15 +147,15 @@ struct OsmElement
}
}
- string v;
+ std::string v;
fn(v);
if (!v.empty())
AddTag(k, v);
}
- string GetTag(string const & key) const;
+ std::string GetTag(std::string const & key) const;
};
-string DebugPrint(OsmElement const & e);
-string DebugPrint(OsmElement::EntityType e);
-string DebugPrint(OsmElement::Tag const & tag);
+std::string DebugPrint(OsmElement const & e);
+std::string DebugPrint(OsmElement::EntityType e);
+std::string DebugPrint(OsmElement::Tag const & tag);
diff --git a/generator/osm_id.cpp b/generator/osm_id.cpp
index 87191edc13..0b6faa3787 100644
--- a/generator/osm_id.cpp
+++ b/generator/osm_id.cpp
@@ -2,7 +2,7 @@
#include "base/assert.hpp"
-#include "std/sstream.hpp"
+#include <sstream>
namespace osm
@@ -53,7 +53,7 @@ bool Id::IsRelation() const
return ((m_encodedId & RELATION) == RELATION);
}
-string Id::Type() const
+std::string Id::Type() const
{
if ((m_encodedId & RELATION) == RELATION)
return "relation";
@@ -65,9 +65,9 @@ string Id::Type() const
return "ERROR: Not initialized Osm ID";
}
-string DebugPrint(osm::Id const & id)
+std::string DebugPrint(osm::Id const & id)
{
- ostringstream stream;
+ std::ostringstream stream;
stream << id.Type() << " " << id.OsmId();
return stream.str();
}
diff --git a/generator/osm_id.hpp b/generator/osm_id.hpp
index 11aebc6ee4..f67e7bf29e 100644
--- a/generator/osm_id.hpp
+++ b/generator/osm_id.hpp
@@ -1,7 +1,7 @@
#pragma once
-#include "std/cstdint.hpp"
-#include "std/string.hpp"
+#include <cstdint>
+#include <string>
namespace osm
@@ -26,7 +26,7 @@ public:
bool IsRelation() const;
/// For debug output
- string Type() const;
+ std::string Type() const;
inline bool operator<(Id const & other) const { return m_encodedId < other.m_encodedId; }
inline bool operator==(Id const & other) const { return m_encodedId == other.m_encodedId; }
@@ -34,5 +34,5 @@ public:
bool operator==(uint64_t other) const { return OsmId() == other; }
};
-string DebugPrint(osm::Id const & id);
+std::string DebugPrint(osm::Id const & id);
} // namespace osm
diff --git a/generator/osm_o5m_source.hpp b/generator/osm_o5m_source.hpp
index b492e9556f..f4f44281d2 100644
--- a/generator/osm_o5m_source.hpp
+++ b/generator/osm_o5m_source.hpp
@@ -1,25 +1,25 @@
// See O5M Format definition at http://wiki.openstreetmap.org/wiki/O5m
#pragma once
-#include "std/algorithm.hpp"
-#include "std/cstring.hpp"
-#include "std/exception.hpp"
-#include "std/function.hpp"
-#include "std/iomanip.hpp"
-#include "std/iostream.hpp"
-#include "std/iterator.hpp"
-#include "std/sstream.hpp"
-#include "std/type_traits.hpp"
-#include "std/vector.hpp"
-
-using TReadFunc = function<size_t(uint8_t *, size_t)>;
+#include <algorithm>
+#include <cstring>
+#include <exception>
+#include <functional>
+#include <iomanip>
+#include <iostream>
+#include <iterator>
+#include <sstream>
+#include <type_traits>
+#include <vector>
+
+using TReadFunc = std::function<size_t(uint8_t *, size_t)>;
namespace
{
class StreamBuffer
{
- using TBuffer = vector<uint8_t>;
+ using TBuffer = std::vector<uint8_t>;
TReadFunc m_reader;
TBuffer m_buffer;
@@ -59,7 +59,7 @@ public:
void Skip(size_t size = 1)
{
- size_t const bytesLeft = distance(m_position, m_buffer.cend());
+ size_t const bytesLeft = std::distance(m_position, m_buffer.cend());
if (size >= bytesLeft)
{
size -= bytesLeft;
@@ -72,10 +72,10 @@ public:
void Read(TBuffer::value_type * dest, size_t size)
{
- size_t const bytesLeft = distance(m_position, m_buffer.cend());
+ size_t const bytesLeft = std::distance(m_position, m_buffer.cend());
if (size >= bytesLeft)
{
- size_t const index = distance(m_buffer.cbegin(), m_position);
+ size_t const index = std::distance(m_buffer.cbegin(), m_position);
memmove(dest, &m_buffer[index], bytesLeft);
size -= bytesLeft;
dest += bytesLeft;
@@ -86,7 +86,7 @@ public:
Refill();
}
}
- size_t const index = distance(m_buffer.cbegin(), m_position);
+ size_t const index = std::distance(m_buffer.cbegin(), m_position);
memmove(dest, &m_buffer[index], size);
m_position += size;
}
@@ -98,7 +98,7 @@ private:
m_buffer.resize(m_maxBufferSize);
size_t const readBytes = m_reader(m_buffer.data(), m_buffer.size());
- CHECK_NOT_EQUAL(readBytes, 0, ("Unexpected end input stream."));
+ CHECK_NOT_EQUAL(readBytes, 0, ("Unexpected std::end input stream."));
if (readBytes != m_buffer.size())
m_buffer.resize(readBytes);
@@ -128,7 +128,7 @@ public:
Reset = 0xff
};
- friend ostream & operator << (ostream & s, EntityType const & type)
+ friend std::ostream & operator << (std::ostream & s, EntityType const & type)
{
switch (type)
{
@@ -143,7 +143,7 @@ public:
case EntityType::Jump: s << "O5M_CMD_JUMP";
case EntityType::Reset: s << "O5M_CMD_RESET";
default:
- return s << "Unknown command: " << hex << static_cast<typename underlying_type<EntityType>::type>(type);
+ return s << "Unknown command: " << std::hex << static_cast<typename std::underlying_type<EntityType>::type>(type);
}
return s;
}
@@ -177,8 +177,8 @@ protected:
char const * role = nullptr;
};
- vector<StringTableRecord> m_stringTable;
- vector<char> m_stringBuffer;
+ std::vector<StringTableRecord> m_stringTable;
+ std::vector<char> m_stringBuffer;
size_t m_stringCurrentIndex;
StreamBuffer m_buffer;
size_t m_remainder;
@@ -197,7 +197,7 @@ public:
template <typename TValue>
class SubElements
{
- using TSubElementGetter = function<O5MSource *(TValue *)>;
+ using TSubElementGetter = std::function<O5MSource *(TValue *)>;
O5MSource * m_reader;
TSubElementGetter m_func;
@@ -584,7 +584,7 @@ public:
{
if (EntityType::Reset != EntityType(m_buffer.Get()))
{
- throw runtime_error("Incorrect o5m start");
+ throw std::runtime_error("Incorrect o5m start");
}
CheckHeader();
InitStringTable();
@@ -595,7 +595,7 @@ public:
size_t const len = 4;
if (EntityType::Header == EntityType(m_buffer.Get()) && ReadVarUInt() == len)
{
- string sign(len, ' ');
+ std::string sign(len, ' ');
m_buffer.Read(reinterpret_cast<uint8_t *>(&sign[0]), len);
if (sign == "o5m2" || sign == "o5c2")
return true;
@@ -603,7 +603,7 @@ public:
return false;
}
- friend ostream & operator<<(ostream & s, O5MSource::Entity const & em)
+ friend std::ostream & operator<<(std::ostream & s, O5MSource::Entity const & em)
{
s << EntityType(em.type) << " ID: " << em.id;
if (em.version)
@@ -617,7 +617,7 @@ public:
}
if (em.type == EntityType::Node)
{
- s << endl << " lon: " << em.lon << " lat: " << em.lat;
+ s << std::endl << " lon: " << em.lon << " lat: " << em.lat;
}
return s;
}
diff --git a/generator/osm_source.cpp b/generator/osm_source.cpp
index 64eac80005..2a3f1cab94 100644
--- a/generator/osm_source.cpp
+++ b/generator/osm_source.cpp
@@ -29,6 +29,8 @@
#include "defines.hpp"
+using namespace std;
+
SourceReader::SourceReader()
: m_file(unique_ptr<istream, Deleter>(&cin, Deleter(false)))
{
@@ -336,7 +338,7 @@ public:
new feature::FeaturesCollector(info.GetTmpFileName(WORLD_COASTS_FILE_NAME)));
if (info.m_splitByPolygons || !info.m_fileName.empty())
- m_countries = make_unique<TCountriesGenerator>(info);
+ m_countries = my::make_unique<TCountriesGenerator>(info);
if (info.m_createWorld)
m_world.reset(new TWorldGenerator(info));
@@ -527,7 +529,7 @@ private:
unique_ptr<EmitterBase> MakeMainFeatureEmitter(feature::GenerateInfo const & info)
{
LOG(LINFO, ("Processing booking data from", info.m_bookingDatafileName, "done."));
- return make_unique<MainFeaturesEmitter>(info);
+ return my::make_unique<MainFeaturesEmitter>(info);
}
template <typename TElement, typename TCache>
diff --git a/generator/osm_source.hpp b/generator/osm_source.hpp
index 9bb881c88d..6c530971ec 100644
--- a/generator/osm_source.hpp
+++ b/generator/osm_source.hpp
@@ -3,12 +3,12 @@
#include "generator/generate_info.hpp"
#include "generator/osm_element.hpp"
-#include "std/function.hpp"
-#include "std/iostream.hpp"
-#include "std/string.hpp"
-#include "std/sstream.hpp"
-#include "std/unique_ptr.hpp"
-#include "std/vector.hpp"
+#include <functional>
+#include <iostream>
+#include <memory>
+#include <sstream>
+#include <string>
+#include <vector>
class SourceReader
{
@@ -16,19 +16,19 @@ class SourceReader
{
bool m_needDelete;
Deleter(bool needDelete = true) : m_needDelete(needDelete) {}
- void operator()(istream * s) const
+ void operator()(std::istream * s) const
{
if (m_needDelete)
delete s;
}
};
- unique_ptr<istream, Deleter> m_file;
+ std::unique_ptr<std::istream, Deleter> m_file;
public:
SourceReader();
- explicit SourceReader(string const & filename);
- explicit SourceReader(istringstream & stream);
+ explicit SourceReader(std::string const & filename);
+ explicit SourceReader(std::istringstream & stream);
uint64_t Read(char * buffer, uint64_t bufferSize);
};
@@ -48,16 +48,16 @@ public:
virtual bool Finish() { return true; }
/// Sets buckets (mwm names).
// TODO(syershov): Make this topic clear.
- virtual void GetNames(vector<string> & names) const = 0;
+ virtual void GetNames(std::vector<std::string> & names) const = 0;
};
-unique_ptr<EmitterBase> MakeMainFeatureEmitter(feature::GenerateInfo const & info);
+std::unique_ptr<EmitterBase> MakeMainFeatureEmitter(feature::GenerateInfo const & info);
-using EmitterFactory = function<unique_ptr<EmitterBase>(feature::GenerateInfo const &)>;
+using EmitterFactory = std::function<std::unique_ptr<EmitterBase>(feature::GenerateInfo const &)>;
bool GenerateFeatures(feature::GenerateInfo & info,
EmitterFactory factory = MakeMainFeatureEmitter);
bool GenerateIntermediateData(feature::GenerateInfo & info);
-void ProcessOsmElementsFromO5M(SourceReader & stream, function<void(OsmElement *)> processor);
-void ProcessOsmElementsFromXML(SourceReader & stream, function<void(OsmElement *)> processor);
+void ProcessOsmElementsFromO5M(SourceReader & stream, std::function<void(OsmElement *)> processor);
+void ProcessOsmElementsFromXML(SourceReader & stream, std::function<void(OsmElement *)> processor);
diff --git a/generator/osm_translator.hpp b/generator/osm_translator.hpp
index 24b6697b98..29e585a3c2 100644
--- a/generator/osm_translator.hpp
+++ b/generator/osm_translator.hpp
@@ -19,10 +19,10 @@
#include "base/stl_add.hpp"
#include "base/string_utils.hpp"
-#include "std/list.hpp"
-#include "std/type_traits.hpp"
-#include "std/unordered_set.hpp"
-#include "std/vector.hpp"
+#include <list>
+#include <type_traits>
+#include <unordered_set>
+#include <vector>
namespace
{
@@ -55,13 +55,13 @@ public:
}
protected:
- static bool IsSkipRelation(string const & type)
+ static bool IsSkipRelation(std::string const & type)
{
/// @todo Skip special relation types.
return (type == "multipolygon" || type == "bridge");
}
- bool IsKeyTagExists(string const & key) const
+ bool IsKeyTagExists(std::string const & key) const
{
for (auto const & p : m_current->m_tags)
if (p.key == key)
@@ -69,7 +69,7 @@ protected:
return false;
}
- void AddCustomTag(pair<string, string> const & p)
+ void AddCustomTag(pair<std::string, std::string> const & p)
{
m_current->AddTag(p.first, p.second);
}
@@ -95,7 +95,7 @@ public:
protected:
void Process(RelationElement const & e) override
{
- string const & type = e.GetType();
+ std::string const & type = e.GetType();
if (TBase::IsSkipRelation(type))
return;
@@ -137,11 +137,11 @@ public:
private:
using TBase = RelationTagsBase;
- using TNameKeys = unordered_set<string>;
+ using TNameKeys = std::unordered_set<std::string>;
bool IsAcceptBoundary(RelationElement const & e) const
{
- string role;
+ std::string role;
CHECK(e.FindWay(TBase::m_featureID, role), (TBase::m_featureID));
// Do not accumulate boundary types (boundary=administrative) for inner polygons.
@@ -154,7 +154,7 @@ protected:
{
/// @todo Review route relations in future.
/// Actually, now they give a lot of dummy tags.
- string const & type = e.GetType();
+ std::string const & type = e.GetType();
if (TBase::IsSkipRelation(type))
return;
@@ -163,13 +163,13 @@ protected:
if (e.GetTagValue("route") == "road")
{
// Append "network/ref" to the feature ref tag.
- string ref = e.GetTagValue("ref");
+ std::string ref = e.GetTagValue("ref");
if (!ref.empty())
{
- string const & network = e.GetTagValue("network");
- if (!network.empty() && network.find('/') == string::npos)
+ std::string const & network = e.GetTagValue("network");
+ if (!network.empty() && network.find('/') == std::string::npos)
ref = network + '/' + ref;
- string const & refBase = m_current->GetTag("ref");
+ std::string const & refBase = m_current->GetTag("ref");
if (!refBase.empty())
ref = refBase + ';' + ref;
TBase::AddCustomTag({"ref", std::move(ref)});
@@ -250,7 +250,7 @@ class OsmToFeatureTranslator
FeatureBuilder1::TGeometry & GetHoles()
{
ASSERT(m_holes.empty(), ("Can call only once"));
- m_merger.ForEachArea(false, [this](FeatureBuilder1::TPointSeq & v, vector<uint64_t> const &)
+ m_merger.ForEachArea(false, [this](FeatureBuilder1::TPointSeq & v, std::vector<uint64_t> const &)
{
m_holes.push_back(FeatureBuilder1::TPointSeq());
m_holes.back().swap(v);
@@ -273,7 +273,7 @@ class OsmToFeatureTranslator
{
if (e.GetType() != "multipolygon")
return false;
- string role;
+ std::string role;
if (e.FindWay(m_id, role) && (role == "outer"))
{
e.ForEachWay(*this);
@@ -284,7 +284,7 @@ class OsmToFeatureTranslator
}
/// 2. "ways in relation" process function
- void operator() (uint64_t id, string const & role)
+ void operator() (uint64_t id, std::string const & role)
{
if (id != m_id && role == "inner")
m_holes(id);
@@ -321,7 +321,7 @@ class OsmToFeatureTranslator
ft.SetParams(params);
if (ft.PreSerialize())
{
- string addr;
+ std::string addr;
if (m_addrWriter && ftypes::IsBuildingChecker::Instance()(params.m_Types) &&
ft.FormatFullAddress(addr))
{
@@ -503,7 +503,7 @@ public:
}
auto const & holesGeometry = holes.GetHoles();
- outer.ForEachArea(true, [&] (FeatureBuilder1::TPointSeq const & pts, vector<uint64_t> const & ids)
+ outer.ForEachArea(true, [&] (FeatureBuilder1::TPointSeq const & pts, std::vector<uint64_t> const & ids)
{
FeatureBuilder1 ft;
@@ -542,8 +542,8 @@ public:
public:
OsmToFeatureTranslator(TEmitter & emitter, TCache & holder, uint32_t coastType,
- string const & addrFilePath = {}, string const & restrictionsFilePath = {},
- string const & roadAccessFilePath = {})
+ std::string const & addrFilePath = {}, std::string const & restrictionsFilePath = {},
+ std::string const & roadAccessFilePath = {})
: m_emitter(emitter)
, m_holder(holder)
, m_coastType(coastType)
diff --git a/generator/osm_xml_source.hpp b/generator/osm_xml_source.hpp
index 3789d55df6..79a24cb2cc 100644
--- a/generator/osm_xml_source.hpp
+++ b/generator/osm_xml_source.hpp
@@ -16,9 +16,9 @@ class XMLSource
public:
XMLSource(TEmmiterFn fn) : m_EmmiterFn(fn) {}
- void CharData(string const &) {}
+ void CharData(std::string const &) {}
- void AddAttr(string const & key, string const & value)
+ void AddAttr(std::string const & key, std::string const & value)
{
if (!m_current)
return;
@@ -41,7 +41,7 @@ public:
m_current->role = value;
}
- bool Push(string const & tagName)
+ bool Push(std::string const & tagName)
{
ASSERT_GREATER_OR_EQUAL(tagName.size(), 2, ());
@@ -64,7 +64,7 @@ public:
return true;
}
- void Pop(string const & v)
+ void Pop(std::string const & v)
{
switch (--m_depth)
{
diff --git a/generator/polygonizer.hpp b/generator/polygonizer.hpp
index 03b79b3539..0842d271f2 100644
--- a/generator/polygonizer.hpp
+++ b/generator/polygonizer.hpp
@@ -16,7 +16,7 @@
#include "base/buffer_vector.hpp"
#include "base/macros.hpp"
-#include "std/string.hpp"
+#include <string>
#ifndef PARALLEL_POLYGONIZER
#define PARALLEL_POLYGONIZER 1
@@ -38,7 +38,7 @@ namespace feature
feature::GenerateInfo const & m_info;
vector<FeatureOutT*> m_Buckets;
- vector<string> m_Names;
+ vector<std::string> m_Names;
borders::CountriesContainerT m_countries;
#if PARALLEL_POLYGONIZER
@@ -86,7 +86,8 @@ namespace feature
bool operator()(m2::PointD const & pt)
{
- m_regions.ForEachInRect(m2::RectD(pt, pt), bind<void>(ref(*this), _1, cref(pt)));
+ m_regions.ForEachInRect(m2::RectD(pt, pt),
+ std::bind<void>(std::ref(*this), std::placeholders::_1, std::cref(pt)));
return !m_belongs;
}
@@ -133,7 +134,7 @@ namespace feature
}
}
- string m_currentNames;
+ std::string m_currentNames;
void Start()
{
@@ -168,7 +169,7 @@ namespace feature
bucket(fb);
}
- vector<string> const & Names() const
+ vector<std::string> const & Names() const
{
return m_Names;
}
diff --git a/generator/region_meta.cpp b/generator/region_meta.cpp
index 10ad96214a..11f2c5153f 100644
--- a/generator/region_meta.cpp
+++ b/generator/region_meta.cpp
@@ -8,7 +8,7 @@
namespace
{
-int8_t ParseHolidayReference(string const & ref)
+int8_t ParseHolidayReference(std::string const & ref)
{
if (ref == "easter")
return feature::RegionData::PHReference::PH_EASTER;
@@ -24,12 +24,12 @@ int8_t ParseHolidayReference(string const & ref)
namespace feature
{
-bool ReadRegionDataImpl(string const & countryName, RegionData & data)
+bool ReadRegionDataImpl(std::string const & countryName, RegionData & data)
{
try
{
auto reader = GetPlatform().GetReader(COUNTRIES_META_FILE);
- string buffer;
+ std::string buffer;
reader->ReadAsString(buffer);
my::Json root(buffer.data());
@@ -38,17 +38,17 @@ bool ReadRegionDataImpl(string const & countryName, RegionData & data)
if (!jsonData)
return false;
- vector<string> languages;
+ vector<std::string> languages;
FromJSONObjectOptionalField(jsonData, "languages", languages);
if (!languages.empty())
data.SetLanguages(languages);
- string driving;
+ std::string driving;
FromJSONObjectOptionalField(jsonData, "driving", driving);
if (driving == "l" || driving == "r")
data.Set(RegionData::Type::RD_DRIVING, driving);
- string timezone;
+ std::string timezone;
FromJSONObjectOptionalField(jsonData, "timezone", timezone);
if (!timezone.empty())
data.Set(RegionData::Type::RD_TIMEZONE, timezone);
@@ -74,12 +74,12 @@ bool ReadRegionDataImpl(string const & countryName, RegionData & data)
}
else if (json_is_string(reference))
{
- refId = ParseHolidayReference(string(json_string_value(reference)));
+ refId = ParseHolidayReference(std::string(json_string_value(reference)));
}
else
{
MYTHROW(my::Json::Exception,
- ("Holiday month reference should be either a string or a number in", countryName));
+ ("Holiday month reference should be either a std::string or a number in", countryName));
}
if (refId <= 0)
@@ -104,7 +104,7 @@ bool ReadRegionDataImpl(string const & countryName, RegionData & data)
return false;
}
-bool ReadRegionData(string const & countryName, RegionData & data)
+bool ReadRegionData(std::string const & countryName, RegionData & data)
{
// When there is a match for a complete countryName, simply relay the call.
if (ReadRegionDataImpl(countryName, data))
@@ -112,11 +112,11 @@ bool ReadRegionData(string const & countryName, RegionData & data)
// If not, cut parts of a country name from the tail. E.g. "Russia_Moscow" -> "Russia".
auto p = countryName.find_last_of('_');
- while (p != string::npos)
+ while (p != std::string::npos)
{
if (ReadRegionDataImpl(countryName.substr(0, p), data))
return true;
- p = p > 0 ? countryName.find_last_of('_', p - 1) : string::npos;
+ p = p > 0 ? countryName.find_last_of('_', p - 1) : std::string::npos;
}
return false;
}
diff --git a/generator/region_meta.hpp b/generator/region_meta.hpp
index 1d46b84aec..2e49bbb803 100644
--- a/generator/region_meta.hpp
+++ b/generator/region_meta.hpp
@@ -6,5 +6,5 @@
namespace feature
{
-bool ReadRegionData(string const & countryName, RegionData & data);
+bool ReadRegionData(std::string const & countryName, RegionData & data);
} // namespace feature
diff --git a/generator/restaurants_info/restaurants_info.cpp b/generator/restaurants_info/restaurants_info.cpp
index ed1f862576..9c36efa076 100644
--- a/generator/restaurants_info/restaurants_info.cpp
+++ b/generator/restaurants_info/restaurants_info.cpp
@@ -9,13 +9,14 @@
#include "geometry/mercator.hpp"
#include "base/logging.hpp"
+#include "base/stl_add.hpp"
#include "base/string_utils.hpp"
-#include "std/cstdint.hpp"
-#include "std/fstream.hpp"
-#include "std/sstream.hpp"
-#include "std/unique_ptr.hpp"
-#include "std/vector.hpp"
+#include <cstdint>
+#include <fstream>
+#include <memory>
+#include <sstream>
+#include <vector>
#include "gflags/gflags.h"
@@ -27,7 +28,7 @@ namespace
class Emitter : public EmitterBase
{
public:
- Emitter(vector<FeatureBuilder1> & features)
+ Emitter(std::vector<FeatureBuilder1> & features)
: m_features(features)
{
LOG_SHORT(LINFO, ("OSM data:", FLAGS_osm));
@@ -51,7 +52,7 @@ public:
m_features.emplace_back(fb);
}
- void GetNames(vector<string> & names) const override
+ void GetNames(std::vector<std::string> & names) const override
{
// We do not need to create any data file. See generator_tool.cpp and osm_source.cpp.
names.clear();
@@ -67,7 +68,7 @@ public:
}
private:
- vector<FeatureBuilder1> & m_features;
+ std::vector<FeatureBuilder1> & m_features;
struct Stats
{
@@ -94,15 +95,15 @@ feature::GenerateInfo GetGenerateInfo()
return info;
}
-void DumpRestaurants(vector<FeatureBuilder1> const & features, ostream & out)
+void DumpRestaurants(std::vector<FeatureBuilder1> const & features, std::ostream & out)
{
for (auto const & f : features)
{
auto const multilangName = f.GetParams().name;
- string defaultName;
- vector<string> translations;
- multilangName.ForEach([&translations, &defaultName](uint8_t const langCode, string const & name)
+ std::string defaultName;
+ std::vector<std::string> translations;
+ multilangName.ForEach([&translations, &defaultName](uint8_t const langCode, std::string const & name)
{
if (langCode == StringUtf8Multilang::kDefaultCode)
{
@@ -140,14 +141,14 @@ int main(int argc, char * argv[])
auto info = GetGenerateInfo();
GenerateIntermediateData(info);
- vector<FeatureBuilder1> features;
+ std::vector<FeatureBuilder1> features;
GenerateFeatures(info, [&features](feature::GenerateInfo const & /* info */)
{
- return make_unique<Emitter>(features);
+ return my::make_unique<Emitter>(features);
});
{
- ofstream ost(FLAGS_out);
+ std::ofstream ost(FLAGS_out);
CHECK(ost.is_open(), ("Can't open file", FLAGS_out, strerror(errno)));
DumpRestaurants(features, ost);
}
diff --git a/generator/restriction_collector.cpp b/generator/restriction_collector.cpp
index 3ff92462b4..2d06200384 100644
--- a/generator/restriction_collector.cpp
+++ b/generator/restriction_collector.cpp
@@ -8,8 +8,8 @@
#include "base/stl_helpers.hpp"
#include "base/string_utils.hpp"
-#include "std/algorithm.hpp"
-#include "std/fstream.hpp"
+#include <algorithm>
+#include <fstream>
namespace
{
@@ -17,7 +17,7 @@ char const kNo[] = "No";
char const kOnly[] = "Only";
char const kDelim[] = ", \t\r\n";
-bool ParseLineOfWayIds(strings::SimpleTokenizer & iter, vector<osm::Id> & numbers)
+bool ParseLineOfWayIds(strings::SimpleTokenizer & iter, std::vector<osm::Id> & numbers)
{
uint64_t number = 0;
for (; iter; ++iter)
@@ -32,8 +32,8 @@ bool ParseLineOfWayIds(strings::SimpleTokenizer & iter, vector<osm::Id> & number
namespace routing
{
-RestrictionCollector::RestrictionCollector(string const & restrictionPath,
- string const & osmIdsToFeatureIdPath)
+RestrictionCollector::RestrictionCollector(std::string const & restrictionPath,
+ std::string const & osmIdsToFeatureIdPath)
{
MY_SCOPE_GUARD(clean, [this](){
m_osmIdToFeatureId.clear();
@@ -63,18 +63,18 @@ RestrictionCollector::RestrictionCollector(string const & restrictionPath,
bool RestrictionCollector::IsValid() const
{
- return find_if(begin(m_restrictions), end(m_restrictions),
+ return std::find_if(begin(m_restrictions), end(m_restrictions),
[](Restriction const & r) { return !r.IsValid(); }) == end(m_restrictions);
}
-bool RestrictionCollector::ParseRestrictions(string const & path)
+bool RestrictionCollector::ParseRestrictions(std::string const & path)
{
- ifstream stream(path);
+ std::ifstream stream(path);
if (stream.fail())
return false;
- string line;
- while (getline(stream, line))
+ std::string line;
+ while (std::getline(stream, line))
{
strings::SimpleTokenizer iter(line, kDelim);
if (!iter) // the line is empty
@@ -88,7 +88,7 @@ bool RestrictionCollector::ParseRestrictions(string const & path)
}
++iter;
- vector<osm::Id> osmIds;
+ std::vector<osm::Id> osmIds;
if (!ParseLineOfWayIds(iter, osmIds))
{
LOG(LWARNING, ("Cannot parse osm ids from", path));
@@ -100,9 +100,9 @@ bool RestrictionCollector::ParseRestrictions(string const & path)
return true;
}
-bool RestrictionCollector::AddRestriction(Restriction::Type type, vector<osm::Id> const & osmIds)
+bool RestrictionCollector::AddRestriction(Restriction::Type type, std::vector<osm::Id> const & osmIds)
{
- vector<uint32_t> featureIds(osmIds.size());
+ std::vector<uint32_t> featureIds(osmIds.size());
for (size_t i = 0; i < osmIds.size(); ++i)
{
auto const result = m_osmIdToFeatureId.find(osmIds[i]);
@@ -126,7 +126,7 @@ void RestrictionCollector::AddFeatureId(uint32_t featureId, osm::Id osmId)
::routing::AddFeatureId(osmId, featureId, m_osmIdToFeatureId);
}
-bool FromString(string str, Restriction::Type & type)
+bool FromString(std::string str, Restriction::Type & type)
{
if (str == kNo)
{
diff --git a/generator/restriction_collector.hpp b/generator/restriction_collector.hpp
index 3e66f60427..79dfe963ac 100644
--- a/generator/restriction_collector.hpp
+++ b/generator/restriction_collector.hpp
@@ -4,12 +4,12 @@
#include "routing/restrictions_serialization.hpp"
-#include "std/functional.hpp"
-#include "std/limits.hpp"
-#include "std/map.hpp"
-#include "std/string.hpp"
-#include "std/utility.hpp"
-#include "std/vector.hpp"
+#include <functional>
+#include <limits>
+#include <map>
+#include <string>
+#include <utility>
+#include <vector>
namespace routing
{
@@ -21,7 +21,7 @@ public:
RestrictionCollector() = default;
/// \param restrictionPath full path to file with road restrictions in osm id terms.
/// \param osmIdsToFeatureIdsPath full path to file with mapping from osm ids to feature ids.
- RestrictionCollector(string const & restrictionPath, string const & osmIdsToFeatureIdsPath);
+ RestrictionCollector(std::string const & restrictionPath, std::string const & osmIdsToFeatureIdsPath);
bool HasRestrictions() const { return !m_restrictions.empty(); }
@@ -45,7 +45,7 @@ private:
/// No, 157616940, 157616940,
/// No, 157616940, 157617107,
/// \param path path to the text file with restrictions.
- bool ParseRestrictions(string const & path);
+ bool ParseRestrictions(std::string const & path);
/// \brief Adds feature id and corresponding |osmId| to |m_osmIdToFeatureId|.
void AddFeatureId(uint32_t featureId, osm::Id osmId);
@@ -56,11 +56,11 @@ private:
/// \note This method should be called to add a restriction when feature ids of the restriction
/// are unknown. The feature ids should be set later with a call of |SetFeatureId(...)| method.
/// \returns true if restriction is add and false otherwise.
- bool AddRestriction(Restriction::Type type, vector<osm::Id> const & osmIds);
+ bool AddRestriction(Restriction::Type type, std::vector<osm::Id> const & osmIds);
RestrictionVec m_restrictions;
- map<osm::Id, uint32_t> m_osmIdToFeatureId;
+ std::map<osm::Id, uint32_t> m_osmIdToFeatureId;
};
-bool FromString(string str, Restriction::Type & type);
+bool FromString(std::string str, Restriction::Type & type);
} // namespace routing
diff --git a/generator/restriction_generator.cpp b/generator/restriction_generator.cpp
index 3c5e433f3b..5b9ba48445 100644
--- a/generator/restriction_generator.cpp
+++ b/generator/restriction_generator.cpp
@@ -11,12 +11,12 @@
#include "defines.hpp"
-#include "std/algorithm.hpp"
+#include <algorithm>
namespace routing
{
-bool BuildRoadRestrictions(string const & mwmPath, string const & restrictionPath,
- string const & osmIdsTofeatureIdsPath)
+bool BuildRoadRestrictions(std::string const & mwmPath, std::string const & restrictionPath,
+ std::string const & osmIdsTofeatureIdsPath)
{
LOG(LINFO, ("BuildRoadRestrictions(", mwmPath, ", ", restrictionPath, ", ",
osmIdsTofeatureIdsPath, ");"));
@@ -31,11 +31,12 @@ bool BuildRoadRestrictions(string const & mwmPath, string const & restrictionPat
RestrictionVec const & restrictions = restrictionCollector.GetRestrictions();
auto const firstOnlyIt =
- lower_bound(restrictions.cbegin(), restrictions.cend(),
- Restriction(Restriction::Type::Only, {} /* links */), my::LessBy(&Restriction::m_type));
+ std::lower_bound(restrictions.cbegin(), restrictions.cend(),
+ Restriction(Restriction::Type::Only, {} /* links */),
+ my::LessBy(&Restriction::m_type));
RestrictionHeader header;
- header.m_noRestrictionCount = base::checked_cast<uint32_t>(distance(restrictions.cbegin(), firstOnlyIt));
+ header.m_noRestrictionCount = base::checked_cast<uint32_t>(std::distance(restrictions.cbegin(), firstOnlyIt));
header.m_onlyRestrictionCount = base::checked_cast<uint32_t>(restrictions.size() - header.m_noRestrictionCount);
LOG(LINFO, ("Header info. There are", header.m_noRestrictionCount, "restrictions of type No and",
diff --git a/generator/restriction_generator.hpp b/generator/restriction_generator.hpp
index abb107ab5c..2a709df662 100644
--- a/generator/restriction_generator.hpp
+++ b/generator/restriction_generator.hpp
@@ -1,6 +1,6 @@
#pragma once
-#include "std/string.hpp"
+#include <string>
namespace routing
{
@@ -29,6 +29,6 @@ namespace routing
/// \param osmIdsToFeatureIdsPath a binary file with mapping form osm ids to feature ids.
/// One osm id is mapped to one feature id. The file should be saved with the help of
/// OsmID2FeatureID class or using a similar way.
-bool BuildRoadRestrictions(string const & mwmPath, string const & restrictionPath,
- string const & osmIdsToFeatureIdsPath);
+bool BuildRoadRestrictions(std::string const & mwmPath, std::string const & restrictionPath,
+ std::string const & osmIdsToFeatureIdsPath);
} // namespace routing
diff --git a/generator/restriction_writer.cpp b/generator/restriction_writer.cpp
index 27bba5e508..47821e963c 100644
--- a/generator/restriction_writer.cpp
+++ b/generator/restriction_writer.cpp
@@ -8,17 +8,17 @@
#include "base/logging.hpp"
-#include "std/algorithm.hpp"
-#include "std/fstream.hpp"
-#include "std/string.hpp"
-#include "std/utility.hpp"
-#include "std/vector.hpp"
+#include <algorithm>
+#include <fstream>
+#include <string>
+#include <utility>
+#include <vector>
namespace
{
using namespace routing;
-vector<pair<string, Restriction::Type>> const kRestrictionTypes =
+std::vector<std::pair<std::string, Restriction::Type>> const kRestrictionTypes =
{{"no_right_turn", Restriction::Type::No}, {"no_left_turn", Restriction::Type::No},
{"no_u_turn", Restriction::Type::No}, {"no_straight_on", Restriction::Type::No},
{"no_entry", Restriction::Type::No}, {"no_exit", Restriction::Type::No},
@@ -27,10 +27,10 @@ vector<pair<string, Restriction::Type>> const kRestrictionTypes =
/// \brief Converts restriction type form string to RestrictionCollector::Type.
/// \returns true if conversion was successful and false otherwise.
-bool TagToType(string const & tag, Restriction::Type & type)
+bool TagToType(std::string const & tag, Restriction::Type & type)
{
- auto const it = find_if(kRestrictionTypes.cbegin(), kRestrictionTypes.cend(),
- [&tag](pair<string, Restriction::Type> const & v) {
+ auto const it = std::find_if(kRestrictionTypes.cbegin(), kRestrictionTypes.cend(),
+ [&tag](std::pair<std::string, Restriction::Type> const & v) {
return v.first == tag;
});
if (it == kRestrictionTypes.cend())
@@ -43,7 +43,7 @@ bool TagToType(string const & tag, Restriction::Type & type)
namespace routing
{
-void RestrictionWriter::Open(string const & fullPath)
+void RestrictionWriter::Open(std::string const & fullPath)
{
LOG(LINFO, ("Saving road restrictions in osm id terms to", fullPath));
m_stream.open(fullPath, std::ofstream::out);
@@ -67,10 +67,10 @@ void RestrictionWriter::Write(RelationElement const & relationElement)
return; // Unsupported restriction. For example line-line-line.
// Extracting osm ids of lines and points of the restriction.
- auto const findTag = [&relationElement](vector<pair<uint64_t, string>> const & members,
- string const & tag) {
- auto const it = find_if(members.cbegin(), members.cend(),
- [&tag](pair<uint64_t, string> const & p) { return p.second == tag; });
+ auto const findTag = [&relationElement](std::vector<std::pair<uint64_t, std::string>> const & members,
+ std::string const & tag) {
+ auto const it = std::find_if(members.cbegin(), members.cend(),
+ [&tag](std::pair<uint64_t, std::string> const & p) { return p.second == tag; });
return it;
};
diff --git a/generator/restriction_writer.hpp b/generator/restriction_writer.hpp
index e2cbce31ab..f2eab58160 100644
--- a/generator/restriction_writer.hpp
+++ b/generator/restriction_writer.hpp
@@ -1,7 +1,7 @@
#pragma once
-#include "std/fstream.hpp"
-#include "std/string.hpp"
+#include <fstream>
+#include <string>
class RelationElement;
@@ -10,7 +10,7 @@ namespace routing
class RestrictionWriter
{
public:
- void Open(string const & fullPath);
+ void Open(std::string const & fullPath);
/// \brief Writes |relationElement| to |m_stream| if |relationElement| is a supported restriction.
/// See restriction_generator.hpp for the description of the format.
@@ -22,6 +22,6 @@ public:
private:
bool IsOpened() const;
- ofstream m_stream;
+ std::ofstream m_stream;
};
} // namespace routing
diff --git a/generator/road_access_generator.cpp b/generator/road_access_generator.cpp
index 5f019e4930..08f925328e 100644
--- a/generator/road_access_generator.cpp
+++ b/generator/road_access_generator.cpp
@@ -17,7 +17,7 @@
#include "base/logging.hpp"
#include "base/string_utils.hpp"
-#include "std/initializer_list.hpp"
+#include <initializer_list>
#include "defines.hpp"
diff --git a/generator/routing_generator.cpp b/generator/routing_generator.cpp
index e4148f3df7..fdcc8f8d48 100644
--- a/generator/routing_generator.cpp
+++ b/generator/routing_generator.cpp
@@ -56,7 +56,7 @@ uint8_t GetWarningRank(FeatureType const & ft)
return 3;
}
-bool LoadIndexes(string const & mwmFile, string const & osrmFile, osrm::NodeDataVectorT & nodeData, gen::OsmID2FeatureID & osm2ft)
+bool LoadIndexes(std::string const & mwmFile, std::string const & osrmFile, osrm::NodeDataVectorT & nodeData, gen::OsmID2FeatureID & osm2ft)
{
if (!osrm::LoadNodeDataFromFile(osrmFile + ".nodeData", nodeData))
{
@@ -96,7 +96,7 @@ bool CheckBBoxCrossingBorder(m2::RegionD const & border, osrm::NodeData const &
}
void FindCrossNodes(osrm::NodeDataVectorT const & nodeData, gen::OsmID2FeatureID const & osm2ft,
- borders::CountriesContainerT const & countries, string const & countryName,
+ borders::CountriesContainerT const & countries, std::string const & countryName,
Index const & index, MwmSet::MwmId mwmId,
routing::CrossRoutingContextWriter & crossContext)
{
@@ -154,7 +154,7 @@ void FindCrossNodes(osrm::NodeDataVectorT const & nodeData, gen::OsmID2FeatureID
crossContext.AddIngoingNode(nodeId, wgsIntersection);
else if (outStart && !outEnd)
{
- string mwmName;
+ std::string mwmName;
m2::PointD const & mercatorPoint = MercatorBounds::FromLatLon(endSeg.lat2, endSeg.lon2);
countries.ForEachInRect(m2::RectD(mercatorPoint, mercatorPoint), [&](borders::CountryPolygons const & c)
{
@@ -189,7 +189,7 @@ void FindCrossNodes(osrm::NodeDataVectorT const & nodeData, gen::OsmID2FeatureID
}
}
-void CalculateCrossAdjacency(string const & mwmRoutingPath, routing::CrossRoutingContextWriter & crossContext)
+void CalculateCrossAdjacency(std::string const & mwmRoutingPath, routing::CrossRoutingContextWriter & crossContext)
{
OsrmDataFacade<QueryEdge::EdgeData> facade;
FilesMappingContainer routingCont(mwmRoutingPath);
@@ -223,7 +223,7 @@ void CalculateCrossAdjacency(string const & mwmRoutingPath, routing::CrossRoutin
LOG(LINFO, ("Calculation of weight map between outgoing nodes DONE"));
}
-void WriteCrossSection(routing::CrossRoutingContextWriter const & crossContext, string const & mwmRoutingPath)
+void WriteCrossSection(routing::CrossRoutingContextWriter const & crossContext, std::string const & mwmRoutingPath)
{
LOG(LINFO, ("Collect all data into one file..."));
@@ -235,8 +235,8 @@ void WriteCrossSection(routing::CrossRoutingContextWriter const & crossContext,
LOG(LINFO, ("Have written routing info, bytes written:", w.Pos() - start_size, "bytes"));
}
-void BuildCrossRoutingIndex(string const & baseDir, string const & countryName,
- string const & osrmFile)
+void BuildCrossRoutingIndex(std::string const & baseDir, std::string const & countryName,
+ std::string const & osrmFile)
{
LOG(LINFO, ("Cross mwm routing section builder"));
classificator::Load();
@@ -267,12 +267,12 @@ void BuildCrossRoutingIndex(string const & baseDir, string const & countryName,
routing::CrossRoutingContextWriter crossContext;
FindCrossNodes(nodeData, osm2ft, countries, countryName, index, p.first, crossContext);
- string const mwmPath = localFile.GetPath(MapOptions::Map);
+ std::string const mwmPath = localFile.GetPath(MapOptions::Map);
CalculateCrossAdjacency(mwmPath, crossContext);
WriteCrossSection(crossContext, mwmPath);
}
-void BuildRoutingIndex(string const & baseDir, string const & countryName, string const & osrmFile)
+void BuildRoutingIndex(std::string const & baseDir, std::string const & countryName, std::string const & osrmFile)
{
classificator::Load();
@@ -451,8 +451,8 @@ void BuildRoutingIndex(string const & baseDir, string const & countryName, strin
LOG(LINFO, ("Collect all data into one file..."));
- string const mwmPath = localFile.GetPath(MapOptions::Map);
- string const mwmWithoutRoutingPath = mwmPath + NOROUTING_FILE_EXTENSION;
+ std::string const mwmPath = localFile.GetPath(MapOptions::Map);
+ std::string const mwmWithoutRoutingPath = mwmPath + NOROUTING_FILE_EXTENSION;
// Backup mwm file without routing.
CHECK(my::CopyFileX(mwmPath, mwmWithoutRoutingPath), ("Can't copy", mwmPath, "to", mwmWithoutRoutingPath));
@@ -461,9 +461,9 @@ void BuildRoutingIndex(string const & baseDir, string const & countryName, strin
mapping.Save(routingCont);
- auto appendFile = [&] (string const & tag)
+ auto appendFile = [&] (std::string const & tag)
{
- string const fileName = osrmFile + "." + tag;
+ std::string const fileName = osrmFile + "." + tag;
LOG(LINFO, ("Append file", fileName, "with tag", tag));
routingCont.Write(fileName, tag);
};
diff --git a/generator/routing_generator.hpp b/generator/routing_generator.hpp
index 82b4ebd1b9..776aecf2b2 100644
--- a/generator/routing_generator.hpp
+++ b/generator/routing_generator.hpp
@@ -1,18 +1,18 @@
#pragma once
-#include "std/string.hpp"
+#include <string>
namespace routing
{
/// @param[in] baseDir Full path to .mwm files directory.
/// @param[in] countryName Country name same with .mwm and .border file name.
/// @param[in] osrmFile Full path to .osrm file (all prepared osrm files should be there).
-void BuildRoutingIndex(string const & baseDir, string const & countryName, string const & osrmFile);
+void BuildRoutingIndex(std::string const & baseDir, std::string const & countryName, std::string const & osrmFile);
/// @param[in] baseDir Full path to .mwm files directory.
/// @param[in] countryName Country name same with .mwm and .border file name.
/// @param[in] osrmFile Full path to .osrm file (all prepared osrm files should be there).
/// perform if it's emplty.
-void BuildCrossRoutingIndex(string const & baseDir, string const & countryName,
- string const & osrmFile);
+void BuildCrossRoutingIndex(std::string const & baseDir, std::string const & countryName,
+ std::string const & osrmFile);
}
diff --git a/generator/routing_helpers.hpp b/generator/routing_helpers.hpp
index 654a992aab..0e9fc1de7c 100644
--- a/generator/routing_helpers.hpp
+++ b/generator/routing_helpers.hpp
@@ -18,7 +18,7 @@ struct TagsProcessor
// Adds feature id and corresponding |osmId| to |osmIdToFeatureId|.
// Note. In general, one |featureId| may correspond to several osm ids.
// But for a road feature |featureId| corresponds to exactly one osm id.
-void AddFeatureId(osm::Id osmId, uint32_t featureId, map<osm::Id, uint32_t> &osmIdToFeatureId);
+void AddFeatureId(osm::Id osmId, uint32_t featureId, std::map<osm::Id, uint32_t> & osmIdToFeatureId);
// Parses comma separated text file with line in following format:
// <feature id>, <osm id 1 corresponding feature id>, <osm id 2 corresponding feature id>, and so
diff --git a/generator/search_index_builder.cpp b/generator/search_index_builder.cpp
index 7b242f6d96..bdb66db8f3 100644
--- a/generator/search_index_builder.cpp
+++ b/generator/search_index_builder.cpp
@@ -35,12 +35,14 @@
#include "base/string_utils.hpp"
#include "base/timer.hpp"
-#include "std/algorithm.hpp"
-#include "std/fstream.hpp"
-#include "std/initializer_list.hpp"
-#include "std/limits.hpp"
-#include "std/unordered_map.hpp"
-#include "std/vector.hpp"
+#include <algorithm>
+#include <fstream>
+#include <initializer_list>
+#include <limits>
+#include <unordered_map>
+#include <vector>
+
+using namespace std;
#define SYNONYMS_FILE "synonyms.txt"
@@ -61,7 +63,7 @@ public:
while (stream.good())
{
- std::getline(stream, line);
+ getline(stream, line);
if (line.empty())
continue;
diff --git a/generator/search_index_builder.hpp b/generator/search_index_builder.hpp
index ce647d0653..c9cc1bbdca 100644
--- a/generator/search_index_builder.hpp
+++ b/generator/search_index_builder.hpp
@@ -1,6 +1,6 @@
#pragma once
-#include "std/string.hpp"
+#include <string>
class FilesContainerR;
class Writer;
@@ -11,7 +11,7 @@ namespace indexer
// An attempt to rewrite the search index of an old mwm may result in a future crash
// when using search because this function does not update mwm's version. This results
// in version mismatch when trying to read the index.
-bool BuildSearchIndexFromDataFile(string const & filename, bool forceRebuild = false);
+bool BuildSearchIndexFromDataFile(std::string const & filename, bool forceRebuild = false);
void BuildSearchIndex(FilesContainerR & container, Writer & indexWriter);
} // namespace indexer
diff --git a/generator/sponsored_dataset.hpp b/generator/sponsored_dataset.hpp
index 82e26cbaa1..9bd0f1daf0 100644
--- a/generator/sponsored_dataset.hpp
+++ b/generator/sponsored_dataset.hpp
@@ -10,9 +10,9 @@
#include "base/newtype.hpp"
-#include "std/function.hpp"
-#include "std/map.hpp"
-#include "std/string.hpp"
+#include <functional>
+#include <map>
+#include <string>
#include "boost/geometry.hpp"
#include "boost/geometry/geometries/point.hpp"
@@ -33,14 +33,16 @@ public:
static double constexpr kDistanceLimitInMeters = 150;
static size_t constexpr kMaxSelectedElements = 3;
- explicit SponsoredDataset(string const & dataPath, string const & addressReferencePath = string());
- explicit SponsoredDataset(istream & dataSource, string const & addressReferencePath = string());
+ explicit SponsoredDataset(std::string const & dataPath,
+ std::string const & addressReferencePath = std::string());
+ explicit SponsoredDataset(std::istream & dataSource,
+ std::string const & addressReferencePath = std::string());
size_t Size() const { return m_objects.size(); }
Object const & GetObjectById(ObjectId id) const;
Object & GetObjectById(ObjectId id);
- vector<ObjectId> GetNearestObjects(ms::LatLon const & latLon, size_t limit,
+ std::vector<ObjectId> GetNearestObjects(ms::LatLon const & latLon, size_t limit,
double maxDistance = 0.0) const;
/// @return true if |fb| satisfies some necessary conditions to match one or serveral
@@ -51,9 +53,9 @@ public:
// Applies changes to a given osm object (for example, remove hotel type)
// and passes the result to |fn|.
void PreprocessMatchedOsmObject(ObjectId matchedObjId, FeatureBuilder1 & fb,
- function<void(FeatureBuilder1 &)> const fn) const;
+ std::function<void(FeatureBuilder1 &)> const fn) const;
// Creates objects and adds them to the map (MWM) via |fn|.
- void BuildOsmObjects(function<void(FeatureBuilder1 &)> const & fn) const;
+ void BuildOsmObjects(std::function<void(FeatureBuilder1 &)> const & fn) const;
protected:
class AddressMatcher
@@ -64,7 +66,7 @@ protected:
private:
Index m_index;
- unique_ptr<search::ReverseGeocoder> m_coder;
+ std::unique_ptr<search::ReverseGeocoder> m_coder;
};
// TODO(mgsergio): Get rid of Box since boost::rtree supports point as value type.
@@ -72,20 +74,20 @@ protected:
// instead of boost::geometry::cs::cartesian.
using Point = boost::geometry::model::point<float, 2, boost::geometry::cs::cartesian>;
using Box = boost::geometry::model::box<Point>;
- using Value = pair<Box, ObjectId>;
+ using Value = std::pair<Box, ObjectId>;
// Create the rtree using default constructor.
boost::geometry::index::rtree<Value, boost::geometry::index::quadratic<16>> m_rtree;
void BuildObject(Object const & object,
- function<void(FeatureBuilder1 &)> const & fn) const;
+ std::function<void(FeatureBuilder1 &)> const & fn) const;
- void LoadData(istream & src, string const & addressReferencePath);
+ void LoadData(std::istream & src, std::string const & addressReferencePath);
/// @return an id of a matched object or kInvalidObjectId on failure.
ObjectId FindMatchingObjectIdImpl(FeatureBuilder1 const & fb) const;
- map<ObjectId, Object> m_objects;
+ std::map<ObjectId, Object> m_objects;
};
} // namespace generator
diff --git a/generator/sponsored_dataset_inl.hpp b/generator/sponsored_dataset_inl.hpp
index 12364346a3..b437a4041c 100644
--- a/generator/sponsored_dataset_inl.hpp
+++ b/generator/sponsored_dataset_inl.hpp
@@ -5,8 +5,8 @@
#include "base/logging.hpp"
#include "base/string_utils.hpp"
-#include "std/fstream.hpp"
-#include "std/iostream.hpp"
+#include <fstream>
+#include <iostream>
namespace generator
{
@@ -48,12 +48,12 @@ void SponsoredDataset<SponsoredObject>::AddressMatcher::operator()(Object & obje
// SponsoredDataset --------------------------------------------------------------------------------
template <typename SponsoredObject>
-SponsoredDataset<SponsoredObject>::SponsoredDataset(string const & dataPath, string const & addressReferencePath)
+SponsoredDataset<SponsoredObject>::SponsoredDataset(std::string const & dataPath, std::string const & addressReferencePath)
{
if (dataPath.empty())
return;
- ifstream dataSource(dataPath);
+ std::ifstream dataSource(dataPath);
if (!dataSource.is_open())
{
LOG(LERROR, ("Error while opening", dataPath, ":", strerror(errno)));
@@ -64,7 +64,7 @@ SponsoredDataset<SponsoredObject>::SponsoredDataset(string const & dataPath, str
}
template <typename SponsoredObject>
-SponsoredDataset<SponsoredObject>::SponsoredDataset(istream & dataSource, string const & addressReferencePath)
+SponsoredDataset<SponsoredObject>::SponsoredDataset(std::istream & dataSource, std::string const & addressReferencePath)
{
LoadData(dataSource, addressReferencePath);
}
@@ -126,12 +126,12 @@ SponsoredDataset<SponsoredObject>::GetNearestObjects(ms::LatLon const & latLon,
}
template <typename SponsoredObject>
-void SponsoredDataset<SponsoredObject>::LoadData(istream & src, string const & addressReferencePath)
+void SponsoredDataset<SponsoredObject>::LoadData(std::istream & src, std::string const & addressReferencePath)
{
m_objects.clear();
m_rtree.clear();
- for (string line; getline(src, line);)
+ for (std::string line; std::getline(src, line);)
{
Object hotel(line);
m_objects.emplace(hotel.m_id, hotel);
@@ -142,7 +142,7 @@ void SponsoredDataset<SponsoredObject>::LoadData(istream & src, string const & a
{
LOG(LINFO, ("Reference addresses for sponsored objects", addressReferencePath));
Platform & platform = GetPlatform();
- string const backupPath = platform.WritableDir();
+ std::string const backupPath = platform.WritableDir();
// MWMs can be loaded only from a writebledir or from a resourcedir,
// changig resourcedir can lead to probles with classificator, so
diff --git a/generator/sponsored_scoring.cpp b/generator/sponsored_scoring.cpp
index 76568aeeac..0ca1db65ff 100644
--- a/generator/sponsored_scoring.cpp
+++ b/generator/sponsored_scoring.cpp
@@ -5,22 +5,22 @@
#include "geometry/distance_on_sphere.hpp"
-#include "std/algorithm.hpp"
-#include "std/vector.hpp"
+#include <algorithm>
+#include <vector>
namespace
{
-using WeightedBagOfWords = vector<pair<strings::UniString, double>>;
+using WeightedBagOfWords = std::vector<std::pair<strings::UniString, double>>;
-vector<strings::UniString> StringToWords(string const & str)
+std::vector<strings::UniString> StringToWords(std::string const & str)
{
- vector<strings::UniString> result;
+ std::vector<strings::UniString> result;
search::NormalizeAndTokenizeString(str, result, search::Delimiters{});
- sort(begin(result), end(result));
+ std::sort(std::begin(result), std::end(result));
return result;
}
-WeightedBagOfWords MakeWeightedBagOfWords(vector<strings::UniString> const & words)
+WeightedBagOfWords MakeWeightedBagOfWords(std::vector<strings::UniString> const & words)
{
// TODO(mgsergio): Calculate tf-idsf score for every word.
auto constexpr kTfIdfScorePlaceholder = 1;
@@ -92,7 +92,7 @@ double GetLinearNormDistanceScore(double distance, double const maxDistance)
return 1.0 - distance / maxDistance;
}
-double GetNameSimilarityScore(string const & booking_name, string const & osm_name)
+double GetNameSimilarityScore(std::string const & booking_name, std::string const & osm_name)
{
auto const aws = MakeWeightedBagOfWords(StringToWords(booking_name));
auto const bws = MakeWeightedBagOfWords(StringToWords(osm_name));
diff --git a/generator/sponsored_scoring.hpp b/generator/sponsored_scoring.hpp
index 1e342b11bf..f1eb3e1773 100644
--- a/generator/sponsored_scoring.hpp
+++ b/generator/sponsored_scoring.hpp
@@ -1,6 +1,6 @@
#pragma once
-#include "std/string.hpp"
+#include <string>
class FeatureBuilder1;
@@ -9,7 +9,7 @@ namespace generator
namespace impl
{
double GetLinearNormDistanceScore(double distance, double maxDistance);
-double GetNameSimilarityScore(string const & booking_name, string const & osm_name);
+double GetNameSimilarityScore(std::string const & booking_name, std::string const & osm_name);
} // namespace impl
namespace sponsored_scoring
diff --git a/generator/srtm_coverage_checker/srtm_coverage_checker.cpp b/generator/srtm_coverage_checker/srtm_coverage_checker.cpp
index 28b366ea05..18ed6fd9c0 100644
--- a/generator/srtm_coverage_checker/srtm_coverage_checker.cpp
+++ b/generator/srtm_coverage_checker/srtm_coverage_checker.cpp
@@ -13,7 +13,7 @@
#include "base/logging.hpp"
-#include "std/algorithm.hpp"
+#include <algorithm>
#include "3party/gflags/src/gflags/gflags.h"
@@ -93,7 +93,7 @@ int main(int argc, char * argv[])
// Get points in proper direction.
auto const startIdx = segment.m_pointStart;
auto const endIdx = segment.m_pointEnd;
- for (auto idx = min(startIdx, endIdx); idx <= max(startIdx, endIdx); ++idx)
+ for (auto idx = std::min(startIdx, endIdx); idx <= std::max(startIdx, endIdx); ++idx)
path.push_back(ft.GetPoint(idx));
all += path.size();
diff --git a/generator/srtm_parser.cpp b/generator/srtm_parser.cpp
index 019187f3c0..00b5f9e2ab 100644
--- a/generator/srtm_parser.cpp
+++ b/generator/srtm_parser.cpp
@@ -5,8 +5,8 @@
#include "base/logging.hpp"
-#include "std/iomanip.hpp"
-#include "std/sstream.hpp"
+#include <iomanip>
+#include <sstream>
namespace generator
{
@@ -17,7 +17,7 @@ size_t constexpr kSrtmTileSize = (kArcSecondsInDegree + 1) * (kArcSecondsInDegre
struct UnzipMemDelegate : public ZipFileReader::Delegate
{
- UnzipMemDelegate(string & buffer) : m_buffer(buffer), m_completed(false) {}
+ UnzipMemDelegate(std::string & buffer) : m_buffer(buffer), m_completed(false) {}
// ZipFileReader::Delegate overrides:
void OnBlockUnzipped(size_t size, char const * data) override { m_buffer.append(data, size); }
@@ -30,7 +30,7 @@ struct UnzipMemDelegate : public ZipFileReader::Delegate
void OnCompleted() override { m_completed = true; }
- string & m_buffer;
+ std::string & m_buffer;
bool m_completed;
};
} // namespace
@@ -46,13 +46,13 @@ SrtmTile::SrtmTile(SrtmTile && rhs) : m_data(move(rhs.m_data)), m_valid(rhs.m_va
rhs.Invalidate();
}
-void SrtmTile::Init(string const & dir, ms::LatLon const & coord)
+void SrtmTile::Init(std::string const & dir, ms::LatLon const & coord)
{
Invalidate();
- string const base = GetBase(coord);
- string const cont = dir + base + ".SRTMGL1.hgt.zip";
- string file = base + ".hgt";
+ std::string const base = GetBase(coord);
+ std::string const cont = dir + base + ".SRTMGL1.hgt.zip";
+ std::string file = base + ".hgt";
UnzipMemDelegate delegate(m_data);
try
@@ -107,9 +107,9 @@ feature::TAltitude SrtmTile::GetHeight(ms::LatLon const & coord)
return ReverseByteOrder(Data()[ix]);
}
-string SrtmTile::GetBase(ms::LatLon coord)
+std::string SrtmTile::GetBase(ms::LatLon coord)
{
- ostringstream ss;
+ std::ostringstream ss;
if (coord.lat < 0)
{
ss << "S";
@@ -120,7 +120,7 @@ string SrtmTile::GetBase(ms::LatLon coord)
{
ss << "N";
}
- ss << setw(2) << setfill('0') << static_cast<int>(coord.lat);
+ ss << std::setw(2) << std::setfill('0') << static_cast<int>(coord.lat);
if (coord.lon < 0)
{
@@ -132,7 +132,7 @@ string SrtmTile::GetBase(ms::LatLon coord)
{
ss << "E";
}
- ss << setw(3) << static_cast<int>(coord.lon);
+ ss << std::setw(3) << static_cast<int>(coord.lon);
return ss.str();
}
@@ -144,10 +144,10 @@ void SrtmTile::Invalidate()
}
// SrtmTileManager ---------------------------------------------------------------------------------
-SrtmTileManager::SrtmTileManager(string const & dir) : m_dir(dir) {}
+SrtmTileManager::SrtmTileManager(std::string const & dir) : m_dir(dir) {}
feature::TAltitude SrtmTileManager::GetHeight(ms::LatLon const & coord)
{
- string const base = SrtmTile::GetBase(coord);
+ std::string const base = SrtmTile::GetBase(coord);
auto it = m_tiles.find(base);
if (it == m_tiles.end())
{
@@ -163,7 +163,7 @@ feature::TAltitude SrtmTileManager::GetHeight(ms::LatLon const & coord)
// It's OK to store even invalid tiles and return invalid height
// for them later.
- it = m_tiles.emplace(base, move(tile)).first;
+ it = m_tiles.emplace(base, std::move(tile)).first;
}
return it->second.GetHeight(coord);
diff --git a/generator/srtm_parser.hpp b/generator/srtm_parser.hpp
index e0e6096e45..75785cfd6c 100644
--- a/generator/srtm_parser.hpp
+++ b/generator/srtm_parser.hpp
@@ -6,9 +6,9 @@
#include "base/macros.hpp"
-#include "std/cstdint.hpp"
-#include "std/string.hpp"
-#include "std/unordered_map.hpp"
+#include <cstdint>
+#include <string>
+#include <unordered_map>
namespace generator
{
@@ -18,13 +18,13 @@ public:
SrtmTile();
SrtmTile(SrtmTile && rhs);
- void Init(string const & dir, ms::LatLon const & coord);
+ void Init(std::string const & dir, ms::LatLon const & coord);
inline bool IsValid() const { return m_valid; }
// Returns height in meters at |coord| or kInvalidAltitude.
feature::TAltitude GetHeight(ms::LatLon const & coord);
- static string GetBase(ms::LatLon coord);
+ static std::string GetBase(ms::LatLon coord);
private:
inline feature::TAltitude const * Data() const
@@ -35,7 +35,7 @@ private:
inline size_t Size() const { return m_data.size() / sizeof(feature::TAltitude); }
void Invalidate();
- string m_data;
+ std::string m_data;
bool m_valid;
DISALLOW_COPY(SrtmTile);
@@ -44,13 +44,13 @@ private:
class SrtmTileManager
{
public:
- SrtmTileManager(string const & dir);
+ SrtmTileManager(std::string const & dir);
feature::TAltitude GetHeight(ms::LatLon const & coord);
private:
- string m_dir;
- unordered_map<string, SrtmTile> m_tiles;
+ std::string m_dir;
+ std::unordered_map<std::string, SrtmTile> m_tiles;
DISALLOW_COPY(SrtmTileManager);
};
diff --git a/generator/statistics.cpp b/generator/statistics.cpp
index c226453cf1..906e6d1127 100644
--- a/generator/statistics.cpp
+++ b/generator/statistics.cpp
@@ -10,22 +10,22 @@
#include "base/logging.hpp"
#include "base/string_utils.hpp"
-#include "std/iomanip.hpp"
-#include "std/iostream.hpp"
+#include <iomanip>
+#include <iostream>
using namespace feature;
namespace stats
{
- void FileContainerStatistic(string const & fPath)
+ void FileContainerStatistic(std::string const & fPath)
{
try
{
FilesContainerR cont(fPath);
cont.ForEachTag([&cont] (FilesContainerR::Tag const & tag)
{
- cout << setw(10) << tag << " : " << cont.GetReader(tag).Size() << endl;
+ std::cout << std::setw(10) << tag << " : " << cont.GetReader(tag).Size() << endl;
});
}
catch (Reader::Exception const & ex)
@@ -106,23 +106,23 @@ namespace stats
}
};
- void CalcStatistic(string const & fPath, MapInfo & info)
+ void CalcStatistic(std::string const & fPath, MapInfo & info)
{
AccumulateStatistic doProcess(info);
feature::ForEachFromDat(fPath, doProcess);
}
- void PrintInfo(string const & prefix, GeneralInfo const & info, bool measurements)
+ void PrintInfo(std::string const & prefix, GeneralInfo const & info, bool measurements)
{
- cout << prefix << ": size = " << info.m_size << "; count = " << info.m_count;
+ std::cout << prefix << ": size = " << info.m_size << "; count = " << info.m_count;
if (measurements)
{
- cout << "; length = " << uint64_t(info.m_length) << " m; area = " << uint64_t(info.m_area) << " m²";
+ std::cout << "; length = " << uint64_t(info.m_length) << " m; area = " << uint64_t(info.m_area) << " m²";
}
- cout << endl;
+ std::cout << endl;
}
- string GetKey(EGeomType type)
+ std::string GetKey(EGeomType type)
{
switch (type)
{
@@ -132,17 +132,17 @@ namespace stats
}
}
- string GetKey(CountType t)
+ std::string GetKey(CountType t)
{
return strings::to_string(t.m_val);
}
- string GetKey(ClassifType t)
+ std::string GetKey(ClassifType t)
{
return classif().GetFullObjectName(t.m_val);
}
- string GetKey(AreaType t)
+ std::string GetKey(AreaType t)
{
return strings::to_string(arrAreas[t.m_val]);
}
@@ -150,7 +150,7 @@ namespace stats
template <class TSortCr, class TSet>
void PrintTop(char const * prefix, TSet const & theSet)
{
- cout << prefix << endl;
+ std::cout << prefix << endl;
vector<pair<typename TSet::key_type, typename TSet::mapped_type>> vec(theSet.begin(), theSet.end());
@@ -159,7 +159,7 @@ namespace stats
size_t const count = min(static_cast<size_t>(10), vec.size());
for (size_t i = 0; i < count; ++i)
{
- cout << i << ". ";
+ std::cout << i << ". ";
PrintInfo(GetKey(vec[i].first), vec[i].second, false);
}
}
diff --git a/generator/statistics.hpp b/generator/statistics.hpp
index 9240374ace..d8b67ede2c 100644
--- a/generator/statistics.hpp
+++ b/generator/statistics.hpp
@@ -2,7 +2,7 @@
#include "indexer/feature.hpp"
-#include "std/map.hpp"
+#include <map>
namespace stats
@@ -40,17 +40,17 @@ namespace stats
struct MapInfo
{
- map<feature::EGeomType, GeneralInfo> m_byGeomType;
- map<ClassifType, GeneralInfo> m_byClassifType;
- map<CountType, GeneralInfo> m_byPointsCount, m_byTrgCount;
- map<AreaType, GeneralInfo> m_byAreaSize;
+ std::map<feature::EGeomType, GeneralInfo> m_byGeomType;
+ std::map<ClassifType, GeneralInfo> m_byClassifType;
+ std::map<CountType, GeneralInfo> m_byPointsCount, m_byTrgCount;
+ std::map<AreaType, GeneralInfo> m_byAreaSize;
GeneralInfo m_inner[3];
};
- void FileContainerStatistic(string const & fPath);
+ void FileContainerStatistic(std::string const & fPath);
- void CalcStatistic(string const & fPath, MapInfo & info);
+ void CalcStatistic(std::string const & fPath, MapInfo & info);
void PrintStatistic(MapInfo & info);
void PrintTypeStatistic(MapInfo & info);
}
diff --git a/generator/tag_admixer.hpp b/generator/tag_admixer.hpp
index 659b73a83f..8a8d94b22f 100644
--- a/generator/tag_admixer.hpp
+++ b/generator/tag_admixer.hpp
@@ -6,26 +6,26 @@
#include "base/stl_add.hpp"
#include "base/string_utils.hpp"
-#include "std/fstream.hpp"
-#include "std/map.hpp"
-#include "std/set.hpp"
-#include "std/string.hpp"
-#include "std/utility.hpp"
+#include <fstream>
+#include <map>
+#include <set>
+#include <string>
+#include <utility>
class WaysParserHelper
{
public:
- WaysParserHelper(map<uint64_t, string> & ways) : m_ways(ways) {}
+ WaysParserHelper(std::map<uint64_t, std::string> & ways) : m_ways(ways) {}
void ParseStream(istream & input)
{
- string oneLine;
- while (getline(input, oneLine, '\n'))
+ std::string oneLine;
+ while (std::getline(input, oneLine, '\n'))
{
// String format: <<id;tag>>.
auto pos = oneLine.find(';');
- if (pos != string::npos)
+ if (pos != std::string::npos)
{
uint64_t wayId;
CHECK(strings::to_uint64(oneLine.substr(0, pos), wayId),());
@@ -35,32 +35,32 @@ public:
}
private:
- map<uint64_t, string> & m_ways;
+ std::map<uint64_t, std::string> & m_ways;
};
class CapitalsParserHelper
{
public:
- CapitalsParserHelper(set<uint64_t> & capitals) : m_capitals(capitals) {}
+ CapitalsParserHelper(std::set<uint64_t> & capitals) : m_capitals(capitals) {}
void ParseStream(istream & input)
{
- string oneLine;
- while (getline(input, oneLine, '\n'))
+ std::string oneLine;
+ while (std::getline(input, oneLine, '\n'))
{
// String format: <<lat;lon;id;is_capital>>.
// First ';'.
auto pos = oneLine.find(";");
- if (pos != string::npos)
+ if (pos != std::string::npos)
{
// Second ';'.
pos = oneLine.find(";", pos + 1);
- if (pos != string::npos)
+ if (pos != std::string::npos)
{
uint64_t nodeId;
// Third ';'.
auto endPos = oneLine.find(";", pos + 1);
- if (endPos != string::npos)
+ if (endPos != std::string::npos)
{
if (strings::to_uint64(oneLine.substr(pos + 1, endPos - pos - 1), nodeId))
m_capitals.insert(nodeId);
@@ -71,21 +71,21 @@ public:
}
private:
- set<uint64_t> & m_capitals;
+ std::set<uint64_t> & m_capitals;
};
class TagAdmixer
{
public:
- TagAdmixer(string const & waysFile, string const & capitalsFile) : m_ferryTag("route", "ferry")
+ TagAdmixer(std::string const & waysFile, std::string const & capitalsFile) : m_ferryTag("route", "ferry")
{
try
{
- ifstream reader(waysFile);
+ std::ifstream reader(waysFile);
WaysParserHelper parser(m_ways);
parser.ParseStream(reader);
}
- catch (ifstream::failure const &)
+ catch (std::ifstream::failure const &)
{
LOG(LWARNING, ("Can't read the world level ways file! Generating world without roads. Path:", waysFile));
return;
@@ -93,11 +93,11 @@ public:
try
{
- ifstream reader(capitalsFile);
+ std::ifstream reader(capitalsFile);
CapitalsParserHelper parser(m_capitals);
parser.ParseStream(reader);
}
- catch (ifstream::failure const &)
+ catch (std::ifstream::failure const &)
{
LOG(LWARNING, ("Can't read the world level capitals file! Generating world without towns admixing. Path:", capitalsFile));
return;
@@ -117,7 +117,7 @@ public:
// Our goal here - to make some capitals visible in World map.
// The simplest way is to upgrade population to 45000,
// according to our visibility rules in mapcss files.
- e->UpdateTag("population", [] (string & v)
+ e->UpdateTag("population", [] (std::string & v)
{
uint64_t n;
if (!strings::to_uint64(v, n) || n < 45000)
@@ -127,22 +127,22 @@ public:
}
private:
- map<uint64_t, string> m_ways;
- set<uint64_t> m_capitals;
+ std::map<uint64_t, std::string> m_ways;
+ std::set<uint64_t> m_capitals;
OsmElement::Tag const m_ferryTag;
};
class TagReplacer
{
- map<OsmElement::Tag, vector<string>> m_entries;
+ std::map<OsmElement::Tag, std::vector<std::string>> m_entries;
public:
- TagReplacer(string const & filePath)
+ TagReplacer(std::string const & filePath)
{
- ifstream stream(filePath);
+ std::ifstream stream(filePath);
OsmElement::Tag tag;
- vector<string> values;
- string line;
+ std::vector<std::string> values;
+ std::string line;
while (std::getline(stream, line))
{
if (line.empty())
@@ -185,15 +185,15 @@ public:
class OsmTagMixer
{
- map<pair<OsmElement::EntityType, uint64_t>, vector<OsmElement::Tag>> m_elements;
+ std::map<std::pair<OsmElement::EntityType, uint64_t>, std::vector<OsmElement::Tag>> m_elements;
public:
- OsmTagMixer(string const & filePath)
+ OsmTagMixer(std::string const & filePath)
{
- ifstream stream(filePath);
- vector<string> values;
- vector<OsmElement::Tag> tags;
- string line;
+ std::ifstream stream(filePath);
+ std::vector<std::string> values;
+ std::vector<OsmElement::Tag> tags;
+ std::string line;
while (std::getline(stream, line))
{
if (line.empty() || line.front() == '#')
@@ -211,13 +211,13 @@ public:
for (size_t i = 2; i < values.size(); ++i)
{
auto p = values[i].find('=');
- if (p != string::npos)
+ if (p != std::string::npos)
tags.push_back(OsmElement::Tag(values[i].substr(0, p), values[i].substr(p + 1)));
}
if (!tags.empty())
{
- pair<OsmElement::EntityType, uint64_t> elementPair = {entityType, id};
+ std::pair<OsmElement::EntityType, uint64_t> elementPair = {entityType, id};
m_elements[elementPair].swap(tags);
}
}
@@ -225,7 +225,7 @@ public:
void operator()(OsmElement * p)
{
- pair<OsmElement::EntityType, uint64_t> elementId = {p->type, p->id};
+ std::pair<OsmElement::EntityType, uint64_t> elementId = {p->type, p->id};
auto elements = m_elements.find(elementId);
if (elements != m_elements.end())
{
diff --git a/generator/tesselator.cpp b/generator/tesselator.cpp
index 68b132d7b0..7667e1ccd4 100644
--- a/generator/tesselator.cpp
+++ b/generator/tesselator.cpp
@@ -9,9 +9,9 @@
#include "base/assert.hpp"
#include "base/logging.hpp"
-#include "std/limits.hpp"
-#include "std/queue.hpp"
-#include "std/unique_ptr.hpp"
+#include <limits>
+#include <memory>
+#include <queue>
#include "3party/libtess2/Include/tesselator.h"
@@ -24,7 +24,7 @@ int TesselateInterior(PolygonsT const & polys, TrianglesInfo & info)
int constexpr kVerticesInPolygon = 3;
auto const deleter = [](TESStesselator * tess) {tessDeleteTess(tess);};
- unique_ptr<TESStesselator, decltype(deleter)> tess(tessNewTess(nullptr), deleter);
+ std::unique_ptr<TESStesselator, decltype(deleter)> tess(tessNewTess(nullptr), deleter);
for (auto const & contour : polys)
{
@@ -65,7 +65,7 @@ int TesselateInterior(PolygonsT const & polys, TrianglesInfo & info)
void TrianglesInfo::ListInfo::AddNeighbour(int p1, int p2, int trg)
{
// find or insert element for key
- pair<TNeighbours::iterator, bool> ret = m_neighbors.insert(make_pair(make_pair(p1, p2), trg));
+ std::pair<TNeighbours::iterator, bool> ret = m_neighbors.insert(std::make_pair(std::make_pair(p1, p2), trg));
// triangles should not duplicate
CHECK ( ret.second, ("Duplicating triangles for indices : ", p1, p2) );
@@ -83,8 +83,8 @@ int TesselateInterior(PolygonsT const & polys, TrianglesInfo & info)
template <class IterT> size_t GetBufferSize(IterT b, IterT e)
{
- vector<char> buffer;
- MemWriter<vector<char> > writer(buffer);
+ std::vector<char> buffer;
+ MemWriter<std::vector<char> > writer(buffer);
while (b != e) WriteVarUint(writer, *b++);
return buffer.size();
}
@@ -94,12 +94,12 @@ int TesselateInterior(PolygonsT const & polys, TrianglesInfo & info)
TrianglesInfo::ListInfo::FindStartTriangle(PointsInfo const & points) const
{
TIterator ret = m_neighbors.end();
- size_t cr = numeric_limits<size_t>::max();
+ size_t cr = std::numeric_limits<size_t>::max();
for (TIterator i = m_neighbors.begin(); i != m_neighbors.end(); ++i)
{
if (!m_visited[i->second] &&
- m_neighbors.find(make_pair(i->first.second, i->first.first)) == m_neighbors.end())
+ m_neighbors.find(std::make_pair(i->first.second, i->first.first)) == m_neighbors.end())
{
uint64_t deltas[3];
deltas[0] = EncodeDelta(points.m_points[i->first.first], points.m_base);
@@ -121,19 +121,19 @@ int TesselateInterior(PolygonsT const & polys, TrianglesInfo & info)
}
/// Return indexes of common edges of [to, from] triangles.
- pair<int, int> CommonEdge(Triangle const & to, Triangle const & from)
+ std::pair<int, int> CommonEdge(Triangle const & to, Triangle const & from)
{
for (int i = 0; i < 3; ++i)
{
for (int j = 0; j < 3; ++j)
{
if (to.m_p[i] == from.m_p[my::NextModN(j, 3)] && to.m_p[my::NextModN(i, 3)] == from.m_p[j])
- return make_pair(i, j);
+ return std::make_pair(i, j);
}
}
ASSERT ( false, ("?WTF? Triangles not neighbors!") );
- return make_pair(-1, -1);
+ return std::make_pair(-1, -1);
}
/// Get neighbors of 'trg' triangle, which was achieved from 'from' triangle.
@@ -147,10 +147,10 @@ int TesselateInterior(PolygonsT const & polys, TrianglesInfo & info)
int j = my::NextModN(i, 3);
int ind = 0;
- TIterator it = m_neighbors.find(make_pair(trg.m_p[j], trg.m_p[i]));
+ TIterator it = m_neighbors.find(std::make_pair(trg.m_p[j], trg.m_p[i]));
nb[ind++] = (it != m_neighbors.end()) ? it->second : empty_key;
- it = m_neighbors.find(make_pair(trg.m_p[my::NextModN(j, 3)], trg.m_p[j]));
+ it = m_neighbors.find(std::make_pair(trg.m_p[my::NextModN(j, 3)], trg.m_p[j]));
nb[ind++] = (it != m_neighbors.end()) ? it->second : empty_key;
}
@@ -158,7 +158,7 @@ int TesselateInterior(PolygonsT const & polys, TrianglesInfo & info)
uint64_t TrianglesInfo::ListInfo::CalcDelta(
PointsInfo const & points, Triangle const & from, Triangle const & to) const
{
- pair<int, int> const p = CommonEdge(to, from);
+ std::pair<int, int> const p = CommonEdge(to, from);
m2::PointU const prediction =
PredictPointInTriangle(points.m_max,
@@ -174,13 +174,13 @@ int TesselateInterior(PolygonsT const & polys, TrianglesInfo & info)
template <class TPopOrder>
void TrianglesInfo::ListInfo::MakeTrianglesChainImpl(
- PointsInfo const & points, TIterator start, vector<Edge> & chain) const
+ PointsInfo const & points, TIterator start, std::vector<Edge> & chain) const
{
chain.clear();
Triangle const fictive(start->first.second, start->first.first, -1);
- priority_queue<Edge, vector<Edge>, TPopOrder> q;
+ std::priority_queue<Edge, std::vector<Edge>, TPopOrder> q;
q.push(Edge(-1, start->second, 0, -1));
while (!q.empty())
@@ -229,7 +229,7 @@ int TesselateInterior(PolygonsT const & polys, TrianglesInfo & info)
};
void TrianglesInfo::ListInfo::MakeTrianglesChain(
- PointsInfo const & points, TIterator start, vector<Edge> & chain, bool /*goodOrder*/) const
+ PointsInfo const & points, TIterator start, std::vector<Edge> & chain, bool /*goodOrder*/) const
{
//if (goodOrder)
MakeTrianglesChainImpl<edge_greater_delta>(points, start, chain);
@@ -244,7 +244,7 @@ int TesselateInterior(PolygonsT const & polys, TrianglesInfo & info)
void TrianglesInfo::GetPointsInfo(m2::PointU const & baseP,
m2::PointU const & maxP,
- function<m2::PointU (m2::PointD)> const & convert,
+ std::function<m2::PointU (m2::PointD)> const & convert,
PointsInfo & info) const
{
info.m_base = baseP;
diff --git a/generator/tesselator.hpp b/generator/tesselator.hpp
index bb201f11c5..9375e0de62 100644
--- a/generator/tesselator.hpp
+++ b/generator/tesselator.hpp
@@ -3,18 +3,18 @@
#include "geometry/point2d.hpp"
-#include "std/function.hpp"
-#include "std/iterator.hpp"
-#include "std/list.hpp"
-#include "std/vector.hpp"
-#include "std/unordered_map.hpp"
-#include "std/utility.hpp"
+#include <functional>
+#include <iterator>
+#include <list>
+#include <unordered_map>
+#include <utility>
+#include <vector>
namespace tesselator
{
- typedef vector<m2::PointD> PointsT;
- typedef list<PointsT> PolygonsT;
+ typedef std::vector<m2::PointD> PointsT;
+ typedef std::list<PointsT> PolygonsT;
struct Triangle
{
@@ -33,7 +33,7 @@ namespace tesselator
m_p[i] = p[i];
}
- int GetPoint3(pair<int, int> const & p) const
+ int GetPoint3(std::pair<int, int> const & p) const
{
for (int i = 0; i < 3; ++i)
if (m_p[i] != p.first && m_p[i] != p.second)
@@ -48,7 +48,7 @@ namespace tesselator
struct PointsInfo
{
typedef m2::PointU PointT;
- vector<PointT> m_points;
+ std::vector<PointT> m_points;
PointT m_base, m_max;
};
@@ -60,20 +60,20 @@ namespace tesselator
{
static int empty_key;
- vector<Triangle> m_triangles;
+ std::vector<Triangle> m_triangles;
- mutable vector<bool> m_visited;
+ mutable std::vector<bool> m_visited;
// directed edge -> triangle
template <typename T1, typename T2> struct HashPair
{
- size_t operator()(pair<T1, T2> const & p) const
+ size_t operator()(std::pair<T1, T2> const & p) const
{
return my::Hash(p.first, p.second);
}
};
- using TNeighbours = unordered_map<pair<int, int>, int, HashPair<int, int>>;
+ using TNeighbours = std::unordered_map<std::pair<int, int>, int, HashPair<int, int>>;
TNeighbours m_neighbors;
void AddNeighbour(int p1, int p2, int trg);
@@ -101,7 +101,7 @@ namespace tesselator
bool HasUnvisited() const
{
- vector<bool> test;
+ std::vector<bool> test;
test.assign(m_triangles.size(), true);
return (m_visited != test);
}
@@ -110,15 +110,15 @@ namespace tesselator
private:
template <class TPopOrder>
- void MakeTrianglesChainImpl(PointsInfo const & points, TIterator start, vector<Edge> & chain) const;
+ void MakeTrianglesChainImpl(PointsInfo const & points, TIterator start, std::vector<Edge> & chain) const;
public:
- void MakeTrianglesChain(PointsInfo const & points, TIterator start, vector<Edge> & chain, bool goodOrder) const;
+ void MakeTrianglesChain(PointsInfo const & points, TIterator start, std::vector<Edge> & chain, bool goodOrder) const;
size_t GetCount() const { return m_triangles.size(); }
Triangle GetTriangle(size_t i) const { return m_triangles[i]; }
};
- list<ListInfo> m_triangles;
+ std::list<ListInfo> m_triangles;
// int m_isCCW; // 0 - uninitialized; -1 - false; 1 - true
@@ -141,7 +141,7 @@ namespace tesselator
template <class ToDo> void ForEachTriangle(ToDo toDo) const
{
- for (list<ListInfo>::const_iterator i = m_triangles.begin(); i != m_triangles.end(); ++i)
+ for (std::list<ListInfo>::const_iterator i = m_triangles.begin(); i != m_triangles.end(); ++i)
{
size_t const count = i->GetCount();
for (size_t j = 0; j < count; ++j)
@@ -154,15 +154,15 @@ namespace tesselator
// Convert points from double to uint.
void GetPointsInfo(m2::PointU const & baseP, m2::PointU const & maxP,
- function<m2::PointU (m2::PointD)> const & convert, PointsInfo & info) const;
+ std::function<m2::PointU (m2::PointD)> const & convert, PointsInfo & info) const;
/// Triangles chains processing function.
template <class EmitterT>
void ProcessPortions(PointsInfo const & points, EmitterT & emitter, bool goodOrder = true) const
{
// process portions and push out result chains
- vector<Edge> chain;
- for (list<ListInfo>::const_iterator i = m_triangles.begin(); i != m_triangles.end(); ++i)
+ std::vector<Edge> chain;
+ for (std::list<ListInfo>::const_iterator i = m_triangles.begin(); i != m_triangles.end(); ++i)
{
i->Start();
diff --git a/generator/towns_dumper.cpp b/generator/towns_dumper.cpp
index f5f0fc79c0..d6e2db02d5 100644
--- a/generator/towns_dumper.cpp
+++ b/generator/towns_dumper.cpp
@@ -5,9 +5,9 @@
#include "base/logging.hpp"
-#include "std/fstream.hpp"
-#include "std/string.hpp"
-#include "std/vector.hpp"
+#include <fstream>
+#include <string>
+#include <vector>
namespace
{
@@ -19,7 +19,7 @@ void TownsDumper::FilterTowns()
{
LOG(LINFO, ("Preprocessing started. Have", m_records.size(), "towns."));
m4::Tree<Town> resultTree;
- vector<Town> towns;
+ std::vector<Town> towns;
towns.reserve(m_records.size());
for (auto const & town : m_records)
{
@@ -57,15 +57,15 @@ void TownsDumper::FilterTowns()
LOG(LINFO, ("Preprocessing finished. Have", m_records.size(), "towns."));
}
-void TownsDumper::Dump(string const & filePath)
+void TownsDumper::Dump(std::string const & filePath)
{
FilterTowns();
ASSERT(!filePath.empty(), ());
- ofstream stream(filePath);
+ std::ofstream stream(filePath);
stream.precision(9);
for (auto const & record : m_records)
{
- string const isCapital = record.capital ? "t" : "f";
+ std::string const isCapital = record.capital ? "t" : "f";
stream << record.point.lat << ";" << record.point.lon << ";" << record.id << ";" << isCapital << std::endl;
}
}
diff --git a/generator/towns_dumper.hpp b/generator/towns_dumper.hpp
index d0fa465517..41f691ece7 100644
--- a/generator/towns_dumper.hpp
+++ b/generator/towns_dumper.hpp
@@ -6,9 +6,9 @@
#include "base/string_utils.hpp"
-#include "std/limits.hpp"
-#include "std/string.hpp"
-#include "std/vector.hpp"
+#include <limits>
+#include <string>
+#include <vector>
class TownsDumper
{
@@ -23,10 +23,10 @@ public:
uint64_t population = 1;
bool town = false;
bool capital = false;
- int admin_level = numeric_limits<int>::max();
+ int admin_level = std::numeric_limits<int>::max();
for (auto const & tag : em.Tags())
{
- string key(tag.key), value(tag.value);
+ std::string key(tag.key), value(tag.value);
if (key == "population")
{
if (!strings::to_uint64(value, population))
@@ -55,7 +55,7 @@ public:
m_records.emplace_back(em.lat, em.lon, em.id, capital, population);
}
- void Dump(string const & filePath);
+ void Dump(std::string const & filePath);
private:
void FilterTowns();
@@ -79,5 +79,5 @@ private:
}
};
- vector<Town> m_records;
+ std::vector<Town> m_records;
};
diff --git a/generator/traffic_generator.cpp b/generator/traffic_generator.cpp
index 85e4698d7f..87437785a2 100644
--- a/generator/traffic_generator.cpp
+++ b/generator/traffic_generator.cpp
@@ -15,18 +15,18 @@
#include "coding/file_container.hpp"
#include "coding/file_writer.hpp"
-#include "std/vector.hpp"
+#include <vector>
namespace traffic
{
-bool GenerateTrafficKeysFromDataFile(string const & mwmPath)
+bool GenerateTrafficKeysFromDataFile(std::string const & mwmPath)
{
try
{
- vector<TrafficInfo::RoadSegmentId> keys;
+ std::vector<TrafficInfo::RoadSegmentId> keys;
TrafficInfo::ExtractTrafficKeys(mwmPath, keys);
- vector<uint8_t> buf;
+ std::vector<uint8_t> buf;
TrafficInfo::SerializeTrafficKeys(keys, buf);
FilesContainerW writeContainer(mwmPath, FileWriter::OP_WRITE_EXISTING);
diff --git a/generator/traffic_generator.hpp b/generator/traffic_generator.hpp
index e0e0c0ef77..f09cc24cca 100644
--- a/generator/traffic_generator.hpp
+++ b/generator/traffic_generator.hpp
@@ -1,8 +1,8 @@
#pragma once
-#include "std/string.hpp"
+#include <string>
namespace traffic
{
-bool GenerateTrafficKeysFromDataFile(string const & mwmPath);
+bool GenerateTrafficKeysFromDataFile(std::string const & mwmPath);
} // namespace traffic
diff --git a/generator/unpack_mwm.cpp b/generator/unpack_mwm.cpp
index 7b83479837..6d1b8aebfe 100644
--- a/generator/unpack_mwm.cpp
+++ b/generator/unpack_mwm.cpp
@@ -7,17 +7,17 @@
#include "base/logging.hpp"
#include "base/stl_add.hpp"
-#include "std/algorithm.hpp"
-#include "std/vector.hpp"
+#include <algorithm>
+#include <vector>
-void UnpackMwm(string const & filePath)
+void UnpackMwm(std::string const & filePath)
{
LOG(LINFO, ("Unpacking mwm sections..."));
FilesContainerR container(filePath);
- vector<string> tags;
- container.ForEachTag(MakeBackInsertFunctor<vector<string> >(tags));
+ std::vector<std::string> tags;
+ container.ForEachTag(MakeBackInsertFunctor<std::vector<std::string> >(tags));
for (size_t i = 0; i < tags.size(); ++i)
{
@@ -32,7 +32,7 @@ void UnpackMwm(string const & filePath)
LOG(LINFO, ("Unpacking done."));
}
-void DeleteSection(string const & filePath, string const & tag)
+void DeleteSection(std::string const & filePath, std::string const & tag)
{
FilesContainerW(filePath, FileWriter::OP_WRITE_EXISTING).DeleteSection(tag);
}
diff --git a/generator/unpack_mwm.hpp b/generator/unpack_mwm.hpp
index 9bde622c22..9d95faf591 100644
--- a/generator/unpack_mwm.hpp
+++ b/generator/unpack_mwm.hpp
@@ -2,10 +2,10 @@
#include "base/base.hpp"
-#include "std/string.hpp"
+#include <string>
// Unpack each section of mwm into a separate file with name filePath.sectionName
-void UnpackMwm(string const & filePath);
+void UnpackMwm(std::string const & filePath);
-void DeleteSection(string const & filePath, string const & tag);
+void DeleteSection(std::string const & filePath, std::string const & tag);
diff --git a/generator/ways_merger.hpp b/generator/ways_merger.hpp
index 66b4197234..18bc6d8a04 100644
--- a/generator/ways_merger.hpp
+++ b/generator/ways_merger.hpp
@@ -3,15 +3,15 @@
#include "geometry/point2d.hpp"
-#include "std/map.hpp"
-#include "std/vector.hpp"
-#include "std/shared_ptr.hpp"
+#include <map>
+#include <memory>
+#include <vector>
template <class THolder>
class AreaWayMerger
{
- using TPointSeq = vector<m2::PointD>;
- using TWayMap = multimap<uint64_t, shared_ptr<WayElement>>;
+ using TPointSeq = std::vector<m2::PointD>;
+ using TWayMap = std::multimap<uint64_t, std::shared_ptr<WayElement>>;
using TWayMapIterator = TWayMap::iterator;
THolder & m_holder;
@@ -22,7 +22,7 @@ public:
void AddWay(uint64_t id)
{
- shared_ptr<WayElement> e(new WayElement(id));
+ std::shared_ptr<WayElement> e(new WayElement(id));
if (m_holder.GetWay(id, *e) && e->IsValid())
{
m_map.insert(make_pair(e->nodes.front(), e));
@@ -39,13 +39,13 @@ public:
TWayMapIterator i = m_map.begin();
uint64_t id = i->first;
- vector<uint64_t> ids;
+ std::vector<uint64_t> ids;
TPointSeq points;
do
{
// process way points
- shared_ptr<WayElement> e = i->second;
+ std::shared_ptr<WayElement> e = i->second;
if (collectID)
ids.push_back(e->m_wayOsmId);
diff --git a/generator/world_map_generator.hpp b/generator/world_map_generator.hpp
index cb2d4a73ff..5fabbb4c4a 100644
--- a/generator/world_map_generator.hpp
+++ b/generator/world_map_generator.hpp
@@ -44,7 +44,7 @@ public:
"borders skipped:", m_skippedBorders, "selected polygons:", m_selectedPolygons));
}
- void LoadWaterGeometry(string const & rawGeometryFileName)
+ void LoadWaterGeometry(std::string const & rawGeometryFileName)
{
LOG_SHORT(LINFO, ("Loading water geometry:", rawGeometryFileName));
FileReader reader(rawGeometryFileName);
diff --git a/platform/platform_tests/get_text_by_id_tests.cpp b/platform/platform_tests/get_text_by_id_tests.cpp
index a1d4a5b1aa..88ccebcb5b 100644
--- a/platform/platform_tests/get_text_by_id_tests.cpp
+++ b/platform/platform_tests/get_text_by_id_tests.cpp
@@ -33,15 +33,15 @@ UNIT_TEST(GetTextByIdRussianTest)
"\
{\
\"in_800_meters\":\"Через восемьсот метров.\",\
- \"make_a_slight_right_turn\":\"Плавный поворот направо.\",\
- \"take_the_6_exit\":\"Шестой поворот с кольца.\",\
+ \"make_a_slight_right_turn\":\"Держитесь правее.\",\
+ \"take_the_6_exit\":\"Сверните на шестой съезд.\",\
\"in_1_mile\":\"Через одну милю.\"\
}";
auto getRussian = platform::ForTestingGetTextByIdFactory(shortJson, "ru");
TEST_EQUAL((*getRussian)("in_800_meters"), "Через восемьсот метров.", ());
- TEST_EQUAL((*getRussian)("make_a_slight_right_turn"), "Плавный поворот направо.", ());
- TEST_EQUAL((*getRussian)("take_the_6_exit"), "Шестой поворот с кольца.", ());
+ TEST_EQUAL((*getRussian)("make_a_slight_right_turn"), "Держитесь правее.", ());
+ TEST_EQUAL((*getRussian)("take_the_6_exit"), "Сверните на шестой съезд.", ());
TEST_EQUAL((*getRussian)("in_1_mile"), "Через одну милю.", ());
TEST_EQUAL((*getRussian)("some_nonexistent_key"), "", ());
diff --git a/search/search_quality/assessment_tool/sample_view.cpp b/search/search_quality/assessment_tool/sample_view.cpp
index f584ede107..21dde29059 100644
--- a/search/search_quality/assessment_tool/sample_view.cpp
+++ b/search/search_quality/assessment_tool/sample_view.cpp
@@ -20,20 +20,35 @@
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
+#include <QtWidgets/QListWidget>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QVBoxLayout>
namespace
{
template <typename Layout>
-Layout * BuildSubLayout(QLayout & mainLayout, QWidget & parent)
+Layout * BuildSubLayout(QLayout & mainLayout, QWidget & parent, QWidget ** box)
{
- auto * box = new QWidget(&parent);
- auto * subLayout = BuildLayoutWithoutMargins<Layout>(box /* parent */);
- box->setLayout(subLayout);
- mainLayout.addWidget(box);
+ *box = new QWidget(&parent);
+ auto * subLayout = BuildLayoutWithoutMargins<Layout>(*box /* parent */);
+ (*box)->setLayout(subLayout);
+ mainLayout.addWidget(*box);
return subLayout;
}
+
+template <typename Layout>
+Layout * BuildSubLayout(QLayout & mainLayout, QWidget & parent)
+{
+ QWidget * box = nullptr;
+ return BuildSubLayout<Layout>(mainLayout, parent, &box);
+}
+
+void SetVerticalStretch(QWidget & widget, int stretch)
+{
+ auto policy = widget.sizePolicy();
+ policy.setVerticalStretch(stretch);
+ widget.setSizePolicy(policy);
+}
} // namespace
SampleView::SampleView(QWidget * parent, Framework & framework)
@@ -76,7 +91,19 @@ SampleView::SampleView(QWidget * parent, Framework & framework)
}
{
- auto * layout = BuildSubLayout<QVBoxLayout>(*mainLayout, *this /* parent */);
+ auto * layout =
+ BuildSubLayout<QVBoxLayout>(*mainLayout, *this /* parent */, &m_relatedQueriesBox);
+ SetVerticalStretch(*m_relatedQueriesBox, 1 /* stretch */);
+ layout->addWidget(new QLabel(tr("Related queries")));
+
+ m_relatedQueries = new QListWidget();
+ layout->addWidget(m_relatedQueries);
+ }
+
+ {
+ auto * layout =
+ BuildSubLayout<QVBoxLayout>(*mainLayout, *this /* parent */, &m_foundResultsBox);
+ SetVerticalStretch(*m_foundResultsBox, 4 /* stretch */);
{
auto * subLayout = BuildSubLayout<QHBoxLayout>(*layout, *this /* parent */);
@@ -91,13 +118,16 @@ SampleView::SampleView(QWidget * parent, Framework & framework)
}
{
- auto * layout = BuildSubLayout<QVBoxLayout>(*mainLayout, *this /* parent */);
+ auto * layout =
+ BuildSubLayout<QVBoxLayout>(*mainLayout, *this /* parent */, &m_nonFoundResultsBox);
+ SetVerticalStretch(*m_nonFoundResultsBox, 2 /* stretch */);
layout->addWidget(new QLabel(tr("Non found results")));
m_nonFoundResults = new ResultsView(*this /* parent */);
layout->addWidget(m_nonFoundResults);
}
+
setLayout(mainLayout);
Clear();
@@ -118,6 +148,12 @@ void SampleView::SetContents(search::Sample const & sample, bool positionAvailab
m_showViewport->setEnabled(true);
m_showPosition->setEnabled(positionAvailable);
+ m_relatedQueries->clear();
+ for (auto const & query : sample.m_relatedQueries)
+ m_relatedQueries->addItem(ToQString(query));
+ if (m_relatedQueries->count() != 0)
+ m_relatedQueriesBox->show();
+
ClearAllResults();
}
@@ -147,12 +183,16 @@ void SampleView::ShowNonFoundResults(std::vector<search::Sample::Result> const &
static_cast<SearchMarkPoint *>(guard.m_controller.CreateUserMark(result.m_pos));
mark->SetCustomSymbol("non-found-search-result");
}
+
+ if (!results.empty())
+ m_nonFoundResultsBox->show();
}
void SampleView::ClearAllResults()
{
m_foundResults->Clear();
m_nonFoundResults->Clear();
+ m_nonFoundResultsBox->hide();
m_framework.ClearSearchResultsMarks();
}
@@ -169,6 +209,9 @@ void SampleView::Clear()
m_showViewport->setEnabled(false);
m_showPosition->setEnabled(false);
+
+ m_relatedQueriesBox->hide();
+
ClearAllResults();
OnSearchCompleted();
}
diff --git a/search/search_quality/assessment_tool/sample_view.hpp b/search/search_quality/assessment_tool/sample_view.hpp
index 2da066310d..820e0e862d 100644
--- a/search/search_quality/assessment_tool/sample_view.hpp
+++ b/search/search_quality/assessment_tool/sample_view.hpp
@@ -9,6 +9,7 @@
class Framework;
class QLabel;
+class QListWidget;
class QPushButton;
class ResultsView;
class Spinner;
@@ -51,10 +52,17 @@ private:
QLabel * m_query = nullptr;
QLabel * m_langs = nullptr;
+
+ QListWidget * m_relatedQueries = nullptr;
+ QWidget * m_relatedQueriesBox = nullptr;
+
QPushButton * m_showViewport = nullptr;
QPushButton * m_showPosition = nullptr;
ResultsView * m_foundResults = nullptr;
+ QWidget * m_foundResultsBox = nullptr;
+
ResultsView * m_nonFoundResults = nullptr;
+ QWidget * m_nonFoundResultsBox = nullptr;
QMargins m_rightAreaMargins;
QMargins m_defaultMargins;
diff --git a/search/search_quality/sample.cpp b/search/search_quality/sample.cpp
index bc666f8012..988149c270 100644
--- a/search/search_quality/sample.cpp
+++ b/search/search_quality/sample.cpp
@@ -123,7 +123,9 @@ bool Sample::operator<(Sample const & rhs) const
return m_posAvailable < rhs.m_posAvailable;
if (m_viewport != rhs.m_viewport)
return LessRect(m_viewport, rhs.m_viewport);
- return Less(m_results, rhs.m_results);
+ if (!Equal(m_results, rhs.m_results))
+ return Less(m_results, rhs.m_results);
+ return Less(m_relatedQueries, rhs.m_relatedQueries);
}
bool Sample::operator==(Sample const & rhs) const { return !(*this < rhs) && !(rhs < *this); }
@@ -171,6 +173,7 @@ void Sample::DeserializeFromJSONImpl(json_t * root)
FromJSONObject(root, "viewport", m_viewport);
FromJSONObjectOptional(root, "results", m_results);
+ FromJSONObjectOptional(root, "related_queries", m_relatedQueries);
}
void Sample::SerializeToJSONImpl(json_t & root) const
@@ -180,6 +183,7 @@ void Sample::SerializeToJSONImpl(json_t & root) const
ToJSONObject(root, "position", m_pos);
ToJSONObject(root, "viewport", m_viewport);
ToJSONObject(root, "results", m_results);
+ ToJSONObject(root, "related_queries", m_relatedQueries);
}
void Sample::FillSearchParams(search::SearchParams & params) const
diff --git a/search/search_quality/sample.hpp b/search/search_quality/sample.hpp
index 4614d8f8b1..94cfcdceae 100644
--- a/search/search_quality/sample.hpp
+++ b/search/search_quality/sample.hpp
@@ -62,6 +62,7 @@ struct Sample
bool m_posAvailable = false;
m2::RectD m_viewport = m2::RectD(0, 0, 0, 0);
std::vector<Result> m_results;
+ std::vector<strings::UniString> m_relatedQueries;
};
void FromJSONObject(json_t * root, string const & field, Sample::Result::Relevance & relevance);
diff --git a/search/search_quality/search_quality_tests/sample_test.cpp b/search/search_quality/search_quality_tests/sample_test.cpp
index 542e50892d..c37f87f1d0 100644
--- a/search/search_quality/search_quality_tests/sample_test.cpp
+++ b/search/search_quality/search_quality_tests/sample_test.cpp
@@ -39,6 +39,8 @@ void SampleTest::Init()
cubaRes.m_pos = {-80.832886, 15.521132748163712};
cubaRes.m_houseNumber = "";
m_cuba.m_results = {cubaRes};
+ m_cuba.m_relatedQueries = {strings::MakeUniString("Cuba Libre"),
+ strings::MakeUniString("Patria o Muerte")};
m_riga.m_query = strings::MakeUniString("riga");
m_riga.m_locale = "en";
@@ -90,7 +92,8 @@ UNIT_CLASS_TEST(SampleTest, Smoke)
},
"houseNumber": ""
}
- ]
+ ],
+ "related_queries": ["Cuba Libre", "Patria o Muerte"]
}
)EOF";
@@ -138,7 +141,7 @@ UNIT_CLASS_TEST(SampleTest, Arrays)
{
string lines;
lines.append(
- R"({"query": "cuba", "locale": "en", "position": {"x": 37.618706, "y": 99.53730574302003}, "viewport": {"minx": 37.1336, "miny": 67.1349, "maxx": 38.0314, "maxy": 67.7348}, "results": [{"name": "Cuba", "relevancy": "relevant", "types": ["place-country"], "position": {"x": -80.832886, "y": 15.521132748163712}, "houseNumber": ""}]})");
+ R"({"query": "cuba", "locale": "en", "position": {"x": 37.618706, "y": 99.53730574302003}, "viewport": {"minx": 37.1336, "miny": 67.1349, "maxx": 38.0314, "maxy": 67.7348}, "results": [{"name": "Cuba", "relevancy": "relevant", "types": ["place-country"], "position": {"x": -80.832886, "y": 15.521132748163712}, "houseNumber": ""}], "related_queries": ["Patria o Muerte", "Cuba Libre"]})");
lines.append("\n");
lines.append(
diff --git a/sound/tts/sound.csv b/sound/tts/sound.csv
index 3eab8b12ab..59d8282a4f 100644
--- a/sound/tts/sound.csv
+++ b/sound/tts/sound.csv
@@ -1,18 +1,18 @@
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,id,en,ru,pl,sv,tr,fr,nl,de,ar,el,it,cs,hu,ro,ja,da,es,,fi,hi,hr,id,ko,pt,sk,sw,th,zh-Hant,zh-Hans,
,id,English,Russian,Polish,Swedish,Turkish,French,Dutch,German,Arabic,Greek,Italian,Czech,Hungarian,Romanian,Japanese,Danish,Spanish,Spanish Catalian,Finnish,Hindi,Croatian,Indonesian,Korean,Portugese,Slovak,Swahili,Thai,Chinese Traditional,Chinese Simplified,English_GB
-Commands. ,make_a_slight_right_turn,Slight right.,Плавный поворот направо.,Lekko w prawo.,Svagt höger.,Hafif sağa.,Légèrement à droite.,Houd rechts aan.,Leicht rechts.,إلى اليمين قليلا.,Ανοιχτή στροφή δεξιά.,Mantenersi a destra.,Mírně doprava.,Kanyarodjon enyhén jobbra.,Virați ușor la dreapta.,緩やかに右折。,Blødt til højre.,Gire ligeramente a la derecha.,Gir lleu a la dreta.,Loiva oikea.,थोड़ा सा दाएं मुड़े।,Blago udesno.,Sedikit ke kanan.,약간 우회전.,Ligeira curva à direita.,Mierne doprava.,Enda kulia kidogo.,ขวาเล็กน้อย,稍向右轉。,向右微转。,
-,make_a_right_turn,Turn right.,Поворот направо.,Jedź w prawo.,Sväng höger.,Sağa dönün.,Tournez à droite.,Sla rechtsaf.,Rechts abbiegen.,انعطف يمينا.,Στρίψε δεξιά.,Gira a destra.,Otočte se doprava.,Forduljon jobbra.,Virați la dreapta.,右に曲がります。,Drej til højre.,Gire a la derecha.,Gireu a la dreta.,Käänny oikealle.,दायीं ओर मुड़ें।,Skrenite udesno.,Belok kanan.,우회전하십시오.,Vire à direita.,Odbočte doprava.,Zunguka upande wa kulia.,เลี้ยวขวา,右轉。,右转。,
-,make_a_sharp_right_turn,Sharp right.,Крутой поворот направо.,Ostro w prawo.,Skarpt höger.,Tam sağa.,À droite toute.,Scherp rechtsaf.,Scharf rechts.,إلى أقصى اليمين.,Κλειστή στροφή δεξιά.,Svoltare a destra.,Ostře doprava.,Kanyarodjon élesen jobbra.,Virați strâns la dreapta.,急に右折。,Skarpt til højre.,Gire bruscamente a la derecha.,Gir fort la dreta.,Jyrkkä oikea.,तीव्रता से दाएं मुड़े।,Oštro udesno.,Belok tajam ke kanan.,급우회전.,Curva acentuada à direita.,Ostro doprava.,Fanya kulia mkali.,หักมุมขวา,向右急轉。,向右急转。,
-,enter_the_roundabout,Enter the roundabout.,Въезд на кольцо.,Wjedź na rondo.,Kör in i rondellen.,Kavşağa girin.,Prenez le rond-point.,Rij de rotonde op.,Fahren Sie in den Kreisverkehr.,اتجه إلى الطريق الدوار.,Μπείτε στον κυκλικό κόμβο.,Entra nella rotonda.,Vjeďte na kruhový objezd.,Hajtson be a körforgalomba.,Intrați în sensul giratoriu.,ロータリー入口です。,Kør ind i rundkørslen.,Entre a la rotonda.,Entreu a la rotonda.,Aja liikenneympyrään.,गोल चक्‍कर में प्रवेश करें।,Uđite na zaobilaznicu.,Masuk ke bundaran.,로터리 진입입니다.,Entre na rotunda.,Vojdite na kruhový objazd.,Ingia kwenye mzunguko.,เข้าสู่วงเวียน,進入環島。,进入环岛。,Enter the roundabout.
-,leave_the_roundabout,Exit from the roundabout.,Съезд с кольца.,Zjazd z ronda.,Lämna rondellen.,Kavşaktan çık.,Sortir du rond-point.,Verlaat de rotonde.,Aus dem Kreisverkehr ausfahren.,اخرج من الدوار.,Έξοδος από τον κυκλικό κόμβο.,Esci dalla rotonda.,Vyjeďte z kruhového objezdu.,Hagyja el a körforgalmat.,Ieșiți din sensul giratoriu.,ロータリーから抜けてください。,Forlad rundkørslen.,Salga de la rotonda.,Sortir de la rotonda.,Poistu liikenneympyrästä.,परिपथ से बाहर निकलें।,Napustite zaobilaznicu.,Keluar dari bundaran.,원형 교차로에서 나갑니다.,Saia da rotunda.,Výjazd z kruhového objazdu.,Toka kwenye mzunguko wa barabara.,ออกจากวงเวียน,退出環島。,退出环岛。,Leave the roundabout.
-,make_a_slight_left_turn,Slight left.,Плавный поворот налево.,Lekko w lewo.,Svagt vänster.,Hafif sola.,Légèrement à gauche.,Houd links aan.,Leicht links.,إلى اليسار قليلاً.,Ανοιχτή στροφή αριστερά.,Mantenersi a sinistra.,Mírně doleva.,Kanyarodjon enyhén balra.,Virați ușor la stânga.,緩やかに左折。,Blødt til venstre.,Gire ligeramente a la izquierda.,Gir lleu a l'esquerra.,Loiva vasen.,थोड़ा सा बाएं मुड़े।,Blago ulijevo.,Sedikit ke kiri.,약간 좌회전.,Ligeira curva à esquerda.,Mierne doľava.,Enda kushoto kidogo.,ซ้ายเล็กน้อย,稍向左轉。,向左微转。,
-,make_a_left_turn,Turn left. ,Поворот налево.,Jedź w lewo.,Sväng vänster.,Sola dönün.,Tournez à gauche.,Sla linksaf.,Links abbiegen.,انعطف يسارا.,Στρίψε αριστερά.,Gira a sinistra.,Otočte se doleva.,Forduljon balra.,Virați la stânga.,左に曲がります。,Drej til venstre.,Gire a la izquierda.,Gireu a l´esquerra.,Käänny vasemmalle.,बायीं ओर मुड़ें।,Skrenite ulijevo.,Belok kiri.,좌회전하십시오.,Vire à esquerda.,Odbočte doľava.,Zunguka upande wa kushoto.,เลี้ยวซ้าย,左轉。,左转。,Make a left turn.
-,make_a_sharp_left_turn,Sharp left.,Крутой поворот налево.,Ostro w lewo.,Skarpt vänster.,Tam sola.,À gauche toute.,Scherp linksaf.,Scharf links.,إلى أقصى اليسار.,Κλειστή στροφή αριστερά.,Svoltare a sinistra.,Ostře doleva.,Kanyarodjon élesen balra.,Virați strâns la stânga.,急に左折。,Skarpt til venstre.,Gire bruscamente a la izquierda.,Gir fort a l'esquerra.,Jyrkkä vasen.,तीव्रता से बाएं मुड़े।,Oštro ulijevo.,Belok tajam ke kiri.,급좌회전.,Curva acentuada à esquerda.,Ostro doľava.,Fanya kushoto mkali.,หักมุมซ้าย,向左急轉。,向左急转。,
-,make_a_u_turn,Make a u-turn.,Разворот.,Zawróć.,Gör en U-sväng.,U dönüşü yapın.,Faites demi-tour.,Keer om.,Wenden Sie.,انعطف بدوران كامل.,Κάντε αναστροφή.,Effettua un'inversione a U.,Otočte se o sto osmdesát stupňů.,Forduljon vissza.,Întoarceți-vă o sută optzeci de grade.,Uターンです。,Vend om.,Cambie de sentido.,Feu un canvi de sentit.,Tee U-käännös.,यू-टर्न लें।,Napravite poluzaokret.,Putar balik.,유턴입니다.,Faça inversão de marcha.,Otočte sa o stoosemdesiat stupňov.,Geuka urudi ulikotoka.,กลับรถ,掉頭。,掉头。,Make a u-turn.
+Commands. ,make_a_slight_right_turn,Slight right.,Держитесь правее.,Lekko w prawo.,Svagt höger.,Hafif sağa.,Légèrement à droite.,Houd rechts aan.,Leicht rechts.,إلى اليمين قليلا.,Ανοιχτή στροφή δεξιά.,Mantenersi a destra.,Mírně doprava.,Kanyarodjon enyhén jobbra.,Virați ușor la dreapta.,緩やかに右折。,Blødt til højre.,Gire ligeramente a la derecha.,Gir lleu a la dreta.,Loiva oikea.,थोड़ा सा दाएं मुड़े।,Blago udesno.,Sedikit ke kanan.,약간 우회전.,Ligeira curva à direita.,Mierne doprava.,Enda kulia kidogo.,ขวาเล็กน้อย,稍向右轉。,向右微转。,
+,make_a_right_turn,Turn right.,Поверните направо.,Jedź w prawo.,Sväng höger.,Sağa dönün.,Tournez à droite.,Sla rechtsaf.,Rechts abbiegen.,انعطف يمينا.,Στρίψε δεξιά.,Gira a destra.,Otočte se doprava.,Forduljon jobbra.,Virați la dreapta.,右に曲がります。,Drej til højre.,Gire a la derecha.,Gireu a la dreta.,Käänny oikealle.,दायीं ओर मुड़ें।,Skrenite udesno.,Belok kanan.,우회전하십시오.,Vire à direita.,Odbočte doprava.,Zunguka upande wa kulia.,เลี้ยวขวา,右轉。,右转。,
+,make_a_sharp_right_turn,Sharp right.,Резко поверните направо.,Ostro w prawo.,Skarpt höger.,Tam sağa.,À droite toute.,Scherp rechtsaf.,Scharf rechts.,إلى أقصى اليمين.,Κλειστή στροφή δεξιά.,Svoltare a destra.,Ostře doprava.,Kanyarodjon élesen jobbra.,Virați strâns la dreapta.,急に右折。,Skarpt til højre.,Gire bruscamente a la derecha.,Gir fort la dreta.,Jyrkkä oikea.,तीव्रता से दाएं मुड़े।,Oštro udesno.,Belok tajam ke kanan.,급우회전.,Curva acentuada à direita.,Ostro doprava.,Fanya kulia mkali.,หักมุมขวา,向右急轉。,向右急转。,
+,enter_the_roundabout,Enter the roundabout.,Поверните на кольцо.,Wjedź na rondo.,Kör in i rondellen.,Kavşağa girin.,Prenez le rond-point.,Rij de rotonde op.,Fahren Sie in den Kreisverkehr.,اتجه إلى الطريق الدوار.,Μπείτε στον κυκλικό κόμβο.,Entra nella rotonda.,Vjeďte na kruhový objezd.,Hajtson be a körforgalomba.,Intrați în sensul giratoriu.,ロータリー入口です。,Kør ind i rundkørslen.,Entre a la rotonda.,Entreu a la rotonda.,Aja liikenneympyrään.,गोल चक्‍कर में प्रवेश करें।,Uđite na zaobilaznicu.,Masuk ke bundaran.,로터리 진입입니다.,Entre na rotunda.,Vojdite na kruhový objazd.,Ingia kwenye mzunguko.,เข้าสู่วงเวียน,進入環島。,进入环岛。,Enter the roundabout.
+,leave_the_roundabout,Exit from the roundabout.,Сверните с кольца.,Zjazd z ronda.,Lämna rondellen.,Kavşaktan çık.,Sortir du rond-point.,Verlaat de rotonde.,Aus dem Kreisverkehr ausfahren.,اخرج من الدوار.,Έξοδος από τον κυκλικό κόμβο.,Esci dalla rotonda.,Vyjeďte z kruhového objezdu.,Hagyja el a körforgalmat.,Ieșiți din sensul giratoriu.,ロータリーから抜けてください。,Forlad rundkørslen.,Salga de la rotonda.,Sortir de la rotonda.,Poistu liikenneympyrästä.,परिपथ से बाहर निकलें।,Napustite zaobilaznicu.,Keluar dari bundaran.,원형 교차로에서 나갑니다.,Saia da rotunda.,Výjazd z kruhového objazdu.,Toka kwenye mzunguko wa barabara.,ออกจากวงเวียน,退出環島。,退出环岛。,Leave the roundabout.
+,make_a_slight_left_turn,Slight left.,Держитесь левее.,Lekko w lewo.,Svagt vänster.,Hafif sola.,Légèrement à gauche.,Houd links aan.,Leicht links.,إلى اليسار قليلاً.,Ανοιχτή στροφή αριστερά.,Mantenersi a sinistra.,Mírně doleva.,Kanyarodjon enyhén balra.,Virați ușor la stânga.,緩やかに左折。,Blødt til venstre.,Gire ligeramente a la izquierda.,Gir lleu a l'esquerra.,Loiva vasen.,थोड़ा सा बाएं मुड़े।,Blago ulijevo.,Sedikit ke kiri.,약간 좌회전.,Ligeira curva à esquerda.,Mierne doľava.,Enda kushoto kidogo.,ซ้ายเล็กน้อย,稍向左轉。,向左微转。,
+,make_a_left_turn,Turn left. ,Поверните налево.,Jedź w lewo.,Sväng vänster.,Sola dönün.,Tournez à gauche.,Sla linksaf.,Links abbiegen.,انعطف يسارا.,Στρίψε αριστερά.,Gira a sinistra.,Otočte se doleva.,Forduljon balra.,Virați la stânga.,左に曲がります。,Drej til venstre.,Gire a la izquierda.,Gireu a l´esquerra.,Käänny vasemmalle.,बायीं ओर मुड़ें।,Skrenite ulijevo.,Belok kiri.,좌회전하십시오.,Vire à esquerda.,Odbočte doľava.,Zunguka upande wa kushoto.,เลี้ยวซ้าย,左轉。,左转。,Make a left turn.
+,make_a_sharp_left_turn,Sharp left.,Резко поверните налево.,Ostro w lewo.,Skarpt vänster.,Tam sola.,À gauche toute.,Scherp linksaf.,Scharf links.,إلى أقصى اليسار.,Κλειστή στροφή αριστερά.,Svoltare a sinistra.,Ostře doleva.,Kanyarodjon élesen balra.,Virați strâns la stânga.,急に左折。,Skarpt til venstre.,Gire bruscamente a la izquierda.,Gir fort a l'esquerra.,Jyrkkä vasen.,तीव्रता से बाएं मुड़े।,Oštro ulijevo.,Belok tajam ke kiri.,급좌회전.,Curva acentuada à esquerda.,Ostro doľava.,Fanya kushoto mkali.,หักมุมซ้าย,向左急轉。,向左急转。,
+,make_a_u_turn,Make a u-turn.,Развернитесь.,Zawróć.,Gör en U-sväng.,U dönüşü yapın.,Faites demi-tour.,Keer om.,Wenden Sie.,انعطف بدوران كامل.,Κάντε αναστροφή.,Effettua un'inversione a U.,Otočte se o sto osmdesát stupňů.,Forduljon vissza.,Întoarceți-vă o sută optzeci de grade.,Uターンです。,Vend om.,Cambie de sentido.,Feu un canvi de sentit.,Tee U-käännös.,यू-टर्न लें।,Napravite poluzaokret.,Putar balik.,유턴입니다.,Faça inversão de marcha.,Otočte sa o stoosemdesiat stupňov.,Geuka urudi ulikotoka.,กลับรถ,掉頭。,掉头。,Make a u-turn.
,go_straight,Go straight.,Двигайтесь прямо.,Jedź prosto.,Åk rakt framåt.,Düz ilerleyin.,Continuez tout droit.,Rij rechtdoor.,Fahren Sie geradeaus.,انطلق مباشرة.,Συνεχίστε ευθεία.,Sempre dritto.,Jeďte rovně.,Hajtson előre.,Mergeți înainte.,直進です。,Fortsæt lige ud.,Continúe recto.,Seguiu recte.,Aja suoraan.,सीधे चलें।,Idite ravno.,Lurus terus.,직진입니다.,Siga em frente.,Choďte rovno.,Pita kabisa.,ตรงไป,直行。,直行。,Go straight.
,destination,You’ll arrive.,Вы прибудете в пункт назначения.,Dojedziesz.,Är du framme.,Varacaksınız.,Vous arriverez.,Arriveert u.,Werden Sie ankommen.,سوف تصل.,Θα φτάσετε.,Arriverai.,Přijedete.,Megérkezik.,Veți sosi.,到着します。,Ankommer du.,Llegará a su destino.,Arribareu.,Olet perillä.,गंतव्य स्थान,Stižete.,Anda akan tiba.,도착할 예정입니다.,Você vai chegar.,Dorazíte.,Utawasili.,คุณจะถึง,您將到達。,您将到达。,
-,you_have_reached_the_destination,You have arrived.,Вы прибыли.,Dotarłeś do celu.,Du har anlänt.,Vardınız.,Vous êtes arrivé.,Bestemming bereikt.,Sie sind angekommen.,لقد وصلت.,Έχετε Φτάσει.,Sei arrivato.,Jste na místě.,Ön megérkezett.,Ați ajuns.,到着。,Du er ankommet.,Ha llegado a su destino.,Heu arribat.,Olet saapunut.,आप पहुंच गए हैं।,Stigli ste.,Anda sudah sampai.,도착했습니다.,Chegou.,Dorazili ste do cieľa.,Umewasili mwisho wa safari.,คุณมาถึงแล้ว,您已抵達,您已抵达。,You have reached the destination.
+,you_have_reached_the_destination,You have arrived.,Вы прибыли в пункт назначения.,Dotarłeś do celu.,Du har anlänt.,Vardınız.,Vous êtes arrivé.,Bestemming bereikt.,Sie sind angekommen.,لقد وصلت.,Έχετε Φτάσει.,Sei arrivato.,Jste na místě.,Ön megérkezett.,Ați ajuns.,到着。,Du er ankommet.,Ha llegado a su destino.,Heu arribat.,Olet saapunut.,आप पहुंच गए हैं।,Stigli ste.,Anda sudah sampai.,도착했습니다.,Chegou.,Dorazili ste do cieľa.,Umewasili mwisho wa safari.,คุณมาถึงแล้ว,您已抵達,您已抵达。,You have reached the destination.
Distances. Metric system: meters and kilometers.,in_50_meters,In fifty meters,Через пятьсот метров,Za pięćdziesiąt metrów,Om femtio meter,Elli metre sonra,Dans cinquante mètres,Over vijftig meter,In fünfzig Metern,بعد خمسين مترًا,Σε πενήντα μέτρα,Tra cinquanta metri,Za padesát metrů,Ötven méter után,După cincizeci de metri,五十メートル先,Om halvtreds meter,En cincuenta metros,D'aquí a cinquanta metres,Viidenkymmenen metrin päässä,पचास मीटर में।,Za pedeset metara,Setelah lima puluh meter,오십 미터 앞,A cinquenta metros,Po päťdesiatich metroch,Kabla ya mita hamsini,อีกห้าสิบเมตร,前方五十米,前方五十米,In 50 metres.
,in_100_meters,In one hundred meters,Через сто метров,Za sto metrów,Om ett hundra meter,Yüz metre sonra,Dans cents mètres,Over honderd meter,In einhundert Metern,بعد مئة متر,Σε εκατό μέτρα,Tra cento metri,Za sto metrů,Száz méter után,După o sută de metri,百メートル先,Om et hundrede meter,En cien metros,D'aquí a cent metres,Sadan metrin päässä,एक सौ मीटर में।,Za stotinu metara,Setelah seratus meter,백 미터 앞,A cem metros,Po sto metroch,Kabla ya mita mia moja,อีกหนึ่งร้อยเมตร,前方一百米,前方一百米,In 100 metres.
,in_200_meters,In two hundred meters,Через двести метров,Za dwieście metrów,Om två hundra meter,İki yüz metre sonra,Dans deux cents mètres,Over tweehonderd meter,In zweihundert Metern,بعد مئتين متر,Σε διακόσια μέτρα,Tra duecento metri,Za dvě stě metrů,Kétszáz méter után,După două sute de metri,二百メートル先,Om to hundrede meter,En doscientos metros,D'aquí a dos-cents metres,Kahdensadan metrin päässä,दो सौ मीटर में।,Za dvije stotine metara,Setelah dua ratus meter,이백 미터 앞,A duzentos metros,Po dvesto metroch,Kabla ya mita mia mbili,อีกสองร้อยเมตร,前方二百米,前方两百米,In 200 metres.
@@ -31,17 +31,17 @@ Distances. Metric system: meters and kilometers.,in_50_meters,In fifty meters,Ч
,in_2_5_kilometers,In two and a half kilometers,Через два с половиной километра,Za dwa i pół kilometra,Om två och en halv kilometer,İki buçuk kilometre sonra,Dans deux virgule cinq kilomètres,Over tweeëneenhalve kilometer,In zweieinhalb Kilometern,بعد كيلو مترين ونصف,Σε τρισήμιση χιλιόμετρα,Tra due chilometri e mezzo,Za dva a půl kilometru,Két és fél kilométer után,După doi kilometri și jumătate,二.五キロ先,Om en kilometer,En dos kilómetros y medio,D'aquí a dos quilòmetres i mig,Kahden ja puolen kilometrin päässä,ढाई किलोमीटर में।,Za dva i pol kilometra,Setelah dua setengah kilometer,이점오 킬로미터 앞,A dois quilómetros e meio,Po dva a pol kilometri,Kabla ya kilomita mbili na nusu,อีกสองกิโลเมตรครึ่ง,前方二千五百米,前方两点五千米,In two and a half kilometres.
,in_3_kilometers,In three kilometers,Через три километра,Za trzy kilometry,Om tre kilometer,Üç kilometre sonra,Dans trois kilomètres,Over drie kilometer,In dreieinhalb Kilometern,بعد ثلاثة كيلو مترات,Σε τρία χιλιόμετρα,Tra tre chilometri,Za tři kilometry,Három kilométer után,După trei kilometri,三キロ先,Om tre kilometer,En tres kilómetros,D'aquí a tres quilòmetres,Kolmen kilometrin päässä,तीन किलोमीटर में।,Za tri kilometra,Setelah tiga kilometer,삼 킬로미터 앞,A três quilômetros,Po troch kilometroch,Kabla ya kilomita tatu,อีกสามกิโลเมตร,前方三千米,前方三千米,In 3 kilometres.
Linking word. (It is used like distances.),then,Then,Затем,Następnie,Efter det,Sonra,Puis,Daarna,Danach,ثم,Στη συνέχεια,Quindi,Poté,Majd,Apoi,その先,Derefter,Después,Després,Sitten,फिर।,Zatim,Lalu.,그 다음,Depois,Potom,Kisha,จากนั้น,然後,然后,Then.
-,take_the_1_exit,Take the first exit.,Первый поворот с кольца.,Zjedź pierwszym zjazdem.,Ta första avfarten.,İlk çıkıştan çıkın.,Prenez la première sortie.,Neem de eerste afslag.,Nehmen Sie die erste Ausfahrt.,اسلك المخرج الأول.,Πάρτε την πρώτη έξοδο.,Prendi la prima uscita.,Vyjeďte prvním výjezdem.,Hajtson ki az első kijáratnál.,Folosiți prima ieșire.,一番目の出口です。,Tag den første afkørsel.,Tome la primera salida.,Agafeu la primera sortida.,Poistu seuraavassa liittymässä.,पहला एग्जिट लें।,Izađite na prvom izlazu.,Ambil jalan keluar pertama.,첫 번째 출구입니다.,Saia na primeira saída.,Opustite kruhový objazd na prvom výjazde.,Ingia barabara ya kwanza ya kutoka.,ออกทางออกที่หนึ่ง,取道第一個出口。,取道第一个出口。,Take the first exit.
-,take_the_2_exit,Take the second exit.,Второй поворот с кольца.,Zjedź drugim zjazdem.,Ta andra avfarten.,İkinci çıkıştan çıkın.,Prenez la deuxième sortie.,Neem de tweede afslag.,Nehmen Sie die zweite Ausfahrt.,اسلك المخرج الثاني.,Πάρτε τη δεύτερη έξοδο.,Prendi la seconda uscita.,Vyjeďte druhým výjezdem.,Hajtson ki a második kijáratnál.,Folosiți a doua ieșire.,二番目の出口です。,Tag den anden afkørsel.,Tome la segunda salida.,Agafeu la segona sortida.,Poistu toisessa liittymässä.,दूसरा एग्जिट लें।,Izađite na drugom izlazu.,Ambil jalan keluar kedua.,두 번째 출구입니다.,Saia na segunda saída.,Opustite kruhový objazd na druhom výjazde.,Ingia barabara ya pili ya kutoka.,ออกทางออกที่สอง,取道第二個出口。,取道第二个出口。,Take the second exit.
-,take_the_3_exit,Take the third exit.,Третий поворот с кольца.,Zjedź trzecim zjazdem.,Ta tredje avfarten.,Üçüncü çıkıştan çıkın.,Prenez la troisième sortie.,Neem de derde afslag.,Nehmen Sie die dritte Ausfahrt.,اسلك المخرج الثالث.,Πάρτε την τρίτη έξοδο.,Prendi la terza uscita.,Vyjeďte třetím výjezdem.,Hajtson ki a harmadik kijáratnál.,Folosiți a treia ieșire.,三番目の出口です。,Tag den tredje afkørsel.,Tome la tercera salida.,Agafeu la tercera sortida.,Poistu kolmannessa liittymässä.,तीसरा एग्जिट लें।,Izađite na trećem izlazu.,Ambil jalan keluar ketiga.,세 번째 출구입니다.,Saia na terceira saída.,Opustite kruhový objazd na treťom výjazde.,Ingia barabara ya tatu ya kutoka.,ออกทางออกที่สาม,取道第三個出口。,取道第三个出口。,Take the third exit.
-,take_the_4_exit,Take the fourth exit.,Четвертый поворот с кольца.,Zjedź czwartym zjazdem.,Ta fjärde avfarten.,Dördüncü çıkıştan çıkın.,Prenez la quatrième sortie.,Neem de vierde afslag.,Nehmen Sie die vierte Ausfahrt.,اسلك المخرج الرابع.,Πάρτε την τέταρτη έξοδο.,Prendi la quarta uscita.,Vyjeďte čtvrtým výjezdem.,Hajtson ki a negyedik kijáratnál.,Folosiți a patra ieșire.,四番目の出口です。,Tag den fjerde afkørsel.,Tome la cuarta salida.,Agafeu la quarta sortida.,Poistu neljännessä liittymässä.,चौथा एग्जिट लें।,Izađite na četvrtom izlazu.,Ambil jalan keluar keempat,네 번째 출구입니다.,Saia na quarta saída.,Opustite kruhový objazd na štvrtom výjazde.,Ingia barabara ya nne ya kutoka.,ออกทางออกที่สี่,取道第四個出口。,取道第四个出口。,Take the 4th exit.
-,take_the_5_exit,Take the fifth exit.,Пятый поворот с кольца.,Zjedź piątym zjazdem.,Ta femte avfarten.,Beşinci çıkıştan çıkın.,Prenez la cinquième sortie.,Neem de vijfde afslag.,Nehmen Sie die fünfte Ausfahrt.,اسلك المخرج الخامس.,Πάρτε την πέμπτη έξοδο.,Prendi la quinta uscita.,Vyjeďte pátým výjezdem.,Hajtson ki a ötödik kijáratnál.,Folosiți a cincea ieșire.,五番目の出口です。,Tag den femte afkørsel.,Tome la quinta salida.,Agafeu la cinquena sortida.,Poistu viidennessä liittymässä.,पाँचवाँ एग्जिट लें।,Izađite na petom izlazu.,Ambil jalan keluar kelima.,다섯 번째 출구입니다.,Saia na quinta saída.,Opustite kruhový objazd na piatom výjazde.,Ingia barabara ya tano ya kutoka.,ออกทางออกที่ห้า,取道第五個出口。,取道第五个出口。,Take the 5th exit.
-,take_the_6_exit,Take the sixth exit.,Шестой поворот с кольца.,Zjedź szóstym zjazdem.,Ta sjätte avfarten.,Altıncı çıkıştan çıkın.,Prenez la sixième sortie.,Neem de zesde afslag.,Nehmen Sie die sechste Ausfahrt.,اسلك المخرج السادس.,Πάρτε την έκτη έξοδο.,Prendi la sesta uscita.,Vyjeďte šestým výjezdem.,Hajtson ki a hatodik kijáratnál.,Folosiți a șasea ieșire.,六番目の出口です。,Tag den sjette afkørsel.,Tome la sexta salida.,Agafeu la sisena sortida.,Poistu kuudennessa liittymässä.,छठा एग्जिट लें।,Izađite na šestom izlazu.,Ambil jalan keluar keenam.,여섯 번째 출구입니다.,Saia na sexta saída.,Opustite kruhový objazd na šiestom výjazde.,Ingia barabara ya sita ya kutoka.,ออกทางออกที่หก,取道第六個出口。,取道第六个出口。,Take the 6th exit.
-,take_the_7_exit,Take the seventh exit.,Седьмой поворот с кольца.,Zjedź siódmym zjazdem.,Ta sjunde avfarten.,Yedinci çıkıştan çıkın.,Prenez la septième sortie.,Neem de zevende afslag.,Nehmen Sie die siebte Ausfahrt.,اسلك المخرج السابع.,Πάρτε την έβδομη έξοδο.,Prendi la settima uscita.,Vyjeďte sedmým výjezdem.,Hajtson ki a hetedik kijáratnál.,Folosiți a șaptea ieșire.,七番目の出口です。,Tag den syvende afkørsel.,Tome la séptima salida.,Agafeu la setena sortida.,Poistu seitsemännessä liittymässä.,सातवाँ एग्जिट लें।,Izađite na sedmom izlazu.,Ambil jalan keluar ketujuh.,일곱 번째 출구입니다.,Saia na sétima saída.,Opustite kruhový objazd na siedmom výjazde.,Ingia barabara ya saba ya kutoka.,ออกทางออกที่เจ็ด,取道第七個出口。,取道第七个出口。,Take the 7th exit.
-,take_the_8_exit,Take the eighth exit.,Восьмой поворот с кольца.,Zjedź ósmym zjazdem.,Ta åttonde avfarten.,Sekizinci çıkıştan çıkın.,Prenez la huitième sortie.,Neem de achtste afslag.,Nehmen Sie die achte Ausfahrt.,اسلك المخرج الثامن.,Πάρτε την όγδοη έξοδο.,Prendi l'ottava uscita.,Vyjeďte osmým výjezdem.,Hajtson ki a nyolcadik kijáratnál.,Folosiți a opta ieșire.,八番目の出口です。,Tag den ottende afkørsel.,Tome la octava salida.,Agafeu la vuitena sortida.,Poistu kahdeksannessa liittymässä.,आठवाँ एग्जिट लें।,Izađite na osmom izlazu.,Ambil jalan keluar kedelapan.,여덟 번째 출구입니다.,Saia na oitava saída.,Opustite kruhový objazd na ôsmom výjazde.,Ingia barabara ya nane ya kutoka.,ออกทางออกที่แปด,取道第八個出口。,取道第八个出口。,Take the 8th exit.
-,take_the_9_exit,Take the ninth exit.,Девятый поворот с кольца.,Zjedź dziewiątym zjazdem.,Ta nionde avfarten.,Dokuzuncu çıkıştan çıkın.,Prenez la neuvième sortie.,Neem de negende afslag.,Nehmen Sie die neunte Ausfahrt.,اسلك المخرج التاسع.,Πάρτε την έννατη έξοδο.,Prendi la nona uscita.,Vyjeďte devátým výjezdem.,Hajtson ki a kilencedik kijáratnál.,Folosiți a noua ieșire.,九番目の出口です。,Tag den niende afkørsel.,Tome la novena salida.,Agafeu la novena sortida.,Poistu yhdeksännessä liittymässä.,नौवें निकास को लें।,Izađite na devetom izlazu.,Ambil jalan keluar kesembilan.,아홉 번째 출구입니다.,Saia na nona saída.,Opustite kruhový objazd na deviatom výjazde.,Ingia barabara ya tisa ya kutoka.,ออกทางออกที่เก้า,取道第九個出口。,取道第九个出口。,Take the 9th exit.
-,take_the_10_exit,Take the tenth exit.,Десятый поворот с кольца.,Zjedź dziesiątym zjazdem.,Ta tionde avfarten.,Onuncu çıkıştan çıkın.,Prenez la dixième sortie.,Neem de tiende afslag.,Nehmen Sie die zehnte Ausfahrt.,اسلك المخرج العاشر.,Πάρτε τη δέκατη έξοδο.,Prendi la decima uscita.,Vyjeďte desátým výjezdem.,Hajtson ki a tízedik kijáratnál.,Folosiți a zecea ieșire.,十番目の出口です。,Tag den tiende afkørsel.,Tome la décima salida.,Agafeu la dècima sortida.,Poistu kymmenennessä liittymässä.,दसवाँ एग्जिट लें।,Izađite na desetom izlazu.,Ambil jalan keluar kesepuluh.,열 번째 출구입니다.,Saia na décima saída.,Opustite kruhový objazd na desiatom výjazde.,Ingia barabara ya kumi ya kutoka.,ออกทางออกที่สิบ,取道第十個出口。,取道第十个出口。,Take the 10th exit.
-,take_the_11_exit,Take the eleventh exit.,Одиннадцатый поворот с кольца.,Zjedź jedenastym zjazdem.,Ta elfte avfarten.,On birinci çıkıştan çıkın.,Prenez la onzième sortie.,Neem de elfde afslag.,Nehmen Sie die elfte Ausfahrt.,اسلك المَخْرَج الحادي عشر.,Πάρτε την ενδέκατη έξοδο.,Prendi l'undicesima uscita.,Vyjeďte jedenáctým výjezdem.,Hajtson ki a tizenegyedik kijáratnál.,Folosiți a unsprezecea ieșire.,十一番目の出口です。,Tag den ellevte afkørsel.,Tome la undécima salida.,Agafeu l'onzena sortida.,Poistu yhdennessätoista liittymässä.,ग्‍यारहवाँ एग्जिट लें।,Izađite na jedanaestom izlazu.,Ambil jalan keluar kesebelas.,열한 번째 출구입니다.,Saia na décima primeira saída.,Opustite kruhový objazd na jedenástom výjazde.,Ingia barabara ya kumi na moja ya kutoka.,ออกทางออกที่สิบเอ็ด,取道第十一個出口。,取道第十一个出口。,Take the 11th exit.
+,take_the_1_exit,Take the first exit.,Сверните на первый съезд.,Zjedź pierwszym zjazdem.,Ta första avfarten.,İlk çıkıştan çıkın.,Prenez la première sortie.,Neem de eerste afslag.,Nehmen Sie die erste Ausfahrt.,اسلك المخرج الأول.,Πάρτε την πρώτη έξοδο.,Prendi la prima uscita.,Vyjeďte prvním výjezdem.,Hajtson ki az első kijáratnál.,Folosiți prima ieșire.,一番目の出口です。,Tag den første afkørsel.,Tome la primera salida.,Agafeu la primera sortida.,Poistu seuraavassa liittymässä.,पहला एग्जिट लें।,Izađite na prvom izlazu.,Ambil jalan keluar pertama.,첫 번째 출구입니다.,Saia na primeira saída.,Opustite kruhový objazd na prvom výjazde.,Ingia barabara ya kwanza ya kutoka.,ออกทางออกที่หนึ่ง,取道第一個出口。,取道第一个出口。,Take the first exit.
+,take_the_2_exit,Take the second exit.,Сверните на второй съезд.,Zjedź drugim zjazdem.,Ta andra avfarten.,İkinci çıkıştan çıkın.,Prenez la deuxième sortie.,Neem de tweede afslag.,Nehmen Sie die zweite Ausfahrt.,اسلك المخرج الثاني.,Πάρτε τη δεύτερη έξοδο.,Prendi la seconda uscita.,Vyjeďte druhým výjezdem.,Hajtson ki a második kijáratnál.,Folosiți a doua ieșire.,二番目の出口です。,Tag den anden afkørsel.,Tome la segunda salida.,Agafeu la segona sortida.,Poistu toisessa liittymässä.,दूसरा एग्जिट लें।,Izađite na drugom izlazu.,Ambil jalan keluar kedua.,두 번째 출구입니다.,Saia na segunda saída.,Opustite kruhový objazd na druhom výjazde.,Ingia barabara ya pili ya kutoka.,ออกทางออกที่สอง,取道第二個出口。,取道第二个出口。,Take the second exit.
+,take_the_3_exit,Take the third exit.,Сверните на третий съезд.,Zjedź trzecim zjazdem.,Ta tredje avfarten.,Üçüncü çıkıştan çıkın.,Prenez la troisième sortie.,Neem de derde afslag.,Nehmen Sie die dritte Ausfahrt.,اسلك المخرج الثالث.,Πάρτε την τρίτη έξοδο.,Prendi la terza uscita.,Vyjeďte třetím výjezdem.,Hajtson ki a harmadik kijáratnál.,Folosiți a treia ieșire.,三番目の出口です。,Tag den tredje afkørsel.,Tome la tercera salida.,Agafeu la tercera sortida.,Poistu kolmannessa liittymässä.,तीसरा एग्जिट लें।,Izađite na trećem izlazu.,Ambil jalan keluar ketiga.,세 번째 출구입니다.,Saia na terceira saída.,Opustite kruhový objazd na treťom výjazde.,Ingia barabara ya tatu ya kutoka.,ออกทางออกที่สาม,取道第三個出口。,取道第三个出口。,Take the third exit.
+,take_the_4_exit,Take the fourth exit.,Сверните на четвертый съезд.,Zjedź czwartym zjazdem.,Ta fjärde avfarten.,Dördüncü çıkıştan çıkın.,Prenez la quatrième sortie.,Neem de vierde afslag.,Nehmen Sie die vierte Ausfahrt.,اسلك المخرج الرابع.,Πάρτε την τέταρτη έξοδο.,Prendi la quarta uscita.,Vyjeďte čtvrtým výjezdem.,Hajtson ki a negyedik kijáratnál.,Folosiți a patra ieșire.,四番目の出口です。,Tag den fjerde afkørsel.,Tome la cuarta salida.,Agafeu la quarta sortida.,Poistu neljännessä liittymässä.,चौथा एग्जिट लें।,Izađite na četvrtom izlazu.,Ambil jalan keluar keempat,네 번째 출구입니다.,Saia na quarta saída.,Opustite kruhový objazd na štvrtom výjazde.,Ingia barabara ya nne ya kutoka.,ออกทางออกที่สี่,取道第四個出口。,取道第四个出口。,Take the 4th exit.
+,take_the_5_exit,Take the fifth exit.,Сверните на пятый съезд.,Zjedź piątym zjazdem.,Ta femte avfarten.,Beşinci çıkıştan çıkın.,Prenez la cinquième sortie.,Neem de vijfde afslag.,Nehmen Sie die fünfte Ausfahrt.,اسلك المخرج الخامس.,Πάρτε την πέμπτη έξοδο.,Prendi la quinta uscita.,Vyjeďte pátým výjezdem.,Hajtson ki a ötödik kijáratnál.,Folosiți a cincea ieșire.,五番目の出口です。,Tag den femte afkørsel.,Tome la quinta salida.,Agafeu la cinquena sortida.,Poistu viidennessä liittymässä.,पाँचवाँ एग्जिट लें।,Izađite na petom izlazu.,Ambil jalan keluar kelima.,다섯 번째 출구입니다.,Saia na quinta saída.,Opustite kruhový objazd na piatom výjazde.,Ingia barabara ya tano ya kutoka.,ออกทางออกที่ห้า,取道第五個出口。,取道第五个出口。,Take the 5th exit.
+,take_the_6_exit,Take the sixth exit.,Сверните на шестой съезд.,Zjedź szóstym zjazdem.,Ta sjätte avfarten.,Altıncı çıkıştan çıkın.,Prenez la sixième sortie.,Neem de zesde afslag.,Nehmen Sie die sechste Ausfahrt.,اسلك المخرج السادس.,Πάρτε την έκτη έξοδο.,Prendi la sesta uscita.,Vyjeďte šestým výjezdem.,Hajtson ki a hatodik kijáratnál.,Folosiți a șasea ieșire.,六番目の出口です。,Tag den sjette afkørsel.,Tome la sexta salida.,Agafeu la sisena sortida.,Poistu kuudennessa liittymässä.,छठा एग्जिट लें।,Izađite na šestom izlazu.,Ambil jalan keluar keenam.,여섯 번째 출구입니다.,Saia na sexta saída.,Opustite kruhový objazd na šiestom výjazde.,Ingia barabara ya sita ya kutoka.,ออกทางออกที่หก,取道第六個出口。,取道第六个出口。,Take the 6th exit.
+,take_the_7_exit,Take the seventh exit.,Сверните на седьмой съезд.,Zjedź siódmym zjazdem.,Ta sjunde avfarten.,Yedinci çıkıştan çıkın.,Prenez la septième sortie.,Neem de zevende afslag.,Nehmen Sie die siebte Ausfahrt.,اسلك المخرج السابع.,Πάρτε την έβδομη έξοδο.,Prendi la settima uscita.,Vyjeďte sedmým výjezdem.,Hajtson ki a hetedik kijáratnál.,Folosiți a șaptea ieșire.,七番目の出口です。,Tag den syvende afkørsel.,Tome la séptima salida.,Agafeu la setena sortida.,Poistu seitsemännessä liittymässä.,सातवाँ एग्जिट लें।,Izađite na sedmom izlazu.,Ambil jalan keluar ketujuh.,일곱 번째 출구입니다.,Saia na sétima saída.,Opustite kruhový objazd na siedmom výjazde.,Ingia barabara ya saba ya kutoka.,ออกทางออกที่เจ็ด,取道第七個出口。,取道第七个出口。,Take the 7th exit.
+,take_the_8_exit,Take the eighth exit.,Сверните на восьмой съезд.,Zjedź ósmym zjazdem.,Ta åttonde avfarten.,Sekizinci çıkıştan çıkın.,Prenez la huitième sortie.,Neem de achtste afslag.,Nehmen Sie die achte Ausfahrt.,اسلك المخرج الثامن.,Πάρτε την όγδοη έξοδο.,Prendi l'ottava uscita.,Vyjeďte osmým výjezdem.,Hajtson ki a nyolcadik kijáratnál.,Folosiți a opta ieșire.,八番目の出口です。,Tag den ottende afkørsel.,Tome la octava salida.,Agafeu la vuitena sortida.,Poistu kahdeksannessa liittymässä.,आठवाँ एग्जिट लें।,Izađite na osmom izlazu.,Ambil jalan keluar kedelapan.,여덟 번째 출구입니다.,Saia na oitava saída.,Opustite kruhový objazd na ôsmom výjazde.,Ingia barabara ya nane ya kutoka.,ออกทางออกที่แปด,取道第八個出口。,取道第八个出口。,Take the 8th exit.
+,take_the_9_exit,Take the ninth exit.,Сверните на девятый съезд.,Zjedź dziewiątym zjazdem.,Ta nionde avfarten.,Dokuzuncu çıkıştan çıkın.,Prenez la neuvième sortie.,Neem de negende afslag.,Nehmen Sie die neunte Ausfahrt.,اسلك المخرج التاسع.,Πάρτε την έννατη έξοδο.,Prendi la nona uscita.,Vyjeďte devátým výjezdem.,Hajtson ki a kilencedik kijáratnál.,Folosiți a noua ieșire.,九番目の出口です。,Tag den niende afkørsel.,Tome la novena salida.,Agafeu la novena sortida.,Poistu yhdeksännessä liittymässä.,नौवें निकास को लें।,Izađite na devetom izlazu.,Ambil jalan keluar kesembilan.,아홉 번째 출구입니다.,Saia na nona saída.,Opustite kruhový objazd na deviatom výjazde.,Ingia barabara ya tisa ya kutoka.,ออกทางออกที่เก้า,取道第九個出口。,取道第九个出口。,Take the 9th exit.
+,take_the_10_exit,Take the tenth exit.,Сверните на десятый съезд.,Zjedź dziesiątym zjazdem.,Ta tionde avfarten.,Onuncu çıkıştan çıkın.,Prenez la dixième sortie.,Neem de tiende afslag.,Nehmen Sie die zehnte Ausfahrt.,اسلك المخرج العاشر.,Πάρτε τη δέκατη έξοδο.,Prendi la decima uscita.,Vyjeďte desátým výjezdem.,Hajtson ki a tízedik kijáratnál.,Folosiți a zecea ieșire.,十番目の出口です。,Tag den tiende afkørsel.,Tome la décima salida.,Agafeu la dècima sortida.,Poistu kymmenennessä liittymässä.,दसवाँ एग्जिट लें।,Izađite na desetom izlazu.,Ambil jalan keluar kesepuluh.,열 번째 출구입니다.,Saia na décima saída.,Opustite kruhový objazd na desiatom výjazde.,Ingia barabara ya kumi ya kutoka.,ออกทางออกที่สิบ,取道第十個出口。,取道第十个出口。,Take the 10th exit.
+,take_the_11_exit,Take the eleventh exit.,Сверните на одиннадцатый съезд.,Zjedź jedenastym zjazdem.,Ta elfte avfarten.,On birinci çıkıştan çıkın.,Prenez la onzième sortie.,Neem de elfde afslag.,Nehmen Sie die elfte Ausfahrt.,اسلك المَخْرَج الحادي عشر.,Πάρτε την ενδέκατη έξοδο.,Prendi l'undicesima uscita.,Vyjeďte jedenáctým výjezdem.,Hajtson ki a tizenegyedik kijáratnál.,Folosiți a unsprezecea ieșire.,十一番目の出口です。,Tag den ellevte afkørsel.,Tome la undécima salida.,Agafeu l'onzena sortida.,Poistu yhdennessätoista liittymässä.,ग्‍यारहवाँ एग्जिट लें।,Izađite na jedanaestom izlazu.,Ambil jalan keluar kesebelas.,열한 번째 출구입니다.,Saia na décima primeira saída.,Opustite kruhový objazd na jedenástom výjazde.,Ingia barabara ya kumi na moja ya kutoka.,ออกทางออกที่สิบเอ็ด,取道第十一個出口。,取道第十一个出口。,Take the 11th exit.
Distances. Imperial system: feet and miles.,in_50_feet,In fifty feet,Через пятьдесят футов,Za pięćdziesiąt stóp,Om femtio fot,Elli fit sonra,Dans cinquante pieds,Over vijftig voet,In fünfzig Fuß,بعد خمسين قدمًا,Σε πενήντα πόδια,Tra cinquanta piedi,Za padesát stop,Ötven láb után,După cincizeci de picioare,五十フィート先,Om halvtreds fod,En cincuenta pies,D'aquí a cinquanta peus,Viidenkymmenen jalan päässä,पचास फीट में।,Za pedeset stopa,Setelah lima puluh kaki,오십 피트 앞,A cinquenta pés,Po päťdesiatich stopách,Kabla ya futi hamsini,อีกห้าสิบฟุต,前方五十英尺,前方五十英尺,In 50 feet.
,in_100_feet,In one hundred feet,Через сто футов,Za sto stóp,Om ett hundra fot,Yüz fit sonra,Dans cent pieds,Over honderd voet,In einhundert Fuß,بعد مئة قدم,Σε εκατό πόδια,Tra cento piedi,Za sto stop,Száz láb után,După o sută de picioare,百フィート先,Om et hundrede fod,En cien pies,D'aquí a cent peus,Sadan jalan päässä,सौ फीट में।,Za stotinu stopa,Setelah seratus kaki,백 피트 앞,A cem pés,Po sto stopách,Kabla ya futi mia moja,อีกหนึ่งร้อยฟุต,前方一百英尺,前方一百英尺,In 100 feet.
,in_200_feet,In two hundred feet,Через двести футов,Za dwieście stóp,Om två hundra fot,İki yüz fit sonra,Dans deux cents pieds,Over tweehonderd voet,In zweihundert Fuß,بعد مئتين قدم,Σε διακόσια πόδια,Tra duecento piedi,Za dvě stě stop,Kétszáz láb után,După două sute de picioare,二百フィート先,Om to hundrede fod,En doscientos pies,D'aquí a dos-cents peus,Kahdensadan jalan päässä,दो सौ फीट में।,Za dvije stotine stopa,Setelah dua ratus kaki,이백 피트 앞,A duzentos pés,Po dvesto stopách,Kabla ya futi mia mbili,อีกสองร้อยฟุต,前方二百英尺,前方两百英尺,In 200 feet.
diff --git a/sound/tts/sound.txt b/sound/tts/sound.txt
index d66e8b6591..5cf13d771c 100644
--- a/sound/tts/sound.txt
+++ b/sound/tts/sound.txt
@@ -2,7 +2,7 @@
[make_a_slight_right_turn]
en = Slight right.
- ru = Плавный поворот направо.
+ ru = Держитесь правее.
ar = إلى اليمين قليلا.
cs = Mírně doprava.
da = Blødt til højre.
@@ -32,7 +32,7 @@
[make_a_right_turn]
en = Turn right.
- ru = Поворот направо.
+ ru = Поверните направо.
ar = انعطف يمينا.
cs = Otočte se doprava.
da = Drej til højre.
@@ -62,7 +62,7 @@
[make_a_sharp_right_turn]
en = Sharp right.
- ru = Крутой поворот направо.
+ ru = Резко поверните направо.
ar = إلى أقصى اليمين.
cs = Ostře doprava.
da = Skarpt til højre.
@@ -92,7 +92,7 @@
[enter_the_roundabout]
en = Enter the roundabout.
- ru = Въезд на кольцо.
+ ru = Поверните на кольцо.
ar = اتجه إلى الطريق الدوار.
cs = Vjeďte na kruhový objezd.
da = Kør ind i rundkørslen.
@@ -122,7 +122,7 @@
[leave_the_roundabout]
en = Exit from the roundabout.
- ru = Съезд с кольца.
+ ru = Сверните с кольца.
ar = اخرج من الدوار.
cs = Vyjeďte z kruhového objezdu.
da = Forlad rundkørslen.
@@ -152,7 +152,7 @@
[make_a_slight_left_turn]
en = Slight left.
- ru = Плавный поворот налево.
+ ru = Держитесь левее.
ar = إلى اليسار قليلاً.
cs = Mírně doleva.
da = Blødt til venstre.
@@ -182,7 +182,7 @@
[make_a_left_turn]
en = Turn left.
- ru = Поворот налево.
+ ru = Поверните налево.
ar = انعطف يسارا.
cs = Otočte se doleva.
da = Drej til venstre.
@@ -212,7 +212,7 @@
[make_a_sharp_left_turn]
en = Sharp left.
- ru = Крутой поворот налево.
+ ru = Резко поверните налево.
ar = إلى أقصى اليسار.
cs = Ostře doleva.
da = Skarpt til venstre.
@@ -242,7 +242,7 @@
[make_a_u_turn]
en = Make a u-turn.
- ru = Разворот.
+ ru = Развернитесь.
ar = انعطف بدوران كامل.
cs = Otočte se o sto osmdesát stupňů.
da = Vend om.
@@ -332,7 +332,7 @@
[you_have_reached_the_destination]
en = You have arrived.
- ru = Вы прибыли.
+ ru = Вы прибыли в пункт назначения.
ar = لقد وصلت.
cs = Jste na místě.
da = Du er ankommet.
@@ -902,7 +902,7 @@
[take_the_1_exit]
en = Take the first exit.
- ru = Первый поворот с кольца.
+ ru = Сверните на первый съезд.
ar = اسلك المخرج الأول.
cs = Vyjeďte prvním výjezdem.
da = Tag den første afkørsel.
@@ -932,7 +932,7 @@
[take_the_2_exit]
en = Take the second exit.
- ru = Второй поворот с кольца.
+ ru = Сверните на второй съезд.
ar = اسلك المخرج الثاني.
cs = Vyjeďte druhým výjezdem.
da = Tag den anden afkørsel.
@@ -962,7 +962,7 @@
[take_the_3_exit]
en = Take the third exit.
- ru = Третий поворот с кольца.
+ ru = Сверните на третий съезд.
ar = اسلك المخرج الثالث.
cs = Vyjeďte třetím výjezdem.
da = Tag den tredje afkørsel.
@@ -992,7 +992,7 @@
[take_the_4_exit]
en = Take the fourth exit.
- ru = Четвертый поворот с кольца.
+ ru = Сверните на четвертый съезд.
ar = اسلك المخرج الرابع.
cs = Vyjeďte čtvrtým výjezdem.
da = Tag den fjerde afkørsel.
@@ -1022,7 +1022,7 @@
[take_the_5_exit]
en = Take the fifth exit.
- ru = Пятый поворот с кольца.
+ ru = Сверните на пятый съезд.
ar = اسلك المخرج الخامس.
cs = Vyjeďte pátým výjezdem.
da = Tag den femte afkørsel.
@@ -1052,7 +1052,7 @@
[take_the_6_exit]
en = Take the sixth exit.
- ru = Шестой поворот с кольца.
+ ru = Сверните на шестой съезд.
ar = اسلك المخرج السادس.
cs = Vyjeďte šestým výjezdem.
da = Tag den sjette afkørsel.
@@ -1082,7 +1082,7 @@
[take_the_7_exit]
en = Take the seventh exit.
- ru = Седьмой поворот с кольца.
+ ru = Сверните на седьмой съезд.
ar = اسلك المخرج السابع.
cs = Vyjeďte sedmým výjezdem.
da = Tag den syvende afkørsel.
@@ -1112,7 +1112,7 @@
[take_the_8_exit]
en = Take the eighth exit.
- ru = Восьмой поворот с кольца.
+ ru = Сверните на восьмой съезд.
ar = اسلك المخرج الثامن.
cs = Vyjeďte osmým výjezdem.
da = Tag den ottende afkørsel.
@@ -1142,7 +1142,7 @@
[take_the_9_exit]
en = Take the ninth exit.
- ru = Девятый поворот с кольца.
+ ru = Сверните на девятый съезд.
ar = اسلك المخرج التاسع.
cs = Vyjeďte devátým výjezdem.
da = Tag den niende afkørsel.
@@ -1172,7 +1172,7 @@
[take_the_10_exit]
en = Take the tenth exit.
- ru = Десятый поворот с кольца.
+ ru = Сверните на десятый съезд.
ar = اسلك المخرج العاشر.
cs = Vyjeďte desátým výjezdem.
da = Tag den tiende afkørsel.
@@ -1202,7 +1202,7 @@
[take_the_11_exit]
en = Take the eleventh exit.
- ru = Одиннадцатый поворот с кольца.
+ ru = Сверните на одиннадцатый съезд.
ar = اسلك المَخْرَج الحادي عشر.
cs = Vyjeďte jedenáctým výjezdem.
da = Tag den ellevte afkørsel.
diff --git a/tools/python/local_ads/features_db_updater.py b/tools/python/local_ads/features_db_updater.py
deleted file mode 100755
index 127e995a54..0000000000
--- a/tools/python/local_ads/features_db_updater.py
+++ /dev/null
@@ -1,147 +0,0 @@
-#!/usr/bin/env python2.7
-
-from __future__ import print_function
-
-import os
-import sys
-
-# TODO(mgsergio, zveric, yershov): Make mwm an installable module.
-sys.path.append(
- os.path.join(
- os.path.dirname(__file__), '..', 'mwm'
- )
-)
-
-import argparse
-import csv
-# c_long is used to get signed int64. Postgres can't handle uint64.
-import ctypes
-import logging
-import mwm
-
-from itertools import islice
-from zlib import adler32
-
-
-def get_mapping(mapping_name):
- with open(mapping_name, 'rb') as f:
- osm2ft = mwm.read_osm2ft(f, tuples=False)
-
- for osmid, fid in osm2ft.iteritems():
- yield ctypes.c_long(osmid).value, fid
-
-
-def print_mapping(mapping, count):
- for osmid, fid in islice(mapping, count):
- print('{}\t{}'.format(osmid, fid))
-
-
-def generate_id_from_name_and_version(name, version):
- return ctypes.c_long((adler32(name) << 32) | version).value
-
-
-def generate_csvs(mapping, mapping_name, version, output_path):
- mwm_id = generate_id_from_name_and_version(
- mapping_name,
- version
- )
-
- with open(os.path.join(output_path, 'mwm.csv'), 'ab') as f:
- w = csv.writer(f)
- # TODO(mgsergio): Either remove or make so this is will write only one header.
- # w.writerow(['id', 'name', 'version'])
- w.writerow([
- mwm_id,
- mapping_name,
- version,
- ])
-
- with open(os.path.join(output_path, 'mapping.csv'), 'ab') as f:
- w = csv.writer(f)
- # TODO(mgsergio): Either remove or make so this is will write only one header.
- # w.writerow(['osmid', 'fid', 'mwm_id', mwm_version])
- for row in mapping:
- w.writerow(row + (mwm_id, version))
-
-
-def get_args():
- parser = argparse.ArgumentParser()
- src = parser.add_mutually_exclusive_group(required=True)
- dst = parser.add_mutually_exclusive_group(required=True)
-
- src.add_argument(
- '--mapping_names',
- nargs='+',
- help='osm2ft files to handle.'
- )
- src.add_argument(
- '--mapping_path',
- nargs=1,
- action=AppendOsm2FidAction,
- dest='mapping_names',
- help='Path to folder with .osm2ft. Each file whould be handled.'
- )
-
- dst.add_argument(
- '--output_path',
- help='A path to an output folder.'
- )
- dst.add_argument(
- '--head',
- type=int,
- help='Write that much lines of osmid <-> fid to stdout.'
- )
-
- parser.add_argument(
- '--version',
- required=True,
- type=int,
- help='The version of mwm for which a mapping is generated.'
- )
-
- return parser.parse_args();
-
-
-def main():
- args = get_args()
- for mapping_name in args.mapping_names:
- mapping = get_mapping(mapping_name)
- if args.head:
- print('{}:'.format(mapping_name))
- print_mapping(mapping, args.head)
- exit(0)
- mwm_name = (
- os.path.basename(mapping_name)
- .split('.', 1)
- )[0]
- logging.info('Writing mapping for {}'.format(mapping_name))
- generate_csvs(
- mapping,
- mwm_name,
- args.version,
- args.output_path
- )
-
-
-class AppendOsm2FidAction(argparse.Action):
- def __init__(self, option_strings, dest, nargs=None, **kwargs):
- assert nargs == 1, 'nargs should equals to 1.'
- super(AppendOsm2FidAction, self).__init__(
- option_strings,
- dest,
- nargs=1,
- **kwargs
- )
-
- def __call__(self, parser, namespace, values, option_string=None):
- values = [
- os.path.join(values[0], mapping_name)
- for mapping_name in os.listdir(values[0])
- if mapping_name.endswith('.osm2ft')
- ]
- setattr(namespace, self.dest, values)
-
-
-if __name__ == '__main__':
- logging.basicConfig(level=logging.INFO)
- main()
diff --git a/tools/python/local_ads/mwm_to_csv_4localads.py b/tools/python/local_ads/mwm_to_csv_4localads.py
new file mode 100755
index 0000000000..384142f8db
--- /dev/null
+++ b/tools/python/local_ads/mwm_to_csv_4localads.py
@@ -0,0 +1,117 @@
+#!/usr/bin/env python2.7
+import os
+import sys
+
+# TODO: Make mwm an installable module.
+sys.path.append(
+ os.path.join(
+ os.path.dirname(__file__), '..', 'mwm'
+ )
+)
+
+import argparse
+import csv
+import mwm
+import logging
+import ctypes
+from zlib import adler32
+from multiprocessing import Pool, Queue, Process
+
+
+HEADERS = {
+ 'mapping': 'osmid fid mwm_id mwm_version'.split(),
+ 'sponsored': 'stype sid fid mwm_id mwm_version'.split(),
+ 'mwm': 'mwm_id name mwm_version'.split(),
+}
+QUEUES = {name: Queue() for name in HEADERS}
+GOOD_TYPES = ("amenity", "shop", "tourism", "leisure", "sport",
+ "craft", "man_made", "office", "historic")
+
+
+def generate_id_from_name_and_version(name, version):
+ return ctypes.c_long((adler32(name) << 32) | version).value
+
+
+def parse_mwm(mwm_name, osm2ft_name, override_version, types_name):
+ with open(osm2ft_name, 'rb') as f:
+ ft2osm = mwm.read_osm2ft(f, ft2osm=True, tuples=False)
+ with open(mwm_name, 'rb') as f:
+ mwm_file = mwm.MWM(f)
+ version = override_version or mwm_file.read_version()['version']
+ region_name = os.path.splitext(mwm_name)[0]
+ mwm_id = generate_id_from_name_and_version(region_name, version)
+ QUEUES['mwm'].put((mwm_id, region_name, version))
+ mwm_file.read_header()
+ mwm_file.read_types(types_name)
+ for feature in mwm_file.iter_features(metadata=True):
+ osm_id = ft2osm.get(feature['id'], None)
+ if osm_id is None:
+ if 'ref:sponsored' in feature['metadata']:
+ for t in feature['header']['types']:
+ if t.startswith('sponsored-'):
+ QUEUES['sponsored'].put((t[t.find('-')+1:],
+ feature['metadata']['ref:sponsored'],
+ feature['id'],
+ mwm_id,
+ version))
+ break
+ else:
+ for t in feature['header']['types']:
+ if t.startswith(GOOD_TYPES):
+ QUEUES['mapping'].put((ctypes.c_long(osm_id).value,
+ feature['id'],
+ mwm_id,
+ version))
+ break
+
+
+def write_csv(output_dir, qtype):
+ with open(os.path.join(output_dir, qtype + '.csv'), 'w') as f:
+ mapping = QUEUES[qtype].get()
+ w = csv.writer(f)
+ w.writerow(HEADERS[qtype])
+ while mapping is not None:
+ w.writerow(mapping)
+ mapping = QUEUES[qtype].get()
+
+
+def main():
+ logging.basicConfig(level=logging.INFO, format='%(asctime)s %(message)s', datefmt='%H:%M:%S')
+ parser = argparse.ArgumentParser(
+ description='Prepares CSV files for uploading to localads database from mwm files.')
+ parser.add_argument('mwm', help='path to mwm files')
+ parser.add_argument('--osm2ft', help='path to osm2ft files (default is the same as mwm)')
+ parser.add_argument('--output', default='.', help='path to generated files ("." by default)')
+ types_default = os.path.join(os.path.dirname(sys.argv[0]),
+ '..', '..', '..', 'data', 'types.txt')
+ parser.add_argument('--types', default=types_default, help='path to omim/data/types.txt')
+ parser.add_argument('--threads', type=int, help='number of threads to process files')
+ parser.add_argument('--version', type=int, help='override mwm version')
+ args = parser.parse_args()
+ if not args.osm2ft:
+ args.osm2ft = args.mwm
+
+ # Create CSV writer processes for each queue and a pool of MWM readers.
+ writers = [Process(target=write_csv, args=(args.output, qtype)) for qtype in QUEUES]
+ for w in writers:
+ w.start()
+ pool = Pool(processes=args.threads)
+ for mwm_name in os.listdir(args.mwm):
+ if 'World' in mwm_name or 'minsk_pass' in mwm_name or not mwm_name.endswith('.mwm'):
+ continue
+ osm2ft_name = os.path.join(args.osm2ft, os.path.basename(mwm_name) + '.osm2ft')
+ if not os.path.exists(osm2ft_name):
+ logging.error('Cannot find %s', osm2ft_name)
+ sys.exit(2)
+ logging.info(mwm_name)
+ pool.apply_async(parse_mwm, (mwm_name, osm2ft_name, args.version, args.types))
+ pool.close()
+ pool.join()
+ for queue in QUEUES.values():
+ queue.put(None)
+ for w in writers:
+ w.join()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/tools/python/mwm/dump_mwm.py b/tools/python/mwm/dump_mwm.py
index 29fb1c6562..98e240eebb 100755
--- a/tools/python/mwm/dump_mwm.py
+++ b/tools/python/mwm/dump_mwm.py
@@ -15,7 +15,7 @@ tvv = sorted([(k, v[0], v[1]) for k, v in mwm.tags.items()], key=lambda x: x[1])
for tv in tvv:
print(' {0:<8}: offs {1:9} len {2:8}'.format(tv[0], tv[1], tv[2]))
v = mwm.read_version()
-print('Format: {0}, version: {1}'.format(v['fmt'], v['version'].strftime('%Y-%m-%d %H:%M')))
+print('Format: {0}, version: {1}'.format(v['fmt'], v['date'].strftime('%Y-%m-%d %H:%M')))
print('Header: {0}'.format(mwm.read_header()))
print('Region Info: {0}'.format(mwm.read_region_info()))
print('Metadata count: {0}'.format(len(mwm.read_metadata())))
diff --git a/tools/python/mwm/mwm.py b/tools/python/mwm/mwm.py
index e67ae8def0..4784f98b67 100644
--- a/tools/python/mwm/mwm.py
+++ b/tools/python/mwm/mwm.py
@@ -77,10 +77,11 @@ class MWM:
fmt = self.read_varuint() + 1
version = self.read_varuint()
if version < 161231:
- version = datetime(2000 + int(version / 10000), int(version / 100) % 100, version % 100)
+ vdate = datetime(2000 + int(version / 10000), int(version / 100) % 100, version % 100)
else:
- version = datetime.fromtimestamp(version)
- return { 'fmt': fmt, 'version': version }
+ vdate = datetime.fromtimestamp(version)
+ version = int(vdate.strftime('%y%m%d'))
+ return {'fmt': fmt, 'version': version, 'date': vdate}
def read_header(self):
"""Reads 'header' section."""