#include <stdio.h>
#include <uaapplication/application.h>
#include <uaserver/init.h>
#include <trace/trace.h>
#include <appconfig.h>
#include <uaprovider/server/uaprovider_server.h>
#include <platform/hostname.h>
#include <platform/shutdown.h>
#include <crashhandler/crashhandler.h>
#include <memory/memory_layout.h>
#include <memory/memory.h>
#include "custom_provider.h"
#include "../args.h"
{-1, uaprovider_server_init},
{-1, custom_provider_init}
};
int server_main_clear(void)
{
return 0;
}
int server_main_init(int trace_level, int facility_mask, const char *config_file)
{
int ret;
unsigned int i;
static char fqdn[64];
g_appconfig.manufacturer_name = "Unified Automation GmbH";
g_appconfig.product_name = "UaSDK High Performance - Lesson03";
g_appconfig.product_uri = "urn:UnifiedAutomation:UaSdkHP:Lesson03";
g_appconfig.application_name = "UaSDK High Performance - Lesson03";
g_appconfig.application_uri = "urn:UnifiedAutomation:HPC:Example";
g_appconfig.dns = fqdn;
if (ret != 0) {
goto out_init;
}
if (ua_string_index_of(&tmp, "[hostname]") != -1) {
ua_string_replace(&tmp, "[hostname]", fqdn);
}
}
if (ret < 0) goto out_server_init;
if (ret < 0) goto out_server_start;
return 0;
out_server_start:
out_server_init:
out_init:
return ret;
}
int main(int argc, char *argv[])
{
int ret;
unsigned int i;
struct commandline_args args;
parse_commandline(argc, argv, &args);
ret = server_main_init(args.trace_level, args.facility_mask, args.config_file);
if (ret != 0) {
printf("server_main_init() failed with error 0x%08x\n", ret);
exit(EXIT_FAILURE);
}
printf("Server is up and running.\n");
}
}
server_main_clear();
return 0;
}