StartLineProcessConnector::~StartLineProcessConnector() {
    DDSDomainParticipant *participant = RTIConnector::getParticipant();
    DDS_ReturnCode_t retcode;


    if (NULL != m_reader_cache) {
        if (DDS_RETCODE_OK != RTIConnector::getSubscriber()->delete_datareader(m_reader_cache)) {

            g_cSystemLogger.LogMessage("(%s:%s(:%d))::Unable to delete m_reader_cache \n", LOG_LOCATION);
        }
        m_reader_cache = NULL;
    }
    if (NULL != m_read_topic) {
        if (DDS_RETCODE_OK != participant->delete_topic(m_read_topic)) {

            g_cSystemLogger.LogMessage("(%s:%s(:%d))::Unable to delete m_read_topic \n", LOG_LOCATION);
        }
        m_read_topic = NULL;
    }

    // Un-register the type...
    if ((NULL != participant) && (NULL != m_type_name_cache)) {
        retcode = MONITORING::leaseProcessStartTypeSupport::unregister_type(participant, m_type_name_cache);
        if (retcode != DDS_RETCODE_OK) {

            g_cSystemLogger.LogMessage("(%s:%s(:%d))::Error ---> RTCConnector() unregister_type RTC error \n", LOG_LOCATION);
        }
        m_type_name_cache = NULL;
    }
    pt_rtc = 0;

    return;
}