[Plugin] CSTL - Data container(s) (Currently vector)
#52

Great job! This plugin saved my AMX a couple megabytes..

I'd like to suggest a couple changes to the include file, though. Add the "const" keyword for all strings that won't get changed (i.e. element[], key[], value[]). Also, change buflen to "buflen = sizeof(buffer)" so you won't have to specify that argument in most cases.

Actually, I could just do that for you.. Here:
pawn Код:
#if defined _cstl_inc
    #endinput
#endif
#define _cstl_inc
#pragma library cstl

#define VEC_ENTRY_TYPE_CELL 1
#define VEC_ENTRY_TYPE_ARRAY 2
#define VEC_ENTRY_TYPE_FLOAT 3

// VECTOR

native vector_push_back(vecid, element); // push element
native vector_push_back_float(vecid, Float:element); // push element
native vector_push_back_arr(vecid, const element[]); // push array

native vector_size(vecid); // get vector size

native vector_get(vecid, id); // get element
native Float:vector_get_float(vecid, id); // get floating point number
native vector_get_arr(vecid, id, buffer[], buflen = sizeof(buffer)); // get array element to buffer

native vector_set(vecid, id, element); // set cell
native vector_set_float(vecid, id, Float:element); // set cell
native vector_set_arr(vecid, id, const element[]); // set array

native vector_clear(vecid); // clear vector
native vector_resize(vecid, newsize); // attention!: reducing size causes memory leaks if array pointers are removed

native vector_entry_type(vecid, id); // get element type
native vector_remove(vecid, id); // remove element by ID

native vector_find(vecid, element);  // find ID of int element
native vector_find_float(vecid, Float:element); // find ID of float element
native vector_find_arr(vecid, const element[]); // find ID of array

native vector_globalize(vecid); // makes vector visible to all scripts
native vector_deglobalize(vecid); // deglobalizes vector (vector removed from all scripts except calling script)
native vector_is_globalized(vecid); // is vector ID globalized

native vector_index_exists(vecid, index); // does index exist

// MAP

native map_insert(mapid, const key[], value);
native map_insert_float(mapid, const key[], Float:value);
native map_insert_arr(mapid, const key[], const value[]);

native map_get(mapid, const key[]);
native Float:map_get_float(mapid, const key[]);
native map_get_arr(mapid, const key[], buffer[], buflen = sizeof(buffer));

native map_size(mapid);
native map_remove(mapid, const key[]);
native map_contains(mapid, const key[]);
native map_entry_type(mapid, const key[]);

native map_clear(mapid);

native map_globalize(mapid); // makes map visible to all scripts
native map_deglobalize(mapid); // deglobalizes map (map removed from all scripts except calling script)
native map_is_globalized(mapid); // is map ID globalized
Reply


Messages In This Thread
CSTL - Data containers (Vector, Map) - by Teprey - 12.03.2011, 13:38
Re: CSTL - Data container(s) (Currently vector) - by Zh3r0 - 12.03.2011, 14:24
Re: CSTL - Data container(s) (Currently vector) - by TheArcher - 12.03.2011, 14:59
Re: CSTL - Data container(s) (Currently vector) - by Teprey - 12.03.2011, 15:08
Re: CSTL - Data container(s) (Currently vector) - by Zh3r0 - 12.03.2011, 15:12
Re: CSTL - Data container(s) (Currently vector) - by [L3th4l] - 12.03.2011, 15:18
Re: CSTL - Data container(s) (Currently vector) - by Teprey - 12.03.2011, 15:41
Re: CSTL - Data container(s) (Currently vector) - by Dreftas - 12.03.2011, 16:41
Re: CSTL - Data container(s) (Currently vector) - by Medal Of Honor team - 12.03.2011, 17:03
Re: CSTL - Data container(s) (Currently vector) - by Teprey - 12.03.2011, 18:27
Re: CSTL - Data container(s) (Currently vector) - by hencz - 12.03.2011, 18:45
Re: CSTL - Data container(s) (Currently vector) - by anonymousx - 12.03.2011, 18:54
Re: CSTL - Data container(s) (Currently vector) - by 1337connor - 12.03.2011, 19:11
Re: CSTL - Data container(s) (Currently vector) - by xxmitsu - 12.03.2011, 19:17
Re: CSTL - Data container(s) (Currently vector) - by Teprey - 12.03.2011, 19:27
Re: CSTL - Data container(s) (Currently vector) - by Patrik356b - 12.03.2011, 19:38
Re: CSTL - Data container(s) (Currently vector) - by RyDeR` - 12.03.2011, 22:35
Re: CSTL - Data container(s) (Currently vector) - by CyNiC - 13.03.2011, 03:05
Re: CSTL - Data container(s) (Currently vector) - by anonymousx - 13.03.2011, 07:45
Re: CSTL - Data container(s) (Currently vector) - by Kyosaur - 13.03.2011, 07:54
Re: CSTL - Data container(s) (Currently vector) - by Minokon - 13.03.2011, 09:39
Re: CSTL - Data container(s) (Currently vector) - by Macluawn - 13.03.2011, 15:35
Re: CSTL - Data container(s) (Currently vector) - by Teprey - 14.03.2011, 13:54
Re: CSTL - Data container(s) (Currently vector) - by XFlawless - 14.03.2011, 14:22
Re: CSTL - Data container(s) (Currently vector) - by RyDeR` - 14.03.2011, 15:42
Re: CSTL - Data container(s) (Currently vector) - by Teprey - 14.03.2011, 16:08
Re: CSTL - Data container(s) (Currently vector) - by Teprey - 14.03.2011, 20:33
Re: CSTL - Data container(s) (Currently vector) - by Kyosaur - 15.03.2011, 05:19
Re: CSTL - Data container(s) (Currently vector) - by SlashPT - 15.03.2011, 06:58
Re: CSTL - Data container(s) (Currently vector) - by Macluawn - 15.03.2011, 07:05
Re: CSTL - Data container(s) (Currently vector) - by Retardedwolf - 15.03.2011, 10:00
Re: CSTL - Data container(s) (Currently vector) - by Slice - 15.03.2011, 11:43
Re: CSTL - Data container(s) (Currently vector) - by Teprey - 15.03.2011, 12:25
Re: CSTL - Data container(s) (Currently vector) - by Teprey - 15.03.2011, 15:18
Re: CSTL - Data container(s) (Currently vector) - by iggy1 - 21.03.2011, 08:42
Re: CSTL - Data container(s) (Currently vector) - by CaHbKo - 14.06.2011, 09:09
Re: CSTL - Data container(s) (Currently vector) - by Calgon - 14.06.2011, 09:16
Re: CSTL - Data container(s) (Currently vector) - by 0x5A656578 - 14.06.2011, 10:47
Re: CSTL - Data container(s) (Currently vector) - by Teprey - 14.06.2011, 15:36
Re: CSTL - Data container(s) (Currently vector) - by CaHbKo - 19.06.2011, 12:07
Re: CSTL - Data container(s) (Currently vector) - by Teprey - 19.06.2011, 15:19
Re: CSTL - Data container(s) (Currently vector) - by Macluawn - 24.06.2011, 21:48
Re: CSTL - Data container(s) (Currently vector) - by linuxthefish - 24.06.2011, 22:28
Re: CSTL - Data container(s) (Currently vector) - by Teprey - 29.06.2011, 11:54
Re: CSTL - Data container(s) (Currently vector) - by GangsTa_ - 29.06.2011, 15:00
Re: CSTL - Data container(s) (Currently vector) - by iggy1 - 29.06.2011, 17:12
Re: CSTL - Data container(s) (Currently vector) - by Teprey - 30.06.2011, 10:32
Re: CSTL - Data container(s) (Currently vector) - by Teprey - 14.07.2011, 11:28
Re: CSTL - Data container(s) (Currently vector) - by Dreftas - 25.08.2011, 10:10
Re: CSTL - Data container(s) (Currently vector) - by papedo - 16.09.2011, 17:11
Re: CSTL - Data container(s) (Currently vector) - by Teprey - 18.10.2011, 15:26
Re: CSTL - Data container(s) (Currently vector) - by Slice - 18.10.2011, 16:03
Re: CSTL - Data container(s) (Currently vector) - by SourceCode - 18.10.2011, 16:12
Re: CSTL - Data container(s) (Currently vector) - by Teprey - 18.10.2011, 19:11
Re: CSTL - Data container(s) (Currently vector) - by Babul - 20.10.2011, 18:22
Re: CSTL - Data container(s) (Currently vector) - by AndreT - 04.12.2011, 09:19
Re: CSTL - Data container(s) (Currently vector) - by SchurmanCQC - 07.01.2012, 19:40
Re: CSTL - Data container(s) (Currently vector) - by cyber_punk - 07.07.2012, 01:58
Re: CSTL - Data container(s) (Currently vector) - by AndreT - 07.07.2012, 06:16
Re: CSTL - Data container(s) (Currently vector) - by cyber_punk - 10.07.2012, 00:26
Re: CSTL - Data container(s) (Currently vector) - by Yiin - 09.05.2013, 13:05
Re: CSTL - Data container(s) (Currently vector) - by RCON1 - 22.09.2013, 09:34
Re: CSTL - Data container(s) (Currently vector) - by OxyG3N - 07.01.2014, 10:54
Re: CSTL - Data container(s) (Currently vector) - by detter - 12.01.2014, 15:29
Re: CSTL - Data container(s) (Currently vector) - by Michalec - 12.12.2015, 22:36

Forum Jump:


Users browsing this thread: 3 Guest(s)