FrameworkClient.cpp revision 7e8529a8b528fd30586aa037f15a31b29582c537
1#include <alloca.h> 2#include <errno.h> 3#include <sys/types.h> 4#include <pthread.h> 5 6#define LOG_TAG "FrameworkClient" 7#include <cutils/log.h> 8 9#include <sysutils/FrameworkClient.h> 10 11FrameworkClient::FrameworkClient(int socket) { 12 mSocket = socket; 13 pthread_mutex_init(&mWriteMutex, NULL); 14} 15 16int FrameworkClient::sendMsg(const char *msg) { 17 if (mSocket < 0) { 18 errno = EHOSTUNREACH; 19 return -1; 20 } 21 22 pthread_mutex_lock(&mWriteMutex); 23 if (write(mSocket, msg, strlen(msg) +1) < 0) { 24 SLOGW("Unable to send msg '%s' (%s)", msg, strerror(errno)); 25 } 26 pthread_mutex_unlock(&mWriteMutex); 27 return 0; 28} 29 30int FrameworkClient::sendMsg(const char *msg, const char *data) { 31 char *buffer = (char *) alloca(strlen(msg) + strlen(data) + 1); 32 if (!buffer) { 33 errno = -ENOMEM; 34 return -1; 35 } 36 strcpy(buffer, msg); 37 strcat(buffer, data); 38 return sendMsg(buffer); 39} 40 41