|
1 | | -/* Auto-generated C implementation stub for source/bitcoin/module/TraderModule.java */ |
| 1 | +/* |
| 2 | + * TraderModule.c — native Bitcoin module boundary. |
| 3 | + * |
| 4 | + * This file intentionally does not duplicate Java-side trading logic. Native |
| 5 | + * entry points are limited to safe lifecycle/message boundaries until their |
| 6 | + * semantics can be implemented and tested independently. In particular, |
| 7 | + * wallet deletion and transaction broadcasting remain disabled here. |
| 8 | + */ |
2 | 9 | #include <stdio.h> |
3 | 10 | #include <stdlib.h> |
4 | 11 | #include <string.h> |
5 | 12 | #include "TraderModule.h" |
6 | 13 |
|
7 | 14 | struct TraderModule { |
8 | | - /* TODO: fields translated from Java class */ |
9 | | - int _dummy; |
| 15 | + int initialized; |
10 | 16 | }; |
11 | 17 |
|
| 18 | +static void unsupported(const char* operation) |
| 19 | +{ |
| 20 | + fprintf(stderr, "[TraderModule] %s is not implemented in the native C layer.\n", operation); |
| 21 | +} |
| 22 | + |
12 | 23 | TraderModule* TraderModule_new(void) |
13 | 24 | { |
14 | | - TraderModule* self = malloc(sizeof(TraderModule)); |
15 | | - if(!self) return NULL; |
16 | | - self->_dummy = 0; |
| 25 | + TraderModule* self = calloc(1, sizeof(*self)); |
| 26 | + if (!self) return NULL; |
| 27 | + self->initialized = 1; |
17 | 28 | return self; |
18 | 29 | } |
19 | 30 |
|
20 | 31 | void TraderModule_free(TraderModule* self) |
21 | 32 | { |
22 | | - if(!self) return; |
23 | 33 | free(self); |
24 | 34 | } |
25 | 35 |
|
26 | 36 | void* TraderModule_MessageOrderer(TraderModule* self, void* arg) |
27 | 37 | { |
28 | | - // TODO: implement translated logic from Java |
29 | | - return (void*)0; |
| 38 | + (void)self; |
| 39 | + (void)arg; |
| 40 | + unsupported("MessageOrderer"); |
| 41 | + return NULL; |
30 | 42 | } |
31 | 43 |
|
32 | 44 | void* TraderModule_BitcoinAsiaAndTokyoDate(TraderModule* self) |
33 | 45 | { |
34 | | - // TODO: implement translated logic from Java |
35 | | - return (void*)0; |
| 46 | + (void)self; |
| 47 | + unsupported("BitcoinAsiaAndTokyoDate"); |
| 48 | + return NULL; |
36 | 49 | } |
37 | 50 |
|
38 | 51 | void* TraderModule_BitcoinAmericaAndNewYorkDate(TraderModule* self) |
39 | 52 | { |
40 | | - // TODO: implement translated logic from Java |
41 | | - return (void*)0; |
| 53 | + (void)self; |
| 54 | + unsupported("BitcoinAmericaAndNewYorkDate"); |
| 55 | + return NULL; |
42 | 56 | } |
43 | 57 |
|
44 | | -void TraderModule_send_message(TraderModule* self, void* buffer) |
| 58 | +void TraderModule_send_message_buf(TraderModule* self, const void* buffer, size_t length) |
45 | 59 | { |
46 | | - // TODO: implement translated logic from Java |
| 60 | + (void)self; |
| 61 | + if (!buffer || length == 0) return; |
| 62 | + fwrite(buffer, 1, length, stdout); |
| 63 | + fputc('\n', stdout); |
47 | 64 | } |
48 | 65 |
|
49 | | -void TraderModule_send_message(TraderModule* self, char* message) |
| 66 | +void TraderModule_send_message_str(TraderModule* self, const char* message) |
50 | 67 | { |
51 | | - // TODO: implement translated logic from Java |
| 68 | + (void)self; |
| 69 | + if (!message) return; |
| 70 | + fprintf(stdout, "[TraderModule] message: %s\n", message); |
52 | 71 | } |
53 | 72 |
|
54 | | -void TraderModule_start_server_instance(TraderModule* self, void* url) |
| 73 | +void TraderModule_start_server_instance(TraderModule* self, const char* url) |
55 | 74 | { |
56 | | - // TODO: implement translated logic from Java |
| 75 | + (void)self; |
| 76 | + (void)url; |
| 77 | + unsupported("start_server_instance"); |
57 | 78 | } |
58 | 79 |
|
59 | | -void TraderModule_load_wallet(TraderModule* self, void* url) |
| 80 | +void TraderModule_load_wallet(TraderModule* self, const char* url) |
60 | 81 | { |
61 | | - // TODO: implement translated logic from Java |
| 82 | + (void)self; |
| 83 | + (void)url; |
| 84 | + unsupported("load_wallet; use BitcoinBase's authenticated Core boundary"); |
62 | 85 | } |
63 | 86 |
|
64 | | -char* TraderModule_get_wallet_name(TraderModule* self, void* url) |
| 87 | +char* TraderModule_get_wallet_name(TraderModule* self, const char* url) |
65 | 88 | { |
66 | | - // TODO: implement translated logic from Java |
67 | | - return (char*)0; |
| 89 | + (void)self; |
| 90 | + (void)url; |
| 91 | + unsupported("get_wallet_name; use BitcoinBase's authenticated Core boundary"); |
| 92 | + return NULL; |
68 | 93 | } |
69 | 94 |
|
70 | | -void* TraderModule_BufferedReader(TraderModule* self, void* InputStreamReader_process_getInputStream_) |
| 95 | +void* TraderModule_BufferedReader(TraderModule* self, void* input_stream) |
71 | 96 | { |
72 | | - // TODO: implement translated logic from Java |
73 | | - return (void*)0; |
| 97 | + (void)self; |
| 98 | + (void)input_stream; |
| 99 | + unsupported("BufferedReader"); |
| 100 | + return NULL; |
74 | 101 | } |
75 | 102 |
|
76 | 103 | void* TraderModule_StringBuilder(TraderModule* self) |
77 | 104 | { |
78 | | - // TODO: implement translated logic from Java |
79 | | - return (void*)0; |
| 105 | + (void)self; |
| 106 | + unsupported("StringBuilder"); |
| 107 | + return NULL; |
80 | 108 | } |
81 | 109 |
|
82 | | -void TraderModule_delete_wallet(TraderModule* self, void* url) |
| 110 | +void TraderModule_delete_wallet(TraderModule* self, const char* url) |
83 | 111 | { |
84 | | - // TODO: implement translated logic from Java |
| 112 | + (void)self; |
| 113 | + (void)url; |
| 114 | + fprintf(stderr, "[TraderModule] delete_wallet is disabled.\n"); |
85 | 115 | } |
86 | 116 |
|
87 | | -void TraderModule_unload_wallet(TraderModule* self, void* url) |
| 117 | +void TraderModule_unload_wallet(TraderModule* self, const char* url) |
88 | 118 | { |
89 | | - // TODO: implement translated logic from Java |
| 119 | + (void)self; |
| 120 | + (void)url; |
| 121 | + unsupported("unload_wallet; use BitcoinBase's authenticated Core boundary"); |
90 | 122 | } |
91 | 123 |
|
92 | | -void TraderModule_rename_wallet(TraderModule* self, void* url) |
| 124 | +void TraderModule_rename_wallet(TraderModule* self, const char* url) |
93 | 125 | { |
94 | | - // TODO: implement translated logic from Java |
| 126 | + (void)self; |
| 127 | + (void)url; |
| 128 | + unsupported("rename_wallet; Bitcoin Core has no native rename RPC"); |
95 | 129 | } |
96 | 130 |
|
97 | | -void TraderModule_add_new_wallet(TraderModule* self, void* url) |
| 131 | +void TraderModule_add_new_wallet(TraderModule* self, const char* url) |
98 | 132 | { |
99 | | - // TODO: implement translated logic from Java |
| 133 | + (void)self; |
| 134 | + (void)url; |
| 135 | + unsupported("add_new_wallet; use BitcoinBase's authenticated Core boundary"); |
100 | 136 | } |
101 | 137 |
|
102 | | -void TraderModule_send_local_wallet_to_remote_wallet(TraderModule* self, void* url) |
| 138 | +void TraderModule_send_local_wallet_to_remote_wallet(TraderModule* self, const char* url) |
103 | 139 | { |
104 | | - // TODO: implement translated logic from Java |
| 140 | + (void)self; |
| 141 | + (void)url; |
| 142 | + fprintf(stderr, "[TraderModule] transaction broadcasting is disabled in the native module.\n"); |
105 | 143 | } |
106 | | - |
|
0 commit comments