#include <stdio.h>
#include <appagent.h>

static int H_Metric1(const TCHAR *name, const TCHAR *arg, TCHAR *value)
{
    strcpy(value, "OK");
    return 0;
}

static APPAGENT_METRIC s_metrics[] =
{
    { "DemoApp.Metric1", NULL, H_Metric1, 0, "Demo metric 1" }
};

void AppAgentLogger(int level, const TCHAR *format, va_list args)
{
    vprintf(format, args);
}

static APPAGENT_INIT s_appAgentInfo =
{
        "DEMOAPP",
        "",
        NULL,
        AppAgentLogger,
        sizeof(s_metrics) / sizeof(APPAGENT_METRIC),
        s_metrics,
        0,
        NULL,
        0,
        NULL
};

static void DebugWriter(const TCHAR *tag, const TCHAR *format, va_list args)
{
    if (tag != nullptr)
        printf("[%s] ",tag);
    vprintf(format, args);
    printf("\n");
}

int main(int argc, char *argv[])
{
    nxlog_set_debug_writer(DebugWriter);
    nxlog_set_debug_level(9);

    printf("Initializing AppAgent...\n");
    if (!AppAgentInit(&s_appAgentInfo))
    {
            printf("Init failed!\n");
    }
    printf("Starting AppAgent...\n");
    AppAgentStart();

    printf("App started\n");

    sleep(600);
    return 0;
}
