project_files/frontlib/ipc/mapconn.c
changeset 7271 5608ac657362
parent 7234 613998625a3c
child 7275 15f722e0b96f
equal deleted inserted replaced
7269:5b0aeef8ba2a 7271:5608ac657362
    37 static void clearCallbacks(flib_mapconn *conn) {
    37 static void clearCallbacks(flib_mapconn *conn) {
    38 	conn->onSuccessCb = &noop_handleSuccess;
    38 	conn->onSuccessCb = &noop_handleSuccess;
    39 	conn->onFailureCb = &noop_handleFailure;
    39 	conn->onFailureCb = &noop_handleFailure;
    40 }
    40 }
    41 
    41 
    42 static flib_vector *createConfigBuffer(char *seed, flib_map *mapdesc) {
    42 static flib_vector *createConfigBuffer(flib_map *mapdesc) {
    43 	flib_vector *result = NULL;
    43 	flib_vector *result = NULL;
    44 	flib_vector *tempbuffer = flib_vector_create();
    44 	flib_vector *tempbuffer = flib_vector_create();
    45 	if(tempbuffer) {
    45 	if(tempbuffer) {
    46 		bool error = false;
    46 		bool error = false;
    47 		error |= flib_ipc_append_seed(tempbuffer, seed);
       
    48 		error |= flib_ipc_append_mapconf(tempbuffer, mapdesc, true);
    47 		error |= flib_ipc_append_mapconf(tempbuffer, mapdesc, true);
    49 		error |= flib_ipc_append_message(tempbuffer, "!");
    48 		error |= flib_ipc_append_message(tempbuffer, "!");
    50 		if(!error) {
    49 		if(!error) {
    51 			result = tempbuffer;
    50 			result = tempbuffer;
    52 			tempbuffer = NULL;
    51 			tempbuffer = NULL;
    54 	}
    53 	}
    55 	flib_vector_destroy(tempbuffer);
    54 	flib_vector_destroy(tempbuffer);
    56 	return result;
    55 	return result;
    57 }
    56 }
    58 
    57 
    59 flib_mapconn *flib_mapconn_create(char *seed, flib_map *mapdesc) {
    58 flib_mapconn *flib_mapconn_create(flib_map *mapdesc) {
    60 	flib_mapconn *result = NULL;
    59 	flib_mapconn *result = NULL;
    61 	flib_mapconn *tempConn = flib_calloc(1, sizeof(flib_mapconn));
    60 	flib_mapconn *tempConn = flib_calloc(1, sizeof(flib_mapconn));
    62 	if(tempConn) {
    61 	if(tempConn) {
    63 		tempConn->ipcBase = flib_ipcbase_create();
    62 		tempConn->ipcBase = flib_ipcbase_create();
    64 		tempConn->configBuffer = createConfigBuffer(seed, mapdesc);
    63 		tempConn->configBuffer = createConfigBuffer(mapdesc);
    65 		if(tempConn->ipcBase && tempConn->configBuffer) {
    64 		if(tempConn->ipcBase && tempConn->configBuffer) {
    66 			tempConn->progress = AWAIT_CONNECTION;
    65 			tempConn->progress = AWAIT_CONNECTION;
    67 			clearCallbacks(tempConn);
    66 			clearCallbacks(tempConn);
    68 			result = tempConn;
    67 			result = tempConn;
    69 			tempConn = NULL;
    68 			tempConn = NULL;