73 flib_vector_destroy(tempbuffer); |
73 flib_vector_destroy(tempbuffer); |
74 return result; |
74 return result; |
75 } |
75 } |
76 |
76 |
77 flib_mapconn *flib_mapconn_create(const flib_map *mapdesc) { |
77 flib_mapconn *flib_mapconn_create(const flib_map *mapdesc) { |
|
78 if(log_badargs_if(mapdesc==NULL)) { |
|
79 return NULL; |
|
80 } |
78 flib_mapconn *result = NULL; |
81 flib_mapconn *result = NULL; |
79 flib_mapconn *tempConn = flib_calloc(1, sizeof(flib_mapconn)); |
82 flib_mapconn *tempConn = flib_calloc(1, sizeof(flib_mapconn)); |
80 if(tempConn) { |
83 if(tempConn) { |
81 tempConn->ipcBase = flib_ipcbase_create(); |
84 tempConn->ipcBase = flib_ipcbase_create(); |
82 tempConn->configBuffer = createConfigBuffer(mapdesc); |
85 tempConn->configBuffer = createConfigBuffer(mapdesc); |
108 } |
111 } |
109 } |
112 } |
110 } |
113 } |
111 |
114 |
112 int flib_mapconn_getport(flib_mapconn *conn) { |
115 int flib_mapconn_getport(flib_mapconn *conn) { |
113 if(!conn) { |
116 if(log_badargs_if(conn==NULL)) { |
114 flib_log_e("null parameter in flib_mapconn_getport"); |
|
115 return 0; |
117 return 0; |
116 } else { |
|
117 return flib_ipcbase_port(conn->ipcBase); |
|
118 } |
118 } |
|
119 return flib_ipcbase_port(conn->ipcBase); |
119 } |
120 } |
120 |
121 |
121 void flib_mapconn_onSuccess(flib_mapconn *conn, void (*callback)(void* context, const uint8_t *bitmap, int numHedgehogs), void *context) { |
122 void flib_mapconn_onSuccess(flib_mapconn *conn, void (*callback)(void* context, const uint8_t *bitmap, int numHedgehogs), void *context) { |
122 if(!conn) { |
123 if(!log_badargs_if(conn==NULL)) { |
123 flib_log_e("null parameter in flib_mapconn_onSuccess"); |
|
124 } else { |
|
125 conn->onSuccessCb = callback ? callback : &noop_handleSuccess; |
124 conn->onSuccessCb = callback ? callback : &noop_handleSuccess; |
126 conn->onSuccessCtx = context; |
125 conn->onSuccessCtx = context; |
127 } |
126 } |
128 } |
127 } |
129 |
128 |
130 void flib_mapconn_onFailure(flib_mapconn *conn, void (*callback)(void* context, const char *errormessage), void *context) { |
129 void flib_mapconn_onFailure(flib_mapconn *conn, void (*callback)(void* context, const char *errormessage), void *context) { |
131 if(!conn) { |
130 if(!log_badargs_if(conn==NULL)) { |
132 flib_log_e("null parameter in flib_mapconn_onError"); |
|
133 } else { |
|
134 conn->onFailureCb = callback ? callback : &noop_handleFailure; |
131 conn->onFailureCb = callback ? callback : &noop_handleFailure; |
135 conn->onFailureCtx = context; |
132 conn->onFailureCtx = context; |
136 } |
133 } |
137 } |
134 } |
138 |
135 |
173 } |
170 } |
174 } |
171 } |
175 } |
172 } |
176 |
173 |
177 void flib_mapconn_tick(flib_mapconn *conn) { |
174 void flib_mapconn_tick(flib_mapconn *conn) { |
178 if(!conn) { |
175 if(!log_badargs_if(conn==NULL) |
179 flib_log_e("null parameter in flib_mapconn_tick"); |
176 && !log_w_if(conn->running, "Call to flib_mapconn_tick from a callback") |
180 } else if(conn->running) { |
177 && !log_w_if(conn->progress == FINISHED, "We are already done.")) { |
181 flib_log_w("Call to flib_mapconn_tick from a callback"); |
|
182 } else if(conn->progress == FINISHED) { |
|
183 flib_log_w("Call to flib_mapconn_tick, but we are already done. Best destroy your flib_mapconn object in the callbacks."); |
|
184 } else { |
|
185 conn->running = true; |
178 conn->running = true; |
186 flib_mapconn_wrappedtick(conn); |
179 flib_mapconn_wrappedtick(conn); |
187 conn->running = false; |
180 conn->running = false; |
188 |
181 |
189 if(conn->destroyRequested) { |
182 if(conn->destroyRequested) { |