Kiwi Engine
VM for interpreter
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
KEDictionary.h
Go to the documentation of this file.
1 
8 #ifndef KEDICTIONARY_H
9 #define KEDICTIONARY_H
10 
11 #include <Coconut/Coconut.h>
12 #include "KEObject.h"
13 #include "KEForwarders.h"
14 
16 #define KESizeOfDictionaryHashTable 64
17 
19 struct KEDictionaryItem ;
20 
24 struct KEDictionary {
28  struct KEDictionaryItem * dictionaryItems[KESizeOfDictionaryHashTable] ;
30  uint64_t itemCount ;
31 } ;
32 
38 struct KEDictionary *
39 KEAllocateDictionary(struct CNResource * resource) ;
40 
46 static inline struct CNResource *
47 KEResourceOfDictionary(struct KEDictionary * src)
48 {
49  return KEResourceOfObject(&(src->superClass)) ;
50 }
51 
52 static inline void
53 KERetainDictionary(struct KEDictionary * dst)
54 {
55  KERetainObject(&(dst->superClass)) ;
56 }
57 
58 static inline void
59 KEReleaseDictionary(struct KEDictionary * dst)
60 {
61  KEReleaseObject(&(dst->superClass)) ;
62 }
63 
69 static inline uint64_t
70 KECountOfDictionary(struct KEDictionary * src)
71 {
72  return src->itemCount ;
73 }
74 
81 void
82 KESetValueToDictionary(struct KEDictionary * dst, struct CNString * key, struct KEValue * val) ;
83 
91 struct KEValue *
92 KEValueInDictionary(struct KEDictionary * src, struct CNString * key) ;
93 
100 struct CNObjectList
101 KEKeysInDictionary(struct KEDictionary * src, struct CNResource * resource) ;
102 
108 void
109 KEDumpDictionary(struct CNText * outbuf, struct KEDictionary * src) ;
110 
111 #endif /* KEDICTIONARY_H */
struct KEDictionaryItem * dictionaryItems[KESizeOfDictionaryHashTable]
Definition: KEDictionary.h:28
struct CNObjectList KEKeysInDictionary(struct KEDictionary *src, struct CNResource *resource)
Get string keys from dictionary.
void KEDumpDictionary(struct CNText *outbuf, struct KEDictionary *src)
Dump all elements in value dictionary.
Define KEObject class.
Definition: KEObject.h:42
#define KESizeOfDictionaryHashTable
Definition: KEDictionary.h:16
void KESetValueToDictionary(struct KEDictionary *dst, struct CNString *key, struct KEValue *val)
Set value to dictionary.
struct KEValue * KEValueInDictionary(struct KEDictionary *src, struct CNString *key)
Get value in the dictionary by the key.
struct KEObject superClass
Definition: KEDictionary.h:26
struct KEDictionary * KEAllocateDictionary(struct CNResource *resource)
Allocate dictionary.
Definition: KEValue.h:40
Dictionary class. The key is CNString and the value is KEValue.
Definition: KEDictionary.h:24
Forward declarations of the data type in KiwiEngine.
uint64_t itemCount
Definition: KEDictionary.h:30