project_files/frontlib/ipc/mapconn.c
changeset 7316 f7b49b2c5d84
parent 7314 6171f0bad318
child 7576 65d29988fd3d
equal deleted inserted replaced
7314:6171f0bad318 7316:f7b49b2c5d84
    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) {