// wrapScopeAnnotation.cpp
// This file is generated by Shroud 0.12.2. Do not edit.
#include "wrapScopeAnnotation.h"

#include "caliper/cali.h"
#include <cstddef>

// splicer begin class.ScopeAnnotation.CXX_definitions
// splicer end class.ScopeAnnotation.CXX_definitions

extern "C" {

// splicer begin class.ScopeAnnotation.C_definitions
// splicer end class.ScopeAnnotation.C_definitions

cali_ScopeAnnotation * cali_ScopeAnnotation_begin(const char * name,
    cali_ScopeAnnotation * SHadow_rv)
{
    // splicer begin class.ScopeAnnotation.method.begin
    cali::ScopeAnnotation *SHCXX_rv = new cali::ScopeAnnotation(name);
    SHadow_rv->addr = static_cast<void *>(SHCXX_rv);
    SHadow_rv->idtor = 1;
    return SHadow_rv;
    // splicer end class.ScopeAnnotation.method.begin
}

void cali_ScopeAnnotation_end(cali_ScopeAnnotation * self)
{
    cali::ScopeAnnotation *SH_this =
        static_cast<cali::ScopeAnnotation *>(self->addr);
    // splicer begin class.ScopeAnnotation.method.end
    delete SH_this;
    self->addr = nullptr;
    // splicer end class.ScopeAnnotation.method.end
}

}  // extern "C"
