https://github.com/42-course/libftpp-docs
libftpp documentation
https://github.com/42-course/libftpp-docs
documentation doxygen sphinx
Last synced: 5 months ago
JSON representation
libftpp documentation
- Host: GitHub
- URL: https://github.com/42-course/libftpp-docs
- Owner: 42-Course
- Created: 2024-11-17T18:51:22.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-15T22:15:52.000Z (over 1 year ago)
- Last Synced: 2025-06-08T20:05:44.279Z (about 1 year ago)
- Topics: documentation, doxygen, sphinx
- Language: HTML
- Homepage: https://github.com/42-Course/libftpp
- Size: 5.33 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.html
Awesome Lists containing this project
README
Welcome to libftpp — libftpp 0 documentation
Welcome to libftpp
Overview
This library provides 7 core components:
Component
All-in-one Header
Dependencies
Description
Data Structures
data_structures.hpp
pool.hpp & data_buffer.hpp
This structures will help you manage and serialize data.
Design Patterns
design_patterns.hpp
memento.hpp, observer.hpp, observable_value.hpp singleton.hpp & state_machine.hpp
Contains a set of utils to handle different scenarios in your programs.
IOStream
thread_safe_iostream.hpp, logger.hpp
thread_safe_iostream.hpp & logger.hpp
Defines a structure to deal with output and input for programs using threads, and a logger.
Thread
threading.hpp
thread_safe_queue.hpp & thread.hpp, worker_pool .hpp & persistent_worker.hpp
Which contain a set of utils to handle threads.
Network
network.hpp
message.hpp, server.hpp & client.hpp
A set of utils to generate a server and a client which can comunicate via the Message class.
Mathematics
IVector2.hpp
IVector2.hpp, IVector3.hpp, random_2D_coordinate_generator.hpp & perlin_noise_2D.hpp
Implementation of a 2D and 3D vecotor with utils and operators. Implementation of random generator and perlinnoise 2D coordinates generator.
Time
Time.hpp
chronometer.hpp, timer.hpp & scheduler.hpp
Time related utils.
Note: Server & Client use the Observer design pattern.
Note: The PersistentWorker uses WorkerPool to provide a strong and reliable thread worker, abstracting the thread logic.
Requirements
C++17 or later: The library utilizes features introduced in C++11 such as std::unique_ptr, std::stack & std::function (lambdas).
No External Dependencies: This library does not require any external libraries.
Installation
-
Clone the repository and build:
git clone https://github.com/pulgamecanica/libftpp.git
cd libftpp
make all
make test (optional)
-
Include the header files in your project:
Add include/ directory to the list of searched directories
-
Compile your project:
Ensure your build system (e.g., Makefile) includes the header files and links any required dependencies.
Make sure that you link the library correctly: -L/path/to/libftpp.a -lftpp
Documentation
For more details on each class and method, refer to the header files.
License
This library is licensed under the MIT License. See the LICENSE file for more details.
Contributing
Feel free to fork the repository and submit pull requests. Contributions are welcome to improve the functionality and performance of the library.
Notes:
The library is designed to be header-only, so you can simply include the relevant header files in your projects.
While this library handles basic memory pooling and object serialization needs, it can be extended with more complex features like thread-safety or more advanced serialization strategies and networking.
© Copyright 2024, pulgamecanica.
Built with Sphinx using a
theme
provided by Read the Docs.
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});