KineticClient * KineticClient_Init(KineticClientConfig *config) { KineticLogger_Init(config->logFile, config->logLevel); KineticClient * client = KineticCalloc(1, sizeof(*client)); if (client == NULL) { KineticLogger_Close(); return NULL; } /* Use defaults if set to 0. */ if (config->readerThreads == 0) { config->readerThreads = KINETIC_CLIENT_DEFAULT_READER_THREADS; } if (config->maxThreadpoolThreads == 0) { config->maxThreadpoolThreads = KINETIC_CLIENT_DEFAULT_MAX_THREADPOOL_THREADS; } bool success = KineticBus_Init(client, config); if (!success) { KineticFree(client); KineticLogger_Close(); return NULL; } return client; }
void KineticClient_Shutdown(KineticClient * const client) { KineticBus_Shutdown(client); KineticFree(client); KineticLogger_Close(); }