LONG StorageSystemFile::dispatchMessage(USHORT usMsg, LONG lParam1, LONG lParam2) { switch (usMsg) { case MMIOM_IDENTIFYFILE: return identifyFile((PSZ)lParam1, (HMMIO)lParam2); case MMIOM_OPEN: return open((PSZ)lParam1); case MMIOM_READ: return read((PSZ)lParam1, lParam2); case MMIOM_WRITE: return write((PSZ)lParam1, lParam2); case MMIOM_SEEK: return seek(lParam1, lParam2); case MMIOM_CLOSE: return close((USHORT)lParam1); default: return defaultResponse(usMsg, lParam1, lParam2); } }
LONG MIDIFormat::dispatchMessage(USHORT usMsg, LONG lParam1, LONG lParam2) { switch (usMsg) { case MMIOM_GETFORMATINFO: return getFormatInfo((PMMFORMATINFO)lParam1); case MMIOM_GETFORMATNAME: return getFormatName((PSZ)lParam1, lParam2); case MMIOM_IDENTIFYFILE: return identifyFile((PSZ)lParam1, (HMMIO)lParam2); default: return defaultResponse(); } }
void pthread_talk(int connectfd, struct sockaddr_in cli_addr) { char sendBuffer[bufsize]; char recvBuffer[bufsize]; char _cli_addr[bufsize]; strcpy(_cli_addr, inet_ntoa(cli_addr.sin_addr)); int _cli_port = ntohs(cli_addr.sin_port); int ret; while (1) { ret = recvPackage(&connectfd, recvBuffer, bufsize); if (ret != 0) { cJSON *function = cJSON_Parse(recvBuffer); int header = cJSON_GetObjectItem(function, "header")->valueint; if (header == 0) cJSON_AddStringToObject(function, "ipaddress", _cli_addr); printf("%d\n", header); switch (header) { case LOGIN_REQUEST: loginResponse(function, sendBuffer); break; case LOGOUT_REQUEST: logoutResponse(function, sendBuffer); break; case GETFRIEND_REQUEST: getfriendResponse(function, sendBuffer); break; case ADDFRIEND_REQUEST: addfriendResponse(function, sendBuffer); break; case GETIP_REQUEST: getipResponse(function, sendBuffer); break; case GETGROUP_REQUEST: getgroupResponse(function, sendBuffer); break; case ADDGROUP_REQUEST: addgroupResponse(function, sendBuffer); break; case SEARCH_REQUEST: searchResponse(function, sendBuffer); break; case SAVELOG_REQUEST: savelogResponse(function, sendBuffer); break; case UPDATE_REQUEST: updateResponse(function, sendBuffer); break; case IMALIVE_REQUEST: imaliveResponse(function, sendBuffer); break; default: defaultResponse(function, sendBuffer); break; } sendMessage(&connectfd, sendBuffer, strlen(sendBuffer) + 1); } } close(connectfd); }