SimpleRAII

SimpleRAII is a tiny garbage collection helper class that eases the use of the RAII idiom (Resource Acquisition Is Initialization).

Usage

When creating a new class, simply subclass the "SimpleRAII " class and encapsulate all non-array "new ..." statements with "manage(new ...)". Do not use any delete statements!

Background & Example

In short the RAII idiom states that it's a good thing when dealing with resource allocation and deallocation in constructors and destructors. In the latter case, code that frees memory is always guaranteed to be executed, when the object is deleted from the stack. So, suppose you write a class MyClass that looks like this:

class MyClass 

{
  public:
    MyClass(void

    {
      s = new std::string();
    }

    ~MyClass(void

    {
      delete s;
    }

  private:
    std::string * s;
}

The pointer variable s is initialized as a string objected on the heap which will deleted when the instance of MyClass runs out of scope. To safe yourself some writing whenever you want to do just that, you can use the SimpleRAII helper class to achieve that same thing. MyClass would then look like this:

class MyClass : public SimpleRAII
{
  public:
    MyClass(void)
    {
      s = manage(new std::string());
    }
  private:
    std::string * s;
}
 

Here, no destructor is needed anymore.

More information can be obtained from the Readme.txt in the download package at sourceforge.

Blog

SharpDC
A portable, lightweight, open-source .NET standard library for implementing IEEE 11073 SDC Family devices | 4/29/2021

Honestly, I didn't think I would give it another shot, but here is my latest (and ... Read More

HttpIoT
Truly portable, zero-dependency, lightweight .NET standard Http server. | 12/27/2020

HttpIot is my latest project, a truly portable, zero-dependency, lightweight .NET ... Read More

OaSharp (OpenAPI Sharp)
An OpenAPI / Swagger C# REST server code generator and hosting .NET standard library | 5/21/2020

My first attempts with C# server code generation for OpenAPI failed catastrophically. ... Read More

More Blog Entries