Commit 2132f4fd9035ef87f16c9d7e48948b8e2ed11ba5
1 parent
9a28fc52
another change on class definition macro
Showing
6 changed files
with
19 additions
and
13 deletions
| @@ -27,8 +27,10 @@ | @@ -27,8 +27,10 @@ | ||
| 27 | #define CCLASS_MAGIC 0xFEFE | 27 | #define CCLASS_MAGIC 0xFEFE |
| 28 | 28 | ||
| 29 | #define CLASS(_class) \ | 29 | #define CLASS(_class) \ |
| 30 | - typedef struct _##_class { \ | ||
| 31 | - const _CCLASS const class; | 30 | + struct _##_class; \ |
| 31 | + typedef struct _##_class * _class; \ | ||
| 32 | + extern const _CCLASS const __##_class; \ | ||
| 33 | + struct _##_class | ||
| 32 | 34 | ||
| 33 | #define ENDC(_class) } * _class; \ | 35 | #define ENDC(_class) } * _class; \ |
| 34 | extern const _CCLASS const __##_class; | 36 | extern const _CCLASS const __##_class; |
| @@ -23,15 +23,15 @@ | @@ -23,15 +23,15 @@ | ||
| 23 | #include "token/cclass.h" | 23 | #include "token/cclass.h" |
| 24 | 24 | ||
| 25 | 25 | ||
| 26 | -CLASS(CRYPT) | 26 | +CLASS(CRYPT) { |
| 27 | + const _CCLASS const class; | ||
| 27 | const char * algorithm; | 28 | const char * algorithm; |
| 28 | const char * mode; | 29 | const char * mode; |
| 29 | MCRYPT mcrypt; | 30 | MCRYPT mcrypt; |
| 30 | size_t ivsize; | 31 | size_t ivsize; |
| 31 | size_t keysize; | 32 | size_t keysize; |
| 32 | void * iv; | 33 | void * iv; |
| 33 | -ENDC(CRYPT) | ||
| 34 | - | 34 | +}; |
| 35 | 35 | ||
| 36 | void * crypt_encrypt( | 36 | void * crypt_encrypt( |
| 37 | CRYPT _this, | 37 | CRYPT _this, |
| @@ -37,7 +37,8 @@ enum DYNTYPE_TYPES { | @@ -37,7 +37,8 @@ enum DYNTYPE_TYPES { | ||
| 37 | }; | 37 | }; |
| 38 | 38 | ||
| 39 | 39 | ||
| 40 | -CLASS(DYNTYPE) | 40 | +CLASS(DYNTYPE) { |
| 41 | + const _CCLASS const class; | ||
| 41 | enum DYNTYPE_TYPES type; | 42 | enum DYNTYPE_TYPES type; |
| 42 | size_t size; | 43 | size_t size; |
| 43 | union _data { | 44 | union _data { |
| @@ -48,7 +49,7 @@ CLASS(DYNTYPE) | @@ -48,7 +49,7 @@ CLASS(DYNTYPE) | ||
| 48 | struct _DYNTYPE ** _array; | 49 | struct _DYNTYPE ** _array; |
| 49 | DYNTYPE_HASH _hash; | 50 | DYNTYPE_HASH _hash; |
| 50 | } data; | 51 | } data; |
| 51 | -ENDC(DYNTYPE) | 52 | +}; |
| 52 | 53 | ||
| 53 | #include "token/dyntype/hash.h" | 54 | #include "token/dyntype/hash.h" |
| 54 | 55 |
| @@ -30,12 +30,13 @@ struct _DYNTYPE_HASH; | @@ -30,12 +30,13 @@ struct _DYNTYPE_HASH; | ||
| 30 | #undef DYNTYPE_HASH | 30 | #undef DYNTYPE_HASH |
| 31 | #define __DYNTYPE_HASH_H__ | 31 | #define __DYNTYPE_HASH_H__ |
| 32 | 32 | ||
| 33 | -CLASS(DYNTYPE_HASH) | 33 | +CLASS(DYNTYPE_HASH) { |
| 34 | + const _CCLASS const class; | ||
| 34 | char ** keys; | 35 | char ** keys; |
| 35 | DYNTYPE * values; | 36 | DYNTYPE * values; |
| 36 | size_t size; | 37 | size_t size; |
| 37 | size_t used; | 38 | size_t used; |
| 38 | -ENDC(DYNTYPE_HASH) | 39 | +}; |
| 39 | 40 | ||
| 40 | 41 | ||
| 41 | void dyntype_hash_set(DYNTYPE_HASH _this, const char * key, struct _DYNTYPE * value); | 42 | void dyntype_hash_set(DYNTYPE_HASH _this, const char * key, struct _DYNTYPE * value); |
| @@ -28,9 +28,10 @@ enum PACKET_CONTENT_KEYS { | @@ -28,9 +28,10 @@ enum PACKET_CONTENT_KEYS { | ||
| 28 | }; | 28 | }; |
| 29 | 29 | ||
| 30 | 30 | ||
| 31 | -CLASS(PACKET) | 31 | +CLASS(PACKET) { |
| 32 | + const _CCLASS const class; | ||
| 32 | DYNTYPE content[2]; | 33 | DYNTYPE content[2]; |
| 33 | -ENDC(PACKET) | 34 | +}; |
| 34 | 35 | ||
| 35 | 36 | ||
| 36 | DYNTYPE packet_getHeader(PACKET _this); | 37 | DYNTYPE packet_getHeader(PACKET _this); |
| @@ -16,9 +16,10 @@ _reset() | @@ -16,9 +16,10 @@ _reset() | ||
| 16 | #endif//_RESET | 16 | #endif//_RESET |
| 17 | 17 | ||
| 18 | 18 | ||
| 19 | -CLASS(MOCK_CLASS) | 19 | +CLASS(MOCK_CLASS) { |
| 20 | + const _CCLASS const class; | ||
| 20 | int value; | 21 | int value; |
| 21 | -ENDC(MOCK_CLASS) | 22 | +}; |
| 22 | 23 | ||
| 23 | extern const _CCLASS const __MOCK_CLASS; | 24 | extern const _CCLASS const __MOCK_CLASS; |
| 24 | 25 |
Please
register
or
login
to post a comment