💥 Sprint #16 description added here
- Add
conan
package manager (could not find packages) - Make good
CMAKE
basing on chosen compiler - Add
ANTLR
to 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
SearchServer
class: - 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
SearchServer
class: - Updates in unit tests for
SearchServer
class:
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_THROW
macros, which checks if the function should throwRunTests
class 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
SearchServer
engine 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
SearchServer
engine three function have been implemented:GetWordFrequencies
,RemoveDocument
andRemoveDuplicates
-
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:
SingleLinkedList
template class could be found here:- Unit tests of
SingleLinkedList
class:
Code with search server could be found here: dev/sprint-7
Implemented items:
SimpleVector
template class could be found here:- Unit tests of
SimpleVector
class:
Code with search server could be found here: dev/sprint-8
Implemented items:
- Multi-treading for methods of
SearchServer
class:- Methods list:
RemoveDocument()
,FindAllDocuments()
,ParseQuery()
,FindTopDocuments()
,MatchDocument()
- Could be found search_server.h
- Methods list:
- Change
std::string
onstd::string_view
for performance improvement:- Could be found search_server.h
- Add multi-threading functions to process queries:
- Class
ConcurrentMap
andForEach()
method to thread safe processstd::map<k,v>
:
Code with search server could be found here: dev/sprint-9
Implemented items:
TransportCatalogue
class:- 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:
TransportCatalogue
class update:- Could be found transport_catalogue.h
JsonReader
library:- Could be found json_reader.h
SvgReader
library:
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
Builder
class.
Code with JSON builder could be found here: dev/sprint-12
Implemented items:
- Class
TransportRouter
, which builds the fastest route from pointA
to 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
start
vertex of the first stop, and ends withstart
vertex of the last stop. - Each bus ride starts with the
end
vertex stop and ends on thestart
vertex. - 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.