nux-1.14.0
|
00001 /* 00002 * Copyright 2010 Inalogic® Inc. 00003 * 00004 * This program is free software: you can redistribute it and/or modify it 00005 * under the terms of the GNU Lesser General Public License, as 00006 * published by the Free Software Foundation; either version 2.1 or 3.0 00007 * of the License. 00008 * 00009 * This program is distributed in the hope that it will be useful, but 00010 * WITHOUT ANY WARRANTY; without even the implied warranties of 00011 * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR 00012 * PURPOSE. See the applicable version of the GNU Lesser General Public 00013 * License for more details. 00014 * 00015 * You should have received a copy of both the GNU Lesser General Public 00016 * License along with this program. If not, see <http://www.gnu.org/licenses/> 00017 * 00018 * Authored by: Jay Taoko <jaytaoko@inalogic.com> 00019 * 00020 */ 00021 00022 00023 #ifndef NMEMORY_H 00024 #define NMEMORY_H 00025 00026 #define NUX_DEFAULT_ALIGNMENT 4 00027 00028 #define NUX_SAFE_DELETE(mem) if(mem) \ 00029 { \ 00030 delete(mem); \ 00031 (mem) = 0; \ 00032 } 00033 #define NUX_SAFE_DELETE_ARRAY(mem_array) if(mem_array) \ 00034 { \ 00035 delete[](mem_array); \ 00036 (mem_array) = 0; \ 00037 } 00038 00039 00040 namespace nux 00041 { 00042 00043 t_u32 Memcmp ( const void *Buf1, const void *Buf2, t_u32 Count ); 00044 00045 bool MemIsZero ( const void *V, t_size Count ); 00046 00047 void *Memmove ( void *Dest, const void *Src, t_size Count ); 00048 00049 void Memset ( void *Dest, t_s32 C, t_size Count ); 00050 00051 void Memzero ( void *Dest, t_size Count ); 00052 00053 void Memcpy ( void *Dest, const void *Src, t_size Count ); 00054 00055 void Memswap ( void *Ptr1, void *Ptr2, t_size Size ); 00056 00058 bool IsMemoryAligned (void *data, t_u32 alignment); 00059 00060 void *Malloc (t_size Count, t_u32 Alignment = NUX_DEFAULT_ALIGNMENT); 00061 void *Realloc (void *Original, t_size Count, t_u32 Alignment = NUX_DEFAULT_ALIGNMENT); 00062 00063 } 00064 00065 #endif // NMEMORY_H