Rev 3435 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3435 | Rev 3471 | ||
|---|---|---|---|
| Line 35... | Line 35... | ||
| 35 | #include <stdio.h> |
35 | #include <stdio.h> |
| 36 | #include <stdlib.h> |
36 | #include <stdlib.h> |
| 37 | #include <ipc/ipc.h> |
37 | #include <ipc/ipc.h> |
| 38 | #include <libadt/hash_table.h> |
38 | #include <libadt/hash_table.h> |
| 39 | 39 | ||
| - | 40 | #include "trace.h" |
|
| 40 | #include "proto.h" |
41 | #include "proto.h" |
| 41 | 42 | ||
| 42 | #define SRV_PROTO_TABLE_CHAINS 32 |
43 | #define SRV_PROTO_TABLE_CHAINS 32 |
| 43 | #define METHOD_OPER_TABLE_CHAINS 32 |
44 | #define METHOD_OPER_TABLE_CHAINS 32 |
| 44 | 45 | ||
| Line 170... | Line 171... | ||
| 170 | proto_struct_init(p, name); |
171 | proto_struct_init(p, name); |
| 171 | 172 | ||
| 172 | return p; |
173 | return p; |
| 173 | } |
174 | } |
| 174 | 175 | ||
| - | 176 | void proto_delete(proto_t *proto) |
|
| - | 177 | { |
|
| - | 178 | free(proto); |
|
| - | 179 | } |
|
| - | 180 | ||
| 175 | void proto_add_oper(proto_t *proto, int method, oper_t *oper) |
181 | void proto_add_oper(proto_t *proto, int method, oper_t *oper) |
| 176 | { |
182 | { |
| 177 | method_oper_t *mo; |
183 | method_oper_t *mo; |
| 178 | unsigned long key; |
184 | unsigned long key; |
| 179 | 185 | ||
| Line 202... | Line 208... | ||
| 202 | static void oper_struct_init(oper_t *oper, char *name) |
208 | static void oper_struct_init(oper_t *oper, char *name) |
| 203 | { |
209 | { |
| 204 | oper->name = name; |
210 | oper->name = name; |
| 205 | } |
211 | } |
| 206 | 212 | ||
| 207 | oper_t *oper_new(char *name) |
213 | oper_t *oper_new(char *name, int argc, val_type_t *arg_types, |
| - | 214 | val_type_t rv_type, int respc, val_type_t *resp_types) |
|
| 208 | { |
215 | { |
| 209 | oper_t *o; |
216 | oper_t *o; |
| - | 217 | int i; |
|
| 210 | 218 | ||
| 211 | o = malloc(sizeof(oper_t)); |
219 | o = malloc(sizeof(oper_t)); |
| 212 | oper_struct_init(o, name); |
220 | oper_struct_init(o, name); |
| 213 | 221 | ||
| - | 222 | o->argc = argc; |
|
| - | 223 | for (i = 0; i < argc; i++) |
|
| - | 224 | o->arg_type[i] = arg_types[i]; |
|
| - | 225 | ||
| - | 226 | o->rv_type = rv_type; |
|
| - | 227 | ||
| - | 228 | o->respc = respc; |
|
| - | 229 | for (i = 0; i < respc; i++) |
|
| - | 230 | o->resp_type[i] = resp_types[i]; |
|
| - | 231 | ||
| 214 | return o; |
232 | return o; |
| 215 | } |
233 | } |
| 216 | 234 | ||
| 217 | /** @} |
235 | /** @} |
| 218 | */ |
236 | */ |