Example #1
0
void process_mode1(int sockfd) {
	ssize_t n;
	char str[MAXLINE];

	while ((n = read(sockfd, str, MAXLINE)) > 0) {
		str[n] = '\0';
		char result[MAXLINE];

		if (strcmp(str, "\n") == 0) {
			exit(1);
		}

		int i = 0;
		for (i = 0; i < strlen(str) - 1; i++) {
			result[i] = str[strlen(str) - i - 2];
		}

		result[i++] = '\n';
		result[i] = '\0';

		Writen(sockfd, result, strlen(result));
	}

	if (n < 0 && errno == EINTR) {
		return process_mode1(sockfd);
	} else if (n < 0) {
		err_sys("str_echo: read error");
	}
}
Example #2
0
void process_request(int sockfd, int mode) {
	printf("Accept\n %d", sockfd);
	switch (mode) {
		case 1:
			process_mode1(sockfd);
			break;
		case 2:
			process_mode2(sockfd);
			break;
		case 3:
			process_mode3(sockfd);
			break;
		default:
			// default behavior
			str_echo(sockfd);
			break;
	}
}
// matlab entry point
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
    // if (mxGetClassID(prhs[0]) != mxDOUBLE_CLASS)mexErrMsgTxt("invalid input");
    //     process_prob(prhs[0], prhs[1], plhs);
    if (check_input(prhs)){
        int mode = (int)mxGetScalar(prhs[0]);
        // mexPrintf("mode no.%d...\n", mode);
        switch(mode) {
            case 1:
                
                process_mode1(prhs[1], prhs[2], plhs); //get soft assignment prob from data and GMM model; process_mode1(data, GMM,prob);
                break;
            case 2:
                process_mode2(prhs[1], prhs[2], prhs[3], plhs); //get coding from data, prob and GMM; process_model2(data,prob,GMM,coding);
                break;
                
            case 3:
                process_mode3(prhs[1], prhs[2], plhs); //get coding from data and GMM; process_model3(data,GMM,coding);
                break;
                
            case 4:
                process_mode4(prhs[1], prhs[2], prhs[3], prhs[4], plhs); //get conf from data, prob,GMM, model; process_model4(data,prob, GMM, model,conf);
                break;
                
            case 5:
                process_mode5(prhs[1], prhs[2], prhs[3], plhs) ; //get map from conf and pos, size;
                break;
                
            case 6:
                process_mode6(prhs[1], prhs[2], prhs[3], prhs[4], prhs[5], plhs) ; // get map from data, GMM, model, pos,size;
                break;
            case 7:
                process_mode7(prhs[1], prhs[2], prhs[3], prhs[4], plhs); //get conf and datanorm from data, prob,GMM, model; process_model4(data,prob, GMM, model,conf);
                break;
            default:
                return;
        }
    }

    return;
}