ShellCMD.cpp 1.88 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
//
// Created by xzl on 2017/12/1.
//

#include "Util/CMD.h"
#include "Rtsp/RtspMediaSource.h"
#include "Rtmp/RtmpMediaSource.h"

using namespace ZL::Util;
using namespace ZL::Rtsp;
using namespace ZL::Rtmp;

namespace ZL {
namespace Shell {

class CMD_rtsp: public CMD {
public:
    CMD_rtsp(){
        _parser.reset(new OptionParser(nullptr));
        (*_parser) << Option('l', "list", Option::ArgNone, nullptr,false, "list all media source of rtsp",
                             [](const std::shared_ptr<ostream> &stream, const string &arg) {
                                 auto mediaSet = RtspMediaSource::getMediaSet();
                                 for (auto &src : mediaSet) {
                                     (*stream) << "\t" << src << "\r\n";
                                 }
                                 return false;
                             });
    }
    virtual ~CMD_rtsp() {}
    const char *description() const override {
        return "查看rtsp服务器相关信息.";
    }
};
class CMD_rtmp: public CMD {
public:
    CMD_rtmp(){
        _parser.reset(new OptionParser(nullptr));
        (*_parser) << Option('l', "list", Option::ArgNone,nullptr,false, "list all media source of rtmp",
                             [](const std::shared_ptr<ostream> &stream, const string &arg) {
                                 auto mediaSet = RtmpMediaSource::getMediaSet();
                                 for (auto &src : mediaSet) {
                                     (*stream) << "\t" << src << "\r\n";
                                 }
                                 return false;
                             });
    }
    virtual ~CMD_rtmp() {}
    const char *description() const override {
        return "查看rtmp服务器相关信息.";
    }
};

static onceToken s_token([]() {
    REGIST_CMD(rtmp);
    REGIST_CMD(rtsp);
}, nullptr);


}/* namespace Shell */
} /* namespace ZL */