#include <stdio.h>
#include <stdlib.h>
#include "ndds/ndds_c.h"
#include "HelloWorld.h"
#include "HelloWorldSupport.h"
#include "HelloCommon.h"
int RTI_SNPRINTF (
   char *buffer,
   size_t count,
   const char *format, ...)
{
    va_list ap;
    va_start(ap, format);
#ifdef RTI_WIN32
    length = _vsnprintf_s(buffer, count, count, format, ap);
#else
    length = vsnprintf(buffer, count, format, ap);
#endif
     va_end(ap);
}
static int publisher_shutdown(
{
    int status = 0;
    if (participant != NULL) {
            fprintf(stderr, "delete_contained_entities error %d\n", retcode);
            status = -1;
        }
            fprintf(stderr, "delete_participant error %d\n", retcode);
            status = -1;
        }
    }
    
    return status;
}
static int publisher_main(const struct CmdLineArgs * const args)
{
    HelloWorldDataWriter *HelloWorld_writer = NULL;
    HelloWorld *instance = NULL;
    const char *type_name = NULL;
    int count = 0;  
        fprintf(stderr, "get_default_participant_qos error\n");
        return -1;
    }
    
    
    retcode = configureTcpTransport(args, &domainparticipant_qos);
        fprintf(stderr, "assert_property error\n");
        return -1;
    }
    if (participant == NULL) {
        fprintf(stderr, "create_participant error\n");
        publisher_shutdown(participant);
        return -1;
    }
    
    if (publisher == NULL) {
        fprintf(stderr, "create_publisher error\n");
        publisher_shutdown(participant);
        return -1;
    }
    
    type_name = HelloWorldTypeSupport_get_type_name();
    retcode = HelloWorldTypeSupport_register_type(
        participant, type_name);
        fprintf(stderr, "register_type error %d\n", retcode);
        publisher_shutdown(participant);
        return -1;
    }
    
        participant, "Example HelloWorld",
    if (topic == NULL) {
        fprintf(stderr, "create_topic error\n");
        publisher_shutdown(participant);
        return -1;
    }
    
        publisher, topic,
    if (writer == NULL) {
        fprintf(stderr, "create_datawriter error\n");
        publisher_shutdown(participant);
        return -1;
    }
    HelloWorld_writer = HelloWorldDataWriter_narrow(writer);
    if (HelloWorld_writer == NULL) {
        fprintf(stderr, "DataWriter narrow error\n");
        publisher_shutdown(participant);
        return -1;
    }
    
    if (instance == NULL) {
        fprintf(stderr, "HelloWorldTypeSupport_create_data error\n");
        publisher_shutdown(participant);
        return -1;
    }
    
    
    for (count=0; (args->sample_count == 0) || (count < args->sample_count); ++count) {
        printf("Writing HelloWorld, count %d\n", count);
        fflush(stdout);
        
        RTI_SNPRINTF(instance->msg, 128,
                "Hello, this is sample #%d", count);
        
        retcode = HelloWorldDataWriter_write(
            HelloWorld_writer, instance, &instance_handle);
            fprintf(stderr, "write error %d\n", retcode);
        }
    }
    
        fprintf(stderr, "HelloWorldTypeSupport_delete_data error %d\n", retcode);
    }
    
             
    return publisher_shutdown(participant);
}
int main(int argc, const char **argv)
{
    struct CmdLineArgs args;
    if (!parseCmdline(&args, argc, argv)) {
        return 1;
    }
    if (args.verbose > 1) {
        
    }
    return publisher_main(&args);
}