diff options
author | Mathias Agopian <mathias@google.com> | 2009-05-07 17:46:47 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2009-05-07 17:46:47 -0700 |
commit | ab15ac0881517ef2a72fbcd11a39d634c678878d (patch) | |
tree | 35b668fa0676ff811b82665886234243c92ce834 /include | |
parent | 8cd81ab3f2a446837bd267b6e48ac7231c2f16bb (diff) | |
parent | fec961705b43dfcbff5cd825f81e2fe492df1ec4 (diff) | |
download | system_core-ab15ac0881517ef2a72fbcd11a39d634c678878d.zip system_core-ab15ac0881517ef2a72fbcd11a39d634c678878d.tar.gz system_core-ab15ac0881517ef2a72fbcd11a39d634c678878d.tar.bz2 |
Merge commit 'goog/master' into merge_master
Diffstat (limited to 'include')
-rw-r--r-- | include/sysutils/FrameworkCommand.h | 37 | ||||
-rw-r--r-- | include/sysutils/FrameworkListener.h | 37 | ||||
-rw-r--r-- | include/sysutils/FrameworkManager.h | 40 | ||||
-rw-r--r-- | include/sysutils/NetlinkEvent.h | 44 | ||||
-rw-r--r-- | include/sysutils/NetlinkListener.h | 32 | ||||
-rw-r--r-- | include/sysutils/SocketListener.h | 35 |
6 files changed, 225 insertions, 0 deletions
diff --git a/include/sysutils/FrameworkCommand.h b/include/sysutils/FrameworkCommand.h new file mode 100644 index 0000000..952e99a --- /dev/null +++ b/include/sysutils/FrameworkCommand.h @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef __FRAMEWORK_CMD_HANDLER_H +#define __FRAMEWORK_CMD_HANDLER_H + +#include "../../../frameworks/base/include/utils/List.h" + + +class FrameworkCommand { +private: + const char *mCommand; + +public: + + FrameworkCommand(const char *cmd); + virtual ~FrameworkCommand() { } + + virtual int runCommand(char *data); + + const char *getCommand() { return mCommand; } +}; + +typedef android::List<FrameworkCommand *> FrameworkCommandCollection; +#endif diff --git a/include/sysutils/FrameworkListener.h b/include/sysutils/FrameworkListener.h new file mode 100644 index 0000000..1454a6f --- /dev/null +++ b/include/sysutils/FrameworkListener.h @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef _FRAMEWORKSOCKETLISTENER_H +#define _FRAMEWORKSOCKETLISTENER_H + +#include "SocketListener.h" +#include "FrameworkCommand.h" + +class FrameworkListener : public SocketListener { +private: + FrameworkCommandCollection *mCommands; + +public: + FrameworkListener(const char *socketName); + virtual ~FrameworkListener() {} + +protected: + void registerCmd(FrameworkCommand *cmd); + virtual bool onDataAvailable(int socket); + +private: + void dispatchCommand(char *cmd); +}; +#endif diff --git a/include/sysutils/FrameworkManager.h b/include/sysutils/FrameworkManager.h new file mode 100644 index 0000000..8a24d33 --- /dev/null +++ b/include/sysutils/FrameworkManager.h @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef _FRAMEWORKMANAGER_H +#define _FRAMEWORKMANAGER_H + +#include <pthread.h> + +class FrameworkListener; + +class FrameworkManager { + int mDoorbell; // Socket used to accept connections from framework + int mFwSock; // Socket used to communicate with framework + const char *mSocketName; + + FrameworkListener *mListener; + + pthread_mutex_t mWriteMutex; + +public: + FrameworkManager(FrameworkListener *Listener); + virtual ~FrameworkManager() {} + + int run(); + int sendMsg(char *msg); + int sendMsg(char *msg, char *data); +}; +#endif diff --git a/include/sysutils/NetlinkEvent.h b/include/sysutils/NetlinkEvent.h new file mode 100644 index 0000000..95e83a3 --- /dev/null +++ b/include/sysutils/NetlinkEvent.h @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef _NETLINKEVENT_H +#define _NETLINKEVENT_H + +#define NL_PARAMS_MAX 32 + +class NetlinkEvent { + int mSeq; + char *mPath; + int mAction; + char *mSubsystem; + char *mParams[NL_PARAMS_MAX]; + +public: + const static int NlActionUnknown; + const static int NlActionAdd; + const static int NlActionRemove; + const static int NlActionChange; + + NetlinkEvent(); + virtual ~NetlinkEvent(); + + bool decode(char *buffer, int size); + const char *findParam(const char *paramName); + + const char *getSubsystem() { return mSubsystem; } + int getAction() { return mAction; } +}; + +#endif diff --git a/include/sysutils/NetlinkListener.h b/include/sysutils/NetlinkListener.h new file mode 100644 index 0000000..8ac811c --- /dev/null +++ b/include/sysutils/NetlinkListener.h @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef _NETLINKLISTENER_H +#define _NETLINKLISTENER_H + +#include "SocketListener.h" + +class NetlinkEvent; + +class NetlinkListener : public SocketListener { + char mBuffer[64 * 1024]; + +public: + NetlinkListener(int socket); + virtual ~NetlinkListener() {} +protected: + virtual bool onDataAvailable(int socket); +}; +#endif diff --git a/include/sysutils/SocketListener.h b/include/sysutils/SocketListener.h new file mode 100644 index 0000000..f079dba --- /dev/null +++ b/include/sysutils/SocketListener.h @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef _SOCKETLISTENER_H +#define _SOCKETLISTENER_H + +class SocketListener { + int mSock; + int mCsock; + int mAcceptClients; + const char *mSocketName; + +public: + SocketListener(const char *socketName, bool acceptClients); + SocketListener(int socketFd, bool acceptClients); + + virtual ~SocketListener() {} + virtual int run(); + +protected: + virtual bool onDataAvailable(int socket); +}; +#endif |