CommandListener.h revision 5c1b8af16dbbc20c89aaca2f93e725e12b16d055
1d18304287dbabc7835be771400b85d4ae8b63de6San Mehat/*
2d18304287dbabc7835be771400b85d4ae8b63de6San Mehat * Copyright (C) 2008 The Android Open Source Project
3d18304287dbabc7835be771400b85d4ae8b63de6San Mehat *
4d18304287dbabc7835be771400b85d4ae8b63de6San Mehat * Licensed under the Apache License, Version 2.0 (the "License");
5d18304287dbabc7835be771400b85d4ae8b63de6San Mehat * you may not use this file except in compliance with the License.
6d18304287dbabc7835be771400b85d4ae8b63de6San Mehat * You may obtain a copy of the License at
7d18304287dbabc7835be771400b85d4ae8b63de6San Mehat *
8d18304287dbabc7835be771400b85d4ae8b63de6San Mehat *      http://www.apache.org/licenses/LICENSE-2.0
9d18304287dbabc7835be771400b85d4ae8b63de6San Mehat *
10d18304287dbabc7835be771400b85d4ae8b63de6San Mehat * Unless required by applicable law or agreed to in writing, software
11d18304287dbabc7835be771400b85d4ae8b63de6San Mehat * distributed under the License is distributed on an "AS IS" BASIS,
12d18304287dbabc7835be771400b85d4ae8b63de6San Mehat * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13d18304287dbabc7835be771400b85d4ae8b63de6San Mehat * See the License for the specific language governing permissions and
14d18304287dbabc7835be771400b85d4ae8b63de6San Mehat * limitations under the License.
15d18304287dbabc7835be771400b85d4ae8b63de6San Mehat */
16d18304287dbabc7835be771400b85d4ae8b63de6San Mehat
17d18304287dbabc7835be771400b85d4ae8b63de6San Mehat#ifndef _COMMANDLISTENER_H__
18d18304287dbabc7835be771400b85d4ae8b63de6San Mehat#define _COMMANDLISTENER_H__
19d18304287dbabc7835be771400b85d4ae8b63de6San Mehat
20d18304287dbabc7835be771400b85d4ae8b63de6San Mehat#include <sysutils/FrameworkListener.h>
219ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat
22d18304287dbabc7835be771400b85d4ae8b63de6San Mehat#include "NetdCommand.h"
239d10b341a0ba46f108cb96e46691197d778cbc06San Mehat#include "TetherController.h"
249ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat#include "NatController.h"
25d5573d34c8fac49e16b20cf144486125bf940086San Mehat#include "PppController.h"
261bdac9e98c1ef37ba568b6cf23bfbc09cfe6bf15San Mehat#include "PanController.h"
27d18304287dbabc7835be771400b85d4ae8b63de6San Mehat
28d18304287dbabc7835be771400b85d4ae8b63de6San Mehatclass CommandListener : public FrameworkListener {
299d10b341a0ba46f108cb96e46691197d778cbc06San Mehat    static TetherController *sTetherCtrl;
309ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat    static NatController *sNatCtrl;
31d5573d34c8fac49e16b20cf144486125bf940086San Mehat    static PppController *sPppCtrl;
321bdac9e98c1ef37ba568b6cf23bfbc09cfe6bf15San Mehat    static PanController *sPanCtrl;
339d10b341a0ba46f108cb96e46691197d778cbc06San Mehat
34d18304287dbabc7835be771400b85d4ae8b63de6San Mehatpublic:
35d18304287dbabc7835be771400b85d4ae8b63de6San Mehat    CommandListener();
36d18304287dbabc7835be771400b85d4ae8b63de6San Mehat    virtual ~CommandListener() {}
37d18304287dbabc7835be771400b85d4ae8b63de6San Mehat
38d18304287dbabc7835be771400b85d4ae8b63de6San Mehatprivate:
39d18304287dbabc7835be771400b85d4ae8b63de6San Mehat
405c1b8af16dbbc20c89aaca2f93e725e12b16d055San Mehat    class InterfaceCmd : public NetdCommand {
41d18304287dbabc7835be771400b85d4ae8b63de6San Mehat    public:
425c1b8af16dbbc20c89aaca2f93e725e12b16d055San Mehat        InterfaceCmd();
435c1b8af16dbbc20c89aaca2f93e725e12b16d055San Mehat        virtual ~InterfaceCmd() {}
44d18304287dbabc7835be771400b85d4ae8b63de6San Mehat        int runCommand(SocketClient *c, int argc, char ** argv);
45d18304287dbabc7835be771400b85d4ae8b63de6San Mehat    };
46d18304287dbabc7835be771400b85d4ae8b63de6San Mehat
47d18304287dbabc7835be771400b85d4ae8b63de6San Mehat    class IpFwdCmd : public NetdCommand {
48d18304287dbabc7835be771400b85d4ae8b63de6San Mehat    public:
49d18304287dbabc7835be771400b85d4ae8b63de6San Mehat        IpFwdCmd();
50d18304287dbabc7835be771400b85d4ae8b63de6San Mehat        virtual ~IpFwdCmd() {}
51d18304287dbabc7835be771400b85d4ae8b63de6San Mehat        int runCommand(SocketClient *c, int argc, char ** argv);
52d18304287dbabc7835be771400b85d4ae8b63de6San Mehat    };
53d18304287dbabc7835be771400b85d4ae8b63de6San Mehat
54d18304287dbabc7835be771400b85d4ae8b63de6San Mehat    class TetherCmd : public NetdCommand {
55d18304287dbabc7835be771400b85d4ae8b63de6San Mehat    public:
56d18304287dbabc7835be771400b85d4ae8b63de6San Mehat        TetherCmd();
57d18304287dbabc7835be771400b85d4ae8b63de6San Mehat        virtual ~TetherCmd() {}
58d18304287dbabc7835be771400b85d4ae8b63de6San Mehat        int runCommand(SocketClient *c, int argc, char ** argv);
59d18304287dbabc7835be771400b85d4ae8b63de6San Mehat    };
60d18304287dbabc7835be771400b85d4ae8b63de6San Mehat
61d18304287dbabc7835be771400b85d4ae8b63de6San Mehat    class NatCmd : public NetdCommand {
62d18304287dbabc7835be771400b85d4ae8b63de6San Mehat    public:
63d18304287dbabc7835be771400b85d4ae8b63de6San Mehat        NatCmd();
64d18304287dbabc7835be771400b85d4ae8b63de6San Mehat        virtual ~NatCmd() {}
65d18304287dbabc7835be771400b85d4ae8b63de6San Mehat        int runCommand(SocketClient *c, int argc, char ** argv);
66d18304287dbabc7835be771400b85d4ae8b63de6San Mehat    };
67d5573d34c8fac49e16b20cf144486125bf940086San Mehat
68d5573d34c8fac49e16b20cf144486125bf940086San Mehat    class ListTtysCmd : public NetdCommand {
69d5573d34c8fac49e16b20cf144486125bf940086San Mehat    public:
70d5573d34c8fac49e16b20cf144486125bf940086San Mehat        ListTtysCmd();
71d5573d34c8fac49e16b20cf144486125bf940086San Mehat        virtual ~ListTtysCmd() {}
72d5573d34c8fac49e16b20cf144486125bf940086San Mehat        int runCommand(SocketClient *c, int argc, char ** argv);
73d5573d34c8fac49e16b20cf144486125bf940086San Mehat    };
74d5573d34c8fac49e16b20cf144486125bf940086San Mehat
75d5573d34c8fac49e16b20cf144486125bf940086San Mehat    class PppdCmd : public NetdCommand {
76d5573d34c8fac49e16b20cf144486125bf940086San Mehat    public:
77d5573d34c8fac49e16b20cf144486125bf940086San Mehat        PppdCmd();
78d5573d34c8fac49e16b20cf144486125bf940086San Mehat        virtual ~PppdCmd() {}
79d5573d34c8fac49e16b20cf144486125bf940086San Mehat        int runCommand(SocketClient *c, int argc, char ** argv);
80d5573d34c8fac49e16b20cf144486125bf940086San Mehat    };
811bdac9e98c1ef37ba568b6cf23bfbc09cfe6bf15San Mehat
821bdac9e98c1ef37ba568b6cf23bfbc09cfe6bf15San Mehat    class PanCmd : public NetdCommand {
831bdac9e98c1ef37ba568b6cf23bfbc09cfe6bf15San Mehat    public:
841bdac9e98c1ef37ba568b6cf23bfbc09cfe6bf15San Mehat        PanCmd();
851bdac9e98c1ef37ba568b6cf23bfbc09cfe6bf15San Mehat        virtual ~PanCmd() {}
861bdac9e98c1ef37ba568b6cf23bfbc09cfe6bf15San Mehat        int runCommand(SocketClient *c, int argc, char ** argv);
871bdac9e98c1ef37ba568b6cf23bfbc09cfe6bf15San Mehat    };
88d18304287dbabc7835be771400b85d4ae8b63de6San Mehat};
89d18304287dbabc7835be771400b85d4ae8b63de6San Mehat
90d18304287dbabc7835be771400b85d4ae8b63de6San Mehat#endif
91