本文整理汇总了C++中SrsConfDirective::at方法的典型用法代码示例。如果您正苦于以下问题:C++ SrsConfDirective::at方法的具体用法?C++ SrsConfDirective::at怎么用?C++ SrsConfDirective::at使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SrsConfDirective
的用法示例。
在下文中一共展示了SrsConfDirective::at方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: initialize_hls_streaming
int SrsHttpStreamServer::initialize_hls_streaming()
{
int ret = ERROR_SUCCESS;
// http hls live stream mount for each vhost.
SrsConfDirective* root = _srs_config->get_root();
for (int i = 0; i < (int)root->directives.size(); i++) {
SrsConfDirective* conf = root->at(i);
if (!conf->is_vhost()) {
continue;
}
std::string vhost = conf->arg0();
if (!_srs_config->get_hls_enabled(vhost)) {
continue;
}
std::string storage = _srs_config->get_hls_storage(vhost);
if (storage != "ram" && storage != "both") {
continue;
}
SrsHlsEntry* entry = new SrsHlsEntry();
entry->mount = _srs_config->get_hls_mount(vhost);
thls[vhost] = entry;
srs_trace("http hls live stream, vhost=%s, mount=%s",
vhost.c_str(), entry->mount.c_str());
}
return ret;
}
示例2: initialize
int SrsHttpStaticServer::initialize()
{
int ret = ERROR_SUCCESS;
bool default_root_exists = false;
// http static file and flv vod stream mount for each vhost.
SrsConfDirective* root = _srs_config->get_root();
for (int i = 0; i < (int)root->directives.size(); i++) {
SrsConfDirective* conf = root->at(i);
if (!conf->is_vhost()) {
continue;
}
std::string vhost = conf->arg0();
if (!_srs_config->get_vhost_http_enabled(vhost)) {
continue;
}
std::string mount = _srs_config->get_vhost_http_mount(vhost);
std::string dir = _srs_config->get_vhost_http_dir(vhost);
// replace the vhost variable
mount = srs_string_replace(mount, "[vhost]", vhost);
// remove the default vhost mount
mount = srs_string_replace(mount, SRS_CONSTS_RTMP_DEFAULT_VHOST"/", "/");
// the dir mount must always ends with "/"
if (mount != "/" && mount.rfind("/") != mount.length() - 1) {
mount += "/";
}
// mount the http of vhost.
if ((ret = mux.handle(mount, new SrsVodStream(dir))) != ERROR_SUCCESS) {
srs_error("http: mount dir=%s for vhost=%s failed. ret=%d", dir.c_str(), vhost.c_str(), ret);
return ret;
}
if (mount == "/") {
default_root_exists = true;
srs_warn("http: root mount to %s", dir.c_str());
}
srs_trace("http: vhost=%s mount to %s", vhost.c_str(), mount.c_str());
}
if (!default_root_exists) {
// add root
std::string dir = _srs_config->get_http_stream_dir();
if ((ret = mux.handle("/", new SrsVodStream(dir))) != ERROR_SUCCESS) {
srs_error("http: mount root dir=%s failed. ret=%d", dir.c_str(), ret);
return ret;
}
srs_trace("http: root mount to %s", dir.c_str());
}
return ret;
}
示例3: initialize_flv_streaming
int SrsHttpStreamServer::initialize_flv_streaming()
{
int ret = ERROR_SUCCESS;
// http flv live stream mount for each vhost.
SrsConfDirective* root = _srs_config->get_root();
for (int i = 0; i < (int)root->directives.size(); i++) {
SrsConfDirective* conf = root->at(i);
if (!conf->is_vhost()) {
continue;
}
if ((ret = initialize_flv_entry(conf->arg0())) != ERROR_SUCCESS) {
return ret;
}
}
return ret;
}
示例4: initialize
int SrsHttpRoot::initialize()
{
int ret = ERROR_SUCCESS;
bool default_root_exists = false;
// add other virtual path
SrsConfDirective* root = _srs_config->get_root();
for (int i = 0; i < (int)root->directives.size(); i++) {
SrsConfDirective* conf = root->at(i);
if (!conf->is_vhost()) {
continue;
}
std::string vhost = conf->arg0();
if (!_srs_config->get_vhost_http_enabled(vhost)) {
continue;
}
std::string mount = _srs_config->get_vhost_http_mount(vhost);
std::string dir = _srs_config->get_vhost_http_dir(vhost);
handlers.push_back(new SrsHttpVhost(vhost, mount, dir));
if (mount == "/") {
default_root_exists = true;
}
}
if (!default_root_exists) {
// add root
handlers.push_back(new SrsHttpVhost(
"__http__", "/", _srs_config->get_http_stream_dir()));
}
return ret;
}