blob: 16869961dcc74dcf52de3594a655051bc8d640c1 [file] [log] [blame]
San Mehatfa644ff2009-05-08 11:15:53 -07001#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
San Mehatdb017542009-05-20 15:27:14 -070016int FrameworkClient::sendMsg(const char *msg) {
San Mehatfa644ff2009-05-08 11:15:53 -070017 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 LOGW("Unable to send msg '%s' (%s)", msg, strerror(errno));
25 }
26 pthread_mutex_unlock(&mWriteMutex);
27 return 0;
28}
29
San Mehatdb017542009-05-20 15:27:14 -070030int FrameworkClient::sendMsg(const char *msg, const char *data) {
San Mehatfa644ff2009-05-08 11:15:53 -070031 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