💥 Sprint #16 description added here
- Add
conanpackage manager (could not find packages) - Make good
CMAKEbasing on chosen compiler - Add
ANTLRto the project
- Code as it was in web-form could be found in the main.cpp file on branch dev/sprint-1
- Code, which I've tried to split by *.h and *.cpp files could be found on the master branch
Implemented items:
- Class
SearchServer:
Code with Unit Testing framework (from lectures) and Unit Tests for the
SearchServer could be found on branch:
dev/sprint-2.
Implemented items:
- Unit testing framework:
- Unit tests for
SearchServerclass: - Unit tests execution from the the main.cpp
Code with updated SearchServer version and corresponding to the changes tests could be found on branch:
dev/sprint-3.
Implemented items:
- Updates in
SearchServerclass: - Updates in unit tests for
SearchServerclass:
P.S. Additionally I've updated the unit-test framework, to make it easy to use.
Main changes are ( testing_framework.h; testing_framework.cpp ):
ASSERT_THROWmacros, which checks if the function should throwRunTestsclass which is used to run all tests implicitly- Existing functionality refactoring to match first two items :)
Code with search server could be found here: dev/sprint-4
Implemented items:
- Code of
SearchServerengine was split up into several files, which are located in the folder: sprint_4 - Paginator functionality could be found here:
- Query of requests to `SearchServer' could be found here:
Code with search server could be found here: dev/sprint-5
Implemented items:
-
In
SearchServerengine three function have been implemented:GetWordFrequencies,RemoveDocumentandRemoveDuplicates -
Duration logger functionality could be found here:
-
Boost & Gtest functionality have been integrate to the project:
Code with search server could be found here: dev/sprint-6
Implemented items:
SingleLinkedListtemplate class could be found here:- Unit tests of
SingleLinkedListclass:
Code with search server could be found here: dev/sprint-7
Implemented items:
SimpleVectortemplate class could be found here:- Unit tests of
SimpleVectorclass:
Code with search server could be found here: dev/sprint-8
Implemented items:
- Multi-treading for methods of
SearchServerclass:- Methods list:
RemoveDocument(),FindAllDocuments(),ParseQuery(),FindTopDocuments(),MatchDocument() - Could be found search_server.h
- Methods list:
- Change
std::stringonstd::string_viewfor performance improvement:- Could be found search_server.h
- Add multi-threading functions to process queries:
- Class
ConcurrentMapandForEach()method to thread safe processstd::map<k,v>:
Code with search server could be found here: dev/sprint-9
Implemented items:
TransportCatalogueclass:- Could be found transport_catalogue.h
- Input data readers:
- Could be found stat_reader.h
- Output statistics writers:
- Could be found input_reader.h
Code with transport catalogue visualization map: dev/sprint-10
Implemented items:
TransportCatalogueclass update:- Could be found transport_catalogue.h
JsonReaderlibrary:- Could be found json_reader.h
SvgReaderlibrary:
Code with JSON builder could be found here: dev/sprint-11
Implemented items:
- Class
Builder, which provides an interface for JSON creation: - Request handler adjustment to creation of JSON response via
Builderclass.
Code with JSON builder could be found here: dev/sprint-12
Implemented items:
- Class
TransportRouter, which builds the fastest route from pointAto pointB:
In the graph, used to build the fastest routes, each stop represents as 2 vertexes:
start- passenger arrives to this vertex on the stop (necessary to take into account bus waiting)end- passenger start wide from this vertex
P.S. Implementation notes:
- Each route starts from the
startvertex of the first stop, and ends withstartvertex of the last stop. - Each bus ride starts with the
endvertex stop and ends on thestartvertex. - Bus could go through the same stop several times - only the lowes time is chosen to build the fastest route.
Code changes for Optional<Type> and Vector<Type> could be found
here: dev/sprint-13
Implemented items:
- Class
Vector<Type>is analog ofstd::vector<Type>: - Class
Optional<Type>is analog of `std::optional:
P.S. Both classes implementation use raw memory, so the speed should be close to the analogs from STL library.
Code changes could be found here: dev/sprint-14
Implemented items:
- Serialization of
TransportCatalogue,TransportRouter,Settings(both: routing and rendering): - Requests handling is now split into 2 parts, where on the intermediate state we serialize all the date.
Code changes could be found here: dev/sprint-15
Implemented items: Language interpreter, consists from the following steps:
- Lexical analyzer:
- Syntax analyzer (runtime + parser):
- Semantics analyzer:
- Table of symbols
❗ ❗ ❗
Code changes could be found here: dev/sprint-16
Simple Excel-like sheet to work with text and formulas only.
Main implemented items:
- Sheet:
- Cell:
- Formulas:
- Adjustments to use formula parser with ANTLR
Steps to install & test:
- Download & install Java SE Runtime Environment 8
- Download & install Java SE Development Kit 8
- Download *.jar file & set up all Path environment variable & *.bat files: here
- Test the installation: here
Steps to integrate with C++:
P.S. In general, if ANTLR has been installed successfully, the only thing u need to do to integrate it with C++
is just download the runtime module (see. above) together with *.jar file and place it in project folder.
CMakeFile will handle everything else.