SocketClient.h revision 30abb7234de2a9caa1add4b00a189436f0b24560
1fa644ffe944c01a9b00f8d7676d58394fabee285San Mehat#ifndef _SOCKET_CLIENT_H
2fa644ffe944c01a9b00f8d7676d58394fabee285San Mehat#define _SOCKET_CLIENT_H
3fa644ffe944c01a9b00f8d7676d58394fabee285San Mehat
4fa644ffe944c01a9b00f8d7676d58394fabee285San Mehat#include "../../../frameworks/base/include/utils/List.h"
5fa644ffe944c01a9b00f8d7676d58394fabee285San Mehat
6fa644ffe944c01a9b00f8d7676d58394fabee285San Mehat#include <pthread.h>
730abb7234de2a9caa1add4b00a189436f0b24560Kenny Root#include <sys/types.h>
8fa644ffe944c01a9b00f8d7676d58394fabee285San Mehat
9fa644ffe944c01a9b00f8d7676d58394fabee285San Mehatclass SocketClient {
10fa644ffe944c01a9b00f8d7676d58394fabee285San Mehat    int             mSocket;
11fa644ffe944c01a9b00f8d7676d58394fabee285San Mehat    pthread_mutex_t mWriteMutex;
12fa644ffe944c01a9b00f8d7676d58394fabee285San Mehat
1330abb7234de2a9caa1add4b00a189436f0b24560Kenny Root    /* Peer process ID */
1430abb7234de2a9caa1add4b00a189436f0b24560Kenny Root    pid_t mPid;
1530abb7234de2a9caa1add4b00a189436f0b24560Kenny Root
1630abb7234de2a9caa1add4b00a189436f0b24560Kenny Root    /* Peer user ID */
1730abb7234de2a9caa1add4b00a189436f0b24560Kenny Root    uid_t mUid;
1830abb7234de2a9caa1add4b00a189436f0b24560Kenny Root
1930abb7234de2a9caa1add4b00a189436f0b24560Kenny Root    /* Peer group ID */
2030abb7234de2a9caa1add4b00a189436f0b24560Kenny Root    gid_t mGid;
2130abb7234de2a9caa1add4b00a189436f0b24560Kenny Root
22fa644ffe944c01a9b00f8d7676d58394fabee285San Mehatpublic:
23fa644ffe944c01a9b00f8d7676d58394fabee285San Mehat    SocketClient(int sock);
24fa644ffe944c01a9b00f8d7676d58394fabee285San Mehat    virtual ~SocketClient() {}
25fa644ffe944c01a9b00f8d7676d58394fabee285San Mehat
26fa644ffe944c01a9b00f8d7676d58394fabee285San Mehat    int getSocket() { return mSocket; }
2730abb7234de2a9caa1add4b00a189436f0b24560Kenny Root    pid_t getPid() const { return mPid; }
2830abb7234de2a9caa1add4b00a189436f0b24560Kenny Root    uid_t getUid() const { return mUid; }
2930abb7234de2a9caa1add4b00a189436f0b24560Kenny Root    gid_t getGid() const { return mGid; }
30fa644ffe944c01a9b00f8d7676d58394fabee285San Mehat
31db017545796747115b8797f03e662b0f398a7c7bSan Mehat    int sendMsg(int code, const char *msg, bool addErrno);
32db017545796747115b8797f03e662b0f398a7c7bSan Mehat    int sendMsg(const char *msg);
33fa644ffe944c01a9b00f8d7676d58394fabee285San Mehat};
34fa644ffe944c01a9b00f8d7676d58394fabee285San Mehat
35fa644ffe944c01a9b00f8d7676d58394fabee285San Mehattypedef android::List<SocketClient *> SocketClientCollection;
36fa644ffe944c01a9b00f8d7676d58394fabee285San Mehat#endif
37