// This file is part of CFaction.
// Copyright 2009 CFaction Contributors.
// All rights reserved.
//
// CFaction is free software: you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License as published
// by the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// CFaction is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with CFaction. If not, see <http://www.gnu.org/licenses/>.
#ifndef CFaction_h
#define CFaction_h
#if defined(CFACTION_EXPORTS)
#if defined(WIN32)
#define CFACTION_EXPORT __declspec(dllexport)
#elif defined(CFACTION_GCC_VISIBILITY)
#define CFACTION_EXPORT __attribute__((visibility("default")))
#else
#define CFACTION_EXPORT
#endif
#else
#if defined(WIN32)
#define CFACTION_EXPORT __declspec(dllimport)
#else
#define CFACTION_EXPORT
#endif
#endif
#if defined(WIN32)
#define CFACTION_API __stdcall
#else
#define CFACTION_API
#endif
#define CFACTION_CAST(type, object) ((type*)(((char*)object) + type##Type.parentType->objectSize))
CFACTION_EXPORT void* CFACTION_API CFaction_alloc(unsigned int size);
CFACTION_EXPORT void CFACTION_API CFaction_dealloc(void* object);
#endif // CFaction_h