
#include "../libssts/baseobject.h"

/*
 * I have a distaste C++. So this is not a priority, and may not even
 * work at all.
 */
namespace SSTS {
  class SObject {
    struct SObject self;
    
    inline SObject () {
      this.self = s_object_new ();
    }
    
    inline ~SObject () {
      s_object_free (this.self);
    }
    
    inline void
    initialize (const schar * name) {
      s_object_initialize (this.self, name);
    }
    
    inline void
    initialize (const std::string name) {
      s_object_initialize (this.self, name.c_str);
    }
    
    inline void
    ref () {
      s_object_ref (this.self);
    }
    
    inline void
    unref () {
      s_object_unref (this.self);
    }
    
  }
  
}
