#ifndef HelloWorld_1436885487_h
#define HelloWorld_1436885487_h
#ifndef NDDS_STANDALONE_TYPE
#ifndef ndds_cpp_h
#include "ndds/ndds_cpp.h"
#endif
#include "rti/xcdr/Interpreter.hpp"
#else
#include "ndds_standalone_type.h"
#endif
extern "C" {
    extern const char *HelloWorldTYPENAME;
}
struct HelloWorldSeq;
#ifndef NDDS_STANDALONE_TYPE
class HelloWorldTypeSupport;
class HelloWorldDataWriter;
class HelloWorldDataReader;
#endif
class HelloWorld 
{
  public:
    typedef struct HelloWorldSeq Seq;
    #ifndef NDDS_STANDALONE_TYPE
    typedef HelloWorldTypeSupport TypeSupport;
    typedef HelloWorldDataWriter DataWriter;
    typedef HelloWorldDataReader DataReader;
    #endif
};
#if (defined(RTI_WIN32) || defined (RTI_WINCE) || defined(RTI_INTIME)) && defined(NDDS_USER_DLL_EXPORT)
#undef NDDSUSERDllExport
#define NDDSUSERDllExport __declspec(dllexport)
#endif
#ifndef NDDS_STANDALONE_TYPE
NDDSUSERDllExport 
DDS_TypeCode * HelloWorld_get_typecode(
void); 
NDDSUSERDllExport RTIXCdrTypePlugin *HelloWorld_get_type_plugin_info(void);
NDDSUSERDllExport RTIXCdrSampleAccessInfo *HelloWorld_get_sample_access_info(void);
NDDSUSERDllExport RTIXCdrSampleAccessInfo *HelloWorld_get_sample_seq_access_info(void);
#endif
DDS_SEQUENCE(HelloWorldSeq, HelloWorld);
NDDSUSERDllExport
RTIBool HelloWorld_initialize(
    HelloWorld* self);
NDDSUSERDllExport
RTIBool HelloWorld_initialize_ex(
    HelloWorld* self,RTIBool allocatePointers,RTIBool allocateMemory);
NDDSUSERDllExport
RTIBool HelloWorld_initialize_w_params(
    HelloWorld* self,
NDDSUSERDllExport
RTIBool HelloWorld_finalize_w_return(
    HelloWorld* self);
NDDSUSERDllExport
void HelloWorld_finalize(
    HelloWorld* self);
NDDSUSERDllExport
void HelloWorld_finalize_ex(
    HelloWorld* self,RTIBool deletePointers);
NDDSUSERDllExport
void HelloWorld_finalize_w_params(
    HelloWorld* self,
NDDSUSERDllExport
void HelloWorld_finalize_optional_members(
    HelloWorld* self, RTIBool deletePointers);  
NDDSUSERDllExport
RTIBool HelloWorld_copy(
    HelloWorld* dst,
    const HelloWorld* src);
#if (defined(RTI_WIN32) || defined (RTI_WINCE) || defined(RTI_INTIME)) && defined(NDDS_USER_DLL_EXPORT)
#undef NDDSUSERDllExport
#define NDDSUSERDllExport
#endif
#ifndef NDDS_STANDALONE_TYPE
    namespace xcdr {
        template <>
        struct type_code<HelloWorld> {
            static const RTIXCdrTypeCode * get();
        };
    } 
}
#endif
#endif 
#ifndef NDDS_STANDALONE_TYPE
#ifndef ndds_cpp_h
#include "ndds/ndds_cpp.h"
#endif
#ifndef dds_c_log_impl_h              
#include "dds_c/dds_c_log_impl.h"                                
#endif 
#ifndef dds_c_log_infrastructure_h                      
#include "dds_c/dds_c_infrastructure_impl.h"       
#endif 
#ifndef cdr_type_h
#include "cdr/cdr_type.h"
#endif    
#ifndef osapi_heap_h
#include "osapi/osapi_heap.h" 
#endif
#else
#include "ndds_standalone_type.h"
#endif
#include "HelloWorld.h"
#ifndef NDDS_STANDALONE_TYPE
#include "HelloWorldPlugin.h"
#endif
#include <new>
const char *HelloWorldTYPENAME = "HelloWorld";
#ifndef NDDS_STANDALONE_TYPE
{
    static RTIBool is_initialized = RTI_FALSE;
    static DDS_TypeCode HelloWorld_g_tc_msg_string = DDS_INITIALIZE_STRING_TYPECODE((128L));
     static DDS_TypeCode_Member HelloWorld_g_tc_members[1]=
    {
        {
            (char *)"msg",
            {
                0,
                -1, 
                NULL
            },
            0, 
            0, 
            0, 
            NULL, 
            RTI_CDR_REQUIRED_MEMBER, 
            1,
            NULL, 
            RTICdrTypeCodeAnnotations_INITIALIZER
        }
    };
    {{
            -1, 
            (char *)"HelloWorld", 
            NULL,       
            0, 
            0, 
            NULL, 
            1, 
            HelloWorld_g_tc_members, 
            RTICdrTypeCodeAnnotations_INITIALIZER,
            NULL, 
            NULL 
        }}; 
    if (is_initialized) {
        return &HelloWorld_g_tc;
    }
    HelloWorld_g_tc.
_data._annotations._allowedDataRepresentationMask = 5;
    HelloWorld_g_tc_members[0]._representation._typeCode = (RTICdrTypeCode *)&HelloWorld_g_tc_msg_string;
    
    HelloWorld_g_tc_members[0]._annotations._defaultValue._d = RTI_XCDR_TK_STRING;
    HelloWorld_g_tc_members[0]._annotations._defaultValue._u.string_value = (
DDS_Char *) 
"";
    HelloWorld_g_tc._data._sampleAccessInfo =
    HelloWorld_get_sample_access_info();
    HelloWorld_g_tc._data._typePlugin =
    HelloWorld_get_type_plugin_info();    
    is_initialized = RTI_TRUE;
    return &HelloWorld_g_tc;
}
#define TSeq HelloWorldSeq
#define T HelloWorld
#include "dds_cpp/generic/dds_cpp_data_TInterpreterSupport.gen"
#undef T
#undef TSeq
RTIXCdrSampleAccessInfo *HelloWorld_get_sample_seq_access_info()
{
    static RTIXCdrSampleAccessInfo HelloWorld_g_seqSampleAccessInfo = {
        RTI_XCDR_TYPE_BINDING_CPP, \
        {sizeof(HelloWorldSeq),0,0,0}, \
        RTI_XCDR_FALSE, \
        DDS_Sequence_get_member_value_pointer, \
        HelloWorldSeq_set_member_element_count, \
        NULL, \
        NULL, \
        NULL \
    };
    return &HelloWorld_g_seqSampleAccessInfo;
}
RTIXCdrSampleAccessInfo *HelloWorld_get_sample_access_info()
{
    static RTIBool is_initialized = RTI_FALSE;
    HelloWorld *sample;
    static RTIXCdrMemberAccessInfo HelloWorld_g_memberAccessInfos[1] =
    {RTIXCdrMemberAccessInfo_INITIALIZER};
    static RTIXCdrSampleAccessInfo HelloWorld_g_sampleAccessInfo = 
    RTIXCdrSampleAccessInfo_INITIALIZER;
    if (is_initialized) {
        return (RTIXCdrSampleAccessInfo*) &HelloWorld_g_sampleAccessInfo;
    }
    RTIXCdrHeap_allocateStruct(
        &sample, 
        HelloWorld);
    if (sample == NULL) {
        return NULL;
    }
    HelloWorld_g_memberAccessInfos[0].bindingMemberValueOffset[0] = 
    (RTIXCdrUnsignedLong) ((char *)&sample->msg - (char *)sample);
    HelloWorld_g_sampleAccessInfo.memberAccessInfos = 
    HelloWorld_g_memberAccessInfos;
    {
        size_t candidateTypeSize = sizeof(HelloWorld);
        if (candidateTypeSize > RTIXCdrLong_MAX) {
            HelloWorld_g_sampleAccessInfo.typeSize[0] =
            RTIXCdrLong_MAX;
        } else {
            HelloWorld_g_sampleAccessInfo.typeSize[0] =
            (RTIXCdrUnsignedLong) candidateTypeSize;
        }
    }
    HelloWorld_g_sampleAccessInfo.useGetMemberValueOnlyWithRef =
    RTI_XCDR_TRUE;
    HelloWorld_g_sampleAccessInfo.getMemberValuePointerFcn = 
    HelloWorld_get_member_value_pointer;
    HelloWorld_g_sampleAccessInfo.languageBinding = 
    RTI_XCDR_TYPE_BINDING_CPP ;
    RTIXCdrHeap_freeStruct(sample);
    is_initialized = RTI_TRUE;
    return (RTIXCdrSampleAccessInfo*) &HelloWorld_g_sampleAccessInfo;
}
RTIXCdrTypePlugin *HelloWorld_get_type_plugin_info()
{
    static RTIXCdrTypePlugin HelloWorld_g_typePlugin = 
    {
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        (RTIXCdrTypePluginInitializeSampleFunction) 
        HelloWorld_initialize_ex,
        NULL,
        (RTIXCdrTypePluginFinalizeSampleFunction)
        HelloWorld_finalize_w_return,
        NULL
    };
    return &HelloWorld_g_typePlugin;
}
#endif
RTIBool HelloWorld_initialize(
    HelloWorld* sample) {
    return HelloWorld_initialize_ex(sample,RTI_TRUE,RTI_TRUE);
}
RTIBool HelloWorld_initialize_ex(
    HelloWorld* sample,RTIBool allocatePointers, RTIBool allocateMemory)
{
    DDS_TYPE_ALLOCATION_PARAMS_DEFAULT;
    allocParams.
allocate_memory = (
DDS_Boolean)allocateMemory;
    return HelloWorld_initialize_w_params(
        sample,&allocParams);
}
RTIBool HelloWorld_initialize_w_params(
{
    if (sample == NULL) {
        return RTI_FALSE;
    }
    if (allocParams == NULL) {
        return RTI_FALSE;
    }
    if (allocParams->allocate_memory) {
        RTICdrType_copyStringEx(
            &sample->msg,
            "",
            (128L),
            RTI_FALSE);
        if (sample->msg == NULL) {
            return RTI_FALSE;
        }
    } else {
        if (sample->msg != NULL) {
            RTICdrType_copyStringEx(
                &sample->msg,
                "",
                (128L),
                RTI_FALSE);
            if (sample->msg == NULL) {
                return RTI_FALSE;
            }
        }
    }
    return RTI_TRUE;
}
RTIBool HelloWorld_finalize_w_return(
    HelloWorld* sample)
{
    HelloWorld_finalize_ex(sample, RTI_TRUE);
    return RTI_TRUE;
}
void HelloWorld_finalize(
    HelloWorld* sample)
{
    HelloWorld_finalize_ex(sample,RTI_TRUE);
}
void HelloWorld_finalize_ex(
    HelloWorld* sample,RTIBool deletePointers)
{
    DDS_TYPE_DEALLOCATION_PARAMS_DEFAULT;
    if (sample==NULL) {
        return;
    } 
    HelloWorld_finalize_w_params(
        sample,&deallocParams);
}
void HelloWorld_finalize_w_params(
{
    if (sample==NULL) {
        return;
    }
    if (deallocParams == NULL) {
        return;
    }
    if (sample->msg != NULL) {
        sample->msg=NULL;
    }
}
void HelloWorld_finalize_optional_members(
    HelloWorld* sample, RTIBool deletePointers)
{
    DDS_TYPE_DEALLOCATION_PARAMS_DEFAULT;
    &deallocParamsTmp;
    if (sample==NULL) {
        return;
    } 
    if (deallocParams) {} 
}
RTIBool HelloWorld_copy(
    HelloWorld* dst,
    const HelloWorld* src)
{
    try {
        if (dst == NULL || src == NULL) {
            return RTI_FALSE;
        }
        if (!RTICdrType_copyStringEx (
            &dst->msg, src->msg, 
            (128L) + 1, RTI_FALSE)){
            return RTI_FALSE;
        }
        return RTI_TRUE;
    } catch (const std::bad_alloc&) {
        return RTI_FALSE;
    }
}
#define T HelloWorld
#define TSeq HelloWorldSeq
#define T_initialize_w_params HelloWorld_initialize_w_params
#define T_finalize_w_params   HelloWorld_finalize_w_params
#define T_copy       HelloWorld_copy
#ifndef NDDS_STANDALONE_TYPE
#include "dds_c/generic/dds_c_sequence_TSeq.gen"
#include "dds_cpp/generic/dds_cpp_sequence_TSeq.gen"
#else
#include "dds_c_sequence_TSeq.gen"
#include "dds_cpp_sequence_TSeq.gen"
#endif
#undef T_copy
#undef T_finalize_w_params
#undef T_initialize_w_params
#undef TSeq
#undef T
#ifndef NDDS_STANDALONE_TYPE
    namespace xcdr {
        const RTIXCdrTypeCode * type_code<HelloWorld>::get() 
        {
            return (const RTIXCdrTypeCode *) HelloWorld_get_typecode();
        }
    } 
}
#endif