/*
 * Copyright (C) 2014 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 NETD_SERVER_FWMARK_SERVER_H
#define NETD_SERVER_FWMARK_SERVER_H

#include "EventReporter.h"
#include "sysutils/SocketListener.h"

namespace android {
namespace net {

class NetworkController;
class TrafficController;

class FwmarkServer : public SocketListener {
public:
  explicit FwmarkServer(NetworkController* networkController, EventReporter* eventReporter,
                        TrafficController* trafficCtrl);

  static constexpr const char* SOCKET_NAME = "fwmarkd";

private:
    // Overridden from SocketListener:
    bool onDataAvailable(SocketClient* client);

    // Returns 0 on success or a negative errno value on failure.
    int processClient(SocketClient* client, int* socketFd);

    NetworkController* const mNetworkController;
    EventReporter* mEventReporter;
    TrafficController* mTrafficCtrl;
};

}  // namespace net
}  // namespace android

#endif  // NETD_SERVER_FWMARK_SERVER_H
