static jstring MakeStringObjFromHidlString(JNIEnv *env, const hidl_string &s) {
    String16 utf16String(s.c_str(), s.size());

    return env->NewString(
            reinterpret_cast<const jchar *>(utf16String.string()),
            utf16String.size());
}
void shallowCopyHidlStr(hidl_string* dest, const hidl_string& src) {
    if (src.empty()) {
        dest->clear();
    } else {
        dest->setToExternal(src.c_str(), src.size());
    }
}
 Return<void> onRegistration(const hidl_string& fully_qualified_name,
                             const hidl_string& instance_name,
                             bool pre_existing) override {
     if (pre_existing) {
         return Void();
     }
     std::unique_lock<std::mutex> lock(mutex_);
     registered_.push_back(std::string(fully_qualified_name.c_str()) + "/" +
                           instance_name.c_str());
     lock.unlock();
     condition_.notify_one();
     return Void();
 }
 Return<bool> DrmFactory::isContentTypeSupported (
         const hidl_string& mimeType) {
     for (size_t i = 0; i < loader.factoryCount(); i++) {
         if (loader.getFactory(i)->isContentTypeSupported(String8(mimeType.c_str()))) {
             return true;
         }
     }
     return false;
 }