/* EINA_GRAPH - EFL graph processing library * Copyright (C) 2013 Jérémy Zurcher * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to * deal in the Software without restriction, including without limitation the * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies of the Software and its Copyright notices. In addition publicly * documented acknowledgment must be given that this software has been used if no * source code of this software is made available publicly. This includes * acknowledgments in either Copyright notices, Manuals, Publicity and Marketing * documents or any documentation provided with any product containing this * software. This License does not apply to any software that links to the * libraries provided by this software (statically or dynamically), but only to * the software provided. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifdef HAVE_CONFIG_H # include #endif /* HAVE_CONFIG_H */ int _eina_graph_log_dom = -1; int _eina_graph_init_count = 0; #include #include "eina_graph_private.h" EAPI int eina_graph_init(void) { const char * log_dom = "eina_graph"; if (++_eina_graph_init_count != 1) { DBG("init count is %d.", _eina_graph_init_count); return _eina_graph_init_count; } if(!eina_init()) goto shutdown_eina; _eina_graph_log_dom = eina_log_domain_register(log_dom, EINA_COLOR_LIGHTBLUE); if (_eina_graph_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: %s", log_dom); goto shutdown_log_dom; } /* FIXME init stuff goes here */ DBG("init..."); return _eina_graph_init_count; shutdown_log_dom: eina_shutdown(); shutdown_eina: return --_eina_graph_init_count; } EAPI int eina_graph_shutdown(void) { if (_eina_graph_init_count <= 0) { ERR("init count not greater than 0."); return 0; } if (--_eina_graph_init_count != 0) { DBG("init count is %d.", _eina_graph_init_count); return _eina_graph_init_count; } /* FIXME shutdown stuff goes here */ DBG("shutdown..."); eina_shutdown(); return _eina_graph_init_count; } Eina_Bool _eina_graph_adjacents_grow(_Eina_Graph_Adjacents *adjs, unsigned int step) { unsigned int *tmp; unsigned int total; total = adjs->total + step; tmp = realloc(adjs->data, sizeof (unsigned int) * total); if (EINA_UNLIKELY(!tmp)) return EINA_FALSE; adjs->total = total; adjs->data = tmp; return EINA_TRUE; }