srs/trunk/src/protocol/srs_protocol_conn.hpp
john 02c6e60e3a update copyright to 2025. v6.0.159 (#4271)
update copyright to 2025

---------

Co-authored-by: john <hondaxiao@tencent.com>
Co-authored-by: winlin <winlinvip@gmail.com>
2025-02-24 19:34:34 +08:00

55 lines
1.2 KiB
C++

//
// Copyright (c) 2013-2025 The SRS Authors
//
// SPDX-License-Identifier: MIT
//
#ifndef SRS_PROTOCOL_CONN_HPP
#define SRS_PROTOCOL_CONN_HPP
#include <srs_core.hpp>
#include <string>
#include <vector>
// The resource managed by ISrsResourceManager.
class ISrsResource
{
public:
ISrsResource();
virtual ~ISrsResource();
public:
// Get the context id of connection.
virtual const SrsContextId& get_id() = 0;
public:
// The resource description, optional.
virtual std::string desc();
};
// The manager for resource.
class ISrsResourceManager
{
public:
ISrsResourceManager();
virtual ~ISrsResourceManager();
public:
// Remove then free the specified connection. Note that the manager always free c resource,
// in the same coroutine or another coroutine. Some manager may support add c to a map, it
// should always free it even if it's in the map.
virtual void remove(ISrsResource* c) = 0;
};
// The connection interface for all HTTP/RTMP/RTSP object.
class ISrsConnection : public ISrsResource
{
public:
ISrsConnection();
virtual ~ISrsConnection();
public:
// Get remote ip address.
virtual std::string remote_ip() = 0;
};
#endif