/*
* Copyright © 2014 Canonical Ltd.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*
* Authored by: Alan Griffiths
*/
#ifndef ANBOX_NETWORK_CONNECTION_CONTEXT_H_
#define ANBOX_NETWORK_CONNECTION_CONTEXT_H_
#include
#include
namespace anbox {
namespace network {
class Connector;
class ConnectionContext {
public:
ConnectionContext(Connector const* connector)
: ConnectionContext([]() {}, connector) {}
ConnectionContext(std::function const connect_handler,
Connector const* connector);
int fd_for_new_client(std::function const& connect_handler) const;
void handle_client_connect() const { connect_handler(); }
private:
std::function const connect_handler;
Connector const* const connector;
};
} // namespace anbox
} // namespace network
#endif