cmEngine  0.1.1
A library for interpreting CMake code.
cmSymbol.h
1 #ifndef cmEngine_Library_cmSymbol_h
2 #define cmEngine_Library_cmSymbol_h
3 
4 #include "cmWarnUnusedResult.h"
5 #include "cmTypes.h"
6 
7 #include <stddef.h>
8 
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 struct cmHost;
14 
19 struct cmSymbol
20 {
22  struct cmHost* host;
24  char* key;
26  size_t key_size;
28  void* data;
30  void* (*copy)(struct cmHost* host, const void* data);
33  void (*release)(struct cmHost* host, void* data);
34 };
35 
41 void
42 cmInitSymbol(struct cmSymbol* symbol, struct cmHost* host);
43 
48 void
49 cmClearSymbol(struct cmSymbol* symbol);
50 
58 int
59 cmCopySymbol(const struct cmSymbol* src, struct cmSymbol* dst);
60 
66 void
67 cmMoveSymbol(struct cmSymbol* src, struct cmSymbol* dst);
68 
75 int CM_WARN_UNUSED_RESULT
76 cmSetSymbolKey(struct cmSymbol* symbol, const char* key);
77 
87 int
88 cmCompareSymbols(const struct cmSymbol* a, const struct cmSymbol* b, cmBool ignore_case);
89 
90 #ifdef __cplusplus
91 } /* extern "C" */
92 #endif
93 
94 #endif /* cmEngine_Library_cmSymbol_h */
size_t key_size
Definition: cmSymbol.h:26
struct cmHost * host
Definition: cmSymbol.h:22
void cmClearSymbol(struct cmSymbol *symbol)
Definition: cmSymbol.c:28
int cmCopySymbol(const struct cmSymbol *src, struct cmSymbol *dst)
Definition: cmSymbol.c:45
void cmInitSymbol(struct cmSymbol *symbol, struct cmHost *host)
Definition: cmSymbol.c:17
unsigned char cmBool
Definition: cmTypes.h:42
char * key
Definition: cmSymbol.h:24
Definition: cmHost.h:23
void * data
Definition: cmSymbol.h:28
Definition: cmSymbol.h:19
int cmCompareSymbols(const struct cmSymbol *a, const struct cmSymbol *b, cmBool ignore_case)
Definition: cmSymbol.c:111
void cmMoveSymbol(struct cmSymbol *src, struct cmSymbol *dst)
Definition: cmSymbol.c:72
void(* release)(struct cmHost *host, void *data)
Definition: cmSymbol.h:33
int CM_WARN_UNUSED_RESULT cmSetSymbolKey(struct cmSymbol *symbol, const char *key)
Definition: cmSymbol.c:92