+++ /dev/null
-// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
-// vim: ts=8 sw=2 smarttab
-/*
- * Ceph - scalable distributed file system
- *
- * Copyright (C) 2011 New Dream Network
- *
- * This is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software
- * Foundation. See file COPYING.
- *
- */
-
-#ifndef CEPH_COMMON_OUTPUTDATASOCKET_H
-#define CEPH_COMMON_OUTPUTDATASOCKET_H
-
-#include "common/Cond.h"
-
-class CephContext;
-
-class OutputDataSocket : public Thread
-{
-public:
- OutputDataSocket(CephContext *cct, uint64_t _backlog);
- ~OutputDataSocket() override;
-
- bool init(const std::string &path);
-
- void append_output(bufferlist& bl);
-
-protected:
- virtual void init_connection(bufferlist& bl) {}
- void shutdown();
-
- std::string create_shutdown_pipe(int *pipe_rd, int *pipe_wr);
- std::string bind_and_listen(const std::string &sock_path, int *fd);
-
- void *entry() override;
- bool do_accept();
-
- void handle_connection(int fd);
- void close_connection(int fd);
-
- int dump_data(int fd);
-
- CephContext *m_cct;
- uint64_t data_max_backlog;
- std::string m_path;
- int m_sock_fd;
- int m_shutdown_rd_fd;
- int m_shutdown_wr_fd;
- bool going_down;
-
- uint64_t data_size;
-
- std::list<bufferlist> data;
-
- Mutex m_lock;
- Cond cond;
-
- bufferlist delim;
-};
-
-#endif