Code Monkey home page Code Monkey logo

ecl's Introduction

ecl

Build Status Build Status codecov.io MIT licensed

Very small C++ class set suitable for embedded devices. C++11-compatible compiler needed. (Tested: gcc>=4.7, clang>=3.5)

fsm

Generic class for Finite State Machine creating. Influenced by boost::MSM, but more simple.

bit_field

Class for serialization and deserialization of bitfield-like structures. Main problem in bitfields is compiler-specific implementation and ending problems. bitfield class architecture independent. Of course, at cost of complexity.

scope_guard

RAII idiom. Class provides mechanism to define execution of some code on scope exit.

command processor & command

Simple classes suitable for composing command processors on embedded systems. Commands can be arranged as tree.

json

JSON serializer/deserializer. JSON document specialized as template, than it can be serialized to ecl::stream, std::stream or any other object that support operator<< and deserialized from C-style string (char *)

stream

Simple implementation of stream. (iostream is too complex for embedded systems and uses dynamic memory) Flush function can be specialized as template arg. It will be called, when stream becomes full.

singleton

Meyers singleton implementation.

str_const

Scott Schurr's str_const class.

circular_buffer

Circular buffer class.

tree

Binary tree implementation. Can be used with statically allocated nodes, so no memory allocation needed.

red_black_tree

Red-black tree implementation. Can be used with statically allocated nodes, so no memory allocation needed.

static_map

Simple map class with constant fields. Uses RB-tree for element access.

build

Targets:

* all - all tests
* test_fsm
* test_scope_guard
* test_circular_buffer
* test_bitfield
* test_singleton
* test_stream
* test_json
* test_str_const
* test_tree
* test_static_map
* test_command_processor

gcc:

make all

clang:

CXX=clang++ make all

arm-none-eabi-gcc:

CXX=arm-none-eabi-g++ ADD_FLAGS=--specs=rdimon.specs make all

ecl's People

Contributors

arcolight avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.