Giter VIP home page Giter VIP logo

runtime's Introduction

runtime

Dependency Injection for Modern C++

Integrate runtime to your project

Create a cpp file with following codes:

#include <Runtime.hpp>

REXLOG_RUNTIME_IMPLEMENTION;

Basic usage

#include <runtime.hpp>

rexlog::Runtime *runtime = rexlog::Runtime::getInstance();

//Setter: can store any type of data;
std::string serverName="My HTTP Server";
runtime->set("serverName", serverName);
runtime->set("serverPort", static_cast<int>(8080));

//Getter: template method
std::cout <<"The server name is"<<runtime->get<std::string>("serverName")<<std::endl;
std::cout <<"The server port is"<<runtime->get<int>("serverPort")<<std::endl;

With custom free method

class MyClass {
protected:
int m_int;
public:
static void freeMethod(rexlog::RuntimeStorage *self){
  rexlog::RealRuntimeStorage<MyClass*> *storage=static_cast<rexlog::RealRuntimeStorage<MyClass*>>(self);
  delete storage->data;
}
public:
MyClass(){
  this->m_int=new int;
}
~MyClass(){
  delete this-> m_int;
}
}

rexlog::Runtime *runtime = rexlog::Runtime::getInstance();
runtime->set("myObj", new MyClass, MyClass::freeMethod);

Use Lamba as custom free method

class MyClass {
protected:
int m_int;
public:
MyClass(){
  this->m_int=new int;
}
~MyClass(){
  delete this-> m_int;
}
}

rexlog::Runtime *runtime = rexlog::Runtime::getInstance();
runtime->set("myObj", new MyClass, [&](rexlog::RuntimeStorage *self){
  rexlog::RealRuntimeStorage<MyClass*> *storage=static_cast<rexlog::RealRuntimeStorage<MyClass*>>(self);
  delete storage->data;
});

runtime's People

Contributors

leyley avatar

Watchers

James Cloos 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.