当前位置: 首页>>代码示例>>C++>>正文


C++ BookModel类代码示例

本文整理汇总了C++中BookModel的典型用法代码示例。如果您正苦于以下问题:C++ BookModel类的具体用法?C++ BookModel怎么用?C++ BookModel使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了BookModel类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: readModel

bool OEBPlugin::readModel(BookModel &model) const {
	const ZLFile &file = model.book()->file();
	model.addUserData(
		"inputStreamLock",
		new InputStreamLock(file.inputStream())
	);
	return OEBBookReader(model).readBook(opfFile(file));
}
开发者ID:raghavkc,项目名称:fbreaderj2,代码行数:8,代码来源:OEBPlugin.cpp

示例2: initTOC

static bool initTOC(JNIEnv *env, jobject javaModel, BookModel &model) {
	ContentsModel &contentsModel = (ContentsModel&)*model.contentsModel();

	jobject javaTextModel = createTextModel(env, javaModel, contentsModel);
	if (javaTextModel == 0) {
		return false;
	}

	std::vector<jint> childrenNumbers;
	std::vector<jint> referenceNumbers;
	const size_t size = contentsModel.paragraphsNumber();
	childrenNumbers.reserve(size);
	referenceNumbers.reserve(size);
	for (size_t pos = 0; pos < size; ++pos) {
		ZLTextTreeParagraph *par = (ZLTextTreeParagraph*)contentsModel[pos];
		childrenNumbers.push_back(par->children().size());
		referenceNumbers.push_back(contentsModel.reference(par));
	}
	jintArray javaChildrenNumbers = AndroidUtil::createJavaIntArray(env, childrenNumbers);
	jintArray javaReferenceNumbers = AndroidUtil::createJavaIntArray(env, referenceNumbers);

	AndroidUtil::Method_NativeBookModel_initTOC->call(javaModel, javaTextModel, javaChildrenNumbers, javaReferenceNumbers);

	env->DeleteLocalRef(javaTextModel);
	env->DeleteLocalRef(javaChildrenNumbers);
	env->DeleteLocalRef(javaReferenceNumbers);
	return !env->ExceptionCheck();
}
开发者ID:dacongy,项目名称:FBReaderJ,代码行数:28,代码来源:JavaNativeFormatPlugin.cpp

示例3: readModel

bool OEBPlugin::readModel(const DBBook &book, BookModel &model) const {
	model.addUserData(
		"inputStreamLock",
		new InputStreamLock(ZLFile(book.fileName()).inputStream())
	);
	return OEBBookReader(model).readBook(opfFileName(book.fileName()));
}
开发者ID:chenhbzl,项目名称:BooxApp,代码行数:7,代码来源:OEBPlugin.cpp

示例4: readModel

bool TxtPlugin::readModel(BookModel &model) const {
	Book &book = *model.book();
	const ZLFile &file = book.file();
	shared_ptr<ZLInputStream> stream = file.inputStream();
	if (stream.isNull()) {
		return false;
	}

	PlainTextFormat format(file);
	if (!format.initialized()) {
		PlainTextFormatDetector detector;
		detector.detect(*stream, format);
	}

	readLanguageAndEncoding(book);
	TxtBookReader(model, format, book.encoding()).readDocument(*stream);
	return true;
}
开发者ID:Brucechen13,项目名称:FBReaderJ,代码行数:18,代码来源:TxtPlugin.cpp

示例5: readModel

bool HtmlPlugin::readModel(BookModel &model) const {
	const Book& book = *model.book();
	const ZLFile &file = book.file();
	shared_ptr<ZLInputStream> stream = file.inputStream();
	if (stream.isNull()) {
		return false;
	}

	PlainTextFormat format(file);
	if (!format.initialized()) {
		PlainTextFormatDetector detector;
		detector.detect(*stream, format);
	}

	std::string directoryPrefix = MiscUtil::htmlDirectoryPrefix(file.path());
	HtmlBookReader reader(directoryPrefix, model, format, book.encoding());
	reader.setFileName(MiscUtil::htmlFileName(file.path()));
	reader.readDocument(*stream);

	return true;
}
开发者ID:euroelessar,项目名称:FBReader,代码行数:21,代码来源:HtmlPlugin.cpp

示例6: initInternalHyperlinks

static bool initInternalHyperlinks(JNIEnv *env, jobject javaModel, BookModel &model) {
	ZLCachedMemoryAllocator allocator(131072, Library::Instance().cacheDirectory(), "nlinks");

	ZLUnicodeUtil::Ucs2String ucs2id;
	ZLUnicodeUtil::Ucs2String ucs2modelId;

	const std::map<std::string,BookModel::Label> &links = model.internalHyperlinks();
	std::map<std::string,BookModel::Label>::const_iterator it = links.begin();
	for (; it != links.end(); ++it) {
		const std::string &id = it->first;
		const BookModel::Label &label = it->second;
		if (label.Model.isNull()) {
			continue;
		}
		ZLUnicodeUtil::utf8ToUcs2(ucs2id, id);
		ZLUnicodeUtil::utf8ToUcs2(ucs2modelId, label.Model->id());
		const std::size_t idLen = ucs2id.size() * 2;
		const std::size_t modelIdLen = ucs2modelId.size() * 2;

		char *ptr = allocator.allocate(idLen + modelIdLen + 8);
		ZLCachedMemoryAllocator::writeUInt16(ptr, ucs2id.size());
		ptr += 2;
		std::memcpy(ptr, &ucs2id.front(), idLen);
		ptr += idLen;
		ZLCachedMemoryAllocator::writeUInt16(ptr, ucs2modelId.size());
		ptr += 2;
		std::memcpy(ptr, &ucs2modelId.front(), modelIdLen);
		ptr += modelIdLen;
		ZLCachedMemoryAllocator::writeUInt32(ptr, label.ParagraphNumber);
	}
	allocator.flush();

	jstring linksDirectoryName = env->NewStringUTF(allocator.directoryName().c_str());
	jstring linksFileExtension = env->NewStringUTF(allocator.fileExtension().c_str());
	jint linksBlocksNumber = allocator.blocksNumber();
	AndroidUtil::Method_NativeBookModel_initInternalHyperlinks->call(javaModel, linksDirectoryName, linksFileExtension, linksBlocksNumber);
	env->DeleteLocalRef(linksDirectoryName);
	env->DeleteLocalRef(linksFileExtension);
	return !env->ExceptionCheck();
}
开发者ID:BinushBabu,项目名称:android-arabic-reader,代码行数:40,代码来源:JavaNativeFormatPlugin.cpp

示例7: readModel

bool RtfPlugin::readModel(BookModel &model) const {
	const Book &book = *model.book();
	return RtfBookReader(model, book.encoding()).readDocument(book.file());
}
开发者ID:gezhonglunta,项目名称:FBReaderJ_2,代码行数:4,代码来源:RtfPlugin.cpp

示例8: readModel

bool DocPlugin::readModel(BookModel &model) const {
	return DocBookReader(model, model.book()->encoding()).readBook();
}
开发者ID:andreypc,项目名称:FBReaderJ,代码行数:3,代码来源:DocPlugin.cpp

示例9: BookReader

PluckerBookReader::PluckerBookReader(BookModel &model) : BookReader(model), EncodedTextReader(model.book()->encoding()), myFile(model.book()->file()), myFont(FT_REGULAR) {
    myCharBuffer = new char[65535];
    myForcedEntry = 0;
}
开发者ID:euroelessar,项目名称:FBReader,代码行数:4,代码来源:PluckerBookReader.cpp

示例10: readModel

bool CHMPlugin::readModel(BookModel &model) const {
    model.setHyperlinkMatcher(new CHMHyperlinkMatcher());

    const Book &book = *model.book();
    const ZLFile &file = book.file();

    shared_ptr<ZLInputStream> stream = file.inputStream();
    if (stream.isNull() || !stream->open()) {
        return false;
    }

    shared_ptr<CHMFileInfo> info = new CHMFileInfo(file);
    if (!info->init(*stream)) {
        return false;
    }

    CHMFileInfo::FileNames names = info->sectionNames(stream);
    if (names.empty()) {
        return false;
    }

    CHMReferenceCollection referenceCollection;

    referenceCollection.addReference(names.Start, false);
    referenceCollection.addReference(names.Home, false);

    const std::string &encoding = book.encoding();

    shared_ptr<ZLInputStream> tocStream = info->entryStream(stream, names.TOC);
    HHCReader hhcReader(referenceCollection, model, encoding);
    if (!tocStream.isNull() && tocStream->open()) {
        referenceCollection.setPrefix(names.TOC);
        hhcReader.readDocument(*tocStream);
    }

    /*
    if (!tocStream.isNull() && tocStream->open()) {
    	std::string buf;
    	buf.append(tocStream->sizeOfOpened(), '\0');
    	tocStream->read((char*)buf.data(), buf.length());
    	std::cerr << "[ " << names.TOC << " ]\n" << buf << "\n";
    }
    */

    int contentCounter = 0;
    PlainTextFormat format(file);
    HtmlSectionReader reader(model, format, encoding, info, referenceCollection);
    while (referenceCollection.containsNonProcessedReferences()) {
        const std::string fileName = referenceCollection.nextReference();
        if (ZLStringUtil::stringEndsWith(fileName, ".jpg") ||
                ZLStringUtil::stringEndsWith(fileName, ".gif")) {
            std::string lowerCasedFileName = ZLUnicodeUtil::toLower(fileName);
            BookReader bookReader(model);
            bookReader.setMainTextModel();
            bookReader.addHyperlinkLabel(lowerCasedFileName);
            bookReader.pushKind(REGULAR);
            bookReader.beginParagraph();
            bookReader.addImageReference(lowerCasedFileName);
            bookReader.addImage(fileName, new CHMFileImage(info, fileName));
            bookReader.endParagraph();
            bookReader.insertEndOfTextParagraph();
        } else {
            shared_ptr<ZLInputStream> entryStream = info->entryStream(stream, fileName);
            if (!entryStream.isNull() && entryStream->open()) {
                /*
                std::string buf;
                buf.append(entryStream->sizeOfOpened(), '\0');
                entryStream->read((char*)buf.data(), buf.length());
                std::cerr << "[ " << fileName << " ]\n" << buf << "\n";
                entryStream->open();
                */
                reader.setSectionName(fileName);
                reader.readDocument(*entryStream);
                ++contentCounter;
            }
        }
    }
    if (contentCounter == 0) {
        return false;
    }

    hhcReader.setReferences();


    return true;
}
开发者ID:euroelessar,项目名称:FBReader,代码行数:86,代码来源:CHMPlugin.cpp

示例11: readModel

bool OEBPlugin::readModel(BookModel &model) const {
	const ZLFile &file = model.book()->file();
	return OEBBookReader(model).readBook(opfFile(file));
}
开发者ID:ALEXGUOQ,项目名称:FBReaderJ,代码行数:4,代码来源:OEBPlugin.cpp


注:本文中的BookModel类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。