summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorRobert Greenwalt <rgreenwalt@google.com>2012-02-07 12:23:14 -0800
committerRobert Greenwalt <rgreenwalt@google.com>2012-02-07 16:00:07 -0800
commitdc58e73071aa829a5038caf37211f6b3e2d7b275 (patch)
tree8a92d09200206a41977c40a7dfb8784c24f7118a /include
parent6f53225ef9f60a18a69b4ad3ba920ada168b719e (diff)
downloadsystem_core-dc58e73071aa829a5038caf37211f6b3e2d7b275.zip
system_core-dc58e73071aa829a5038caf37211f6b3e2d7b275.tar.gz
system_core-dc58e73071aa829a5038caf37211f6b3e2d7b275.tar.bz2
New NativeDaemonConnector protocol adds a seqnum.
Allows for one socket to be multiplexed for multiple requests. bug:5864209 Change-Id: I934c88da25d95e093371f455442bdf2f0ed7a4f4
Diffstat (limited to 'include')
-rw-r--r--include/sysutils/FrameworkListener.h4
-rw-r--r--include/sysutils/SocketClient.h12
-rw-r--r--include/sysutils/SocketListener.h1
3 files changed, 14 insertions, 3 deletions
diff --git a/include/sysutils/FrameworkListener.h b/include/sysutils/FrameworkListener.h
index 142f50c..d8c4258 100644
--- a/include/sysutils/FrameworkListener.h
+++ b/include/sysutils/FrameworkListener.h
@@ -24,7 +24,11 @@ class SocketClient;
class FrameworkListener : public SocketListener {
public:
static const int CMD_ARGS_MAX = 16;
+
+ /* 1 out of errorRate will be dropped */
+ int errorRate;
private:
+ int mCommandCount;
FrameworkCommandCollection *mCommands;
public:
diff --git a/include/sysutils/SocketClient.h b/include/sysutils/SocketClient.h
index 7d2b1d6..96323ac 100644
--- a/include/sysutils/SocketClient.h
+++ b/include/sysutils/SocketClient.h
@@ -24,6 +24,9 @@ class SocketClient {
pthread_mutex_t mRefCountMutex;
int mRefCount;
+ pthread_mutex_t mCmdNumMutex;
+ int mCmdNum;
+
public:
SocketClient(int sock, bool owned);
virtual ~SocketClient();
@@ -32,12 +35,13 @@ public:
pid_t getPid() const { return mPid; }
uid_t getUid() const { return mUid; }
gid_t getGid() const { return mGid; }
+ void setCmdNum(int cmdNum);
+ int getCmdNum();
// Send null-terminated C strings:
int sendMsg(int code, const char *msg, bool addErrno);
- int sendMsg(const char *msg);
- // Sending binary data:
+ //Sending binary data:
int sendData(const void *data, int len);
// Optional reference counting. Reference count starts at 1. If
@@ -46,6 +50,10 @@ public:
// decRef() when it's done with the client.
void incRef();
bool decRef(); // returns true at 0 (but note: SocketClient already deleted)
+
+private:
+ // Send null-terminated C strings
+ int sendMsg(const char *msg);
};
typedef android::List<SocketClient *> SocketClientCollection;
diff --git a/include/sysutils/SocketListener.h b/include/sysutils/SocketListener.h
index 6592b01..64a52f4 100644
--- a/include/sysutils/SocketListener.h
+++ b/include/sysutils/SocketListener.h
@@ -38,7 +38,6 @@ public:
int stopListener();
void sendBroadcast(int code, const char *msg, bool addErrno);
- void sendBroadcast(const char *msg);
protected:
virtual bool onDataAvailable(SocketClient *c) = 0;