osvr::clientkit::ClientContext

客户端上下文对象:在应用程序中创建并保存。

用于管理生命周期以及访问ClientKit功能函数。

Context_decl.h的第57行声明。


构造函数:

osvr::clientkit::ClientContext::ClientContext(const char applicationIdentifier[], uint32_t flags = 0u)

@brief:对库初始化

@applicationIdentifier:给应用程序取的标识名。推荐使用反向域名格式,比如

(osvr::clientkit::ClientContext context("com.osvr.exampleclients.Imaging");)

@flags :初始化选项(保留,可选)

Context.h第45行定义。


osvr::clientkit::ClientContext::ClientContext(OSVR_ClientContext context)

@brief:使用存在的context初始化当前context

@note:ClientContext类将占有该context

Context.h第49行定义。


成员函数:

Interface svr::clientkit::ClientContext::getInterface(const std::string &path)

@brief:获取与指定路径关联的接口

@returns:返回接口对象

Context.h第61行定义。


std::string osvr::clientkit::ClientContext::getStringParameter(const std::string &path)

@brief:从给定路径获取字符串

@path:给定路径

@returns:字符串值或者空值(如果给定路径不存在或者不是一个字符串时)

Context.h第74行定义。


bool osvr::clientkit::ClientContext::checkStatus() const

@brief:检查客户端上下文是否正常启动

@returns:若返回false,则可能server没有启动,或连接server超时,或者程序没有调用update()函数

Context.h第111行定义。


void osvr::clientkit::ClientContext::log(OSVR_LogLevel severity, const char* message)

@brief:log一个消息到插件特定通道。

@severity:log信息等级。如下:

typedef enum OSVR_LogLevel {  
    OSVR_LOGLEVEL_TRACE = 0,     //< function entry and exit, control flow.  
    OSVR_LOGLEVEL_DEBUG = 10,    //< debug-level messages.  
    OSVR_LOGLEVEL_INFO = 20,     //< informational messages.  
    OSVR_LOGLEVEL_NOTICE = 30,   //< normal but significant condition.  
    OSVR_LOGLEVEL_WARN = 40,     //< warning conditions.  
    OSVR_LOGLEVEL_ERROR = 50,      //< error messages.  
    OSVR_LOGLEVEL_CRITICAL = 60, //< critical conditions.  
} OSVR_LogLevel;  

@message:log信息


=========================================================2017年8月8日

构造函数:

inline ClientContext::ClientContext(const char applicationIdentifier[],
                                        uint32_t flags)
        : m_context(osvrClientInit(applicationIdentifier, flags)) {}


OSVR_ClientContext osvrClientInit(const char applicationIdentifier[],
                                  uint32_t /*flags*/) {
    auto host = osvr::util::getEnvironmentVariable(HOST_ENV_VAR);
    if (host.is_initialized()) {

        make_clientkit_logger()->notice() << "App " << applicationIdentifier
                                          << ": Connecting to non-default host "
                                          << *host;
        return ::osvr::client::createContext(applicationIdentifier,
                                             host->c_str());
    }
    make_clientkit_logger()->debug("Connecting to default (local) host");
    return ::osvr::client::createContext(applicationIdentifier);
}


通过OSVR_HOST字符串获取host的环境变量:


static const char HOST_ENV_VAR[] = "OSVR_HOST";

/// A real implementation of the functionality.
    boost::optional<std::string>
    getEnvironmentVariable(std::string const &var) {
        boost::optional<std::string> ret;

        auto initialRet = std::getenv(var.c_str());
        if (nullptr == initialRet) {
            return ret;
        }
        std::string val(initialRet);
#ifdef OSVR_WINDOWS
        // Windows doesn't distinguish between empty and not defined, so assume
        // empty means not defined.
        if (val.empty()) {
            return ret;
        }
#endif
        ret = val;
        return ret;
    }

最终是创建一个上下文,传入appID:

common::ClientContext * 	osvr::client::createContext (const char appId[], const char host[]="localhost")


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值