本文整理汇总了C++中ItemFactory::createBase64Binary方法的典型用法代码示例。如果您正苦于以下问题:C++ ItemFactory::createBase64Binary方法的具体用法?C++ ItemFactory::createBase64Binary怎么用?C++ ItemFactory::createBase64Binary使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ItemFactory
的用法示例。
在下文中一共展示了ItemFactory::createBase64Binary方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
zorba::Item HttpResponseParser::createBase64Item( std::istream& aStream )
{
ItemFactory* lFactory = Zorba::getInstance(0)->getItemFactory();
// TODO: once a proper streaming implementation is in place this can be
// changed. This required a Base64 encoding stream since the item factory
// work only builds base64binary and assumes the data is already encoded.
String lEncoded;
zorba::base64::encode(aStream, &lEncoded);
return lFactory->createBase64Binary(lEncoded.data(), lEncoded.size(), true);
}
示例2: testMultipleFactoryInitilizations
int
itemfactory(int argc, char* argv[])
{
try
{
testMultipleFactoryInitilizations();
}
catch (ZorbaException &e)
{
std::cerr << e << std::endl;
return 1;
}
Zorba* lZorba = Zorba::getInstance(zorba::StoreManager::getStore());
ItemFactory* lFactory = lZorba->getItemFactory();
Item lItem;
try {
/** String */
lItem = lFactory->createString("abc");
UNIT_ASSERT ( checkType(lItem.getType(), "string") );
UNIT_ASSERT ( lItem.isAtomic() );
UNIT_ASSERT ( lItem.getStringValue() == "abc" );
UNIT_ASSERT ( !lItem.getAtomizationValue().isNull() );
lItem.close();
UNIT_ASSERT (lItem.isNull());
/** AnyURI */
lItem = lFactory->createAnyURI("http://www.flworfound.org/");
UNIT_ASSERT ( checkType(lItem.getType(), "anyURI") );
UNIT_ASSERT ( lItem.isAtomic() );
UNIT_ASSERT ( lItem.getStringValue() == "http://www.flworfound.org/");
UNIT_ASSERT ( !lItem.getAtomizationValue().isNull() );
/** QName */
lItem = lFactory->createQName("http://www.flworfound.org", "flwor", "name");
UNIT_ASSERT ( checkType(lItem.getType(), "QName") );
UNIT_ASSERT ( lItem.isAtomic() );
UNIT_ASSERT ( lItem.getStringValue() == "flwor:name" );
UNIT_ASSERT ( lItem.getNamespace() == "http://www.flworfound.org" );
UNIT_ASSERT ( !lItem.getAtomizationValue().isNull() );
lItem = lFactory->createQName("http://www.flworfound.org", "name");
UNIT_ASSERT ( checkType(lItem.getType(), "QName") );
UNIT_ASSERT ( lItem.isAtomic() );
UNIT_ASSERT ( lItem.getStringValue() == "name" );
UNIT_ASSERT ( lItem.getPrefix().length() == 0 );
UNIT_ASSERT ( lItem.getPrefix().empty() );
UNIT_ASSERT ( lItem.getNamespace() == "http://www.flworfound.org" );
UNIT_ASSERT ( !lItem.getAtomizationValue().isNull() );
// test generating a qname from the clark notation {ns}localname
lItem = lFactory->createQName("{http://www.flworfound.org}name");
UNIT_ASSERT ( checkType(lItem.getType(), "QName") );
UNIT_ASSERT ( lItem.isAtomic() );
UNIT_ASSERT ( lItem.getStringValue() == "name" );
UNIT_ASSERT ( lItem.getPrefix().length() == 0 );
UNIT_ASSERT ( lItem.getPrefix().empty() );
UNIT_ASSERT ( lItem.getNamespace() == "http://www.flworfound.org" );
UNIT_ASSERT ( !lItem.getAtomizationValue().isNull() );
/** NCName */
lItem = lFactory->createNCName("ncname");
UNIT_ASSERT ( checkType(lItem.getType(), "NCName") );
UNIT_ASSERT ( lItem.isAtomic() );
UNIT_ASSERT ( lItem.getStringValue() == "ncname" );
UNIT_ASSERT ( !lItem.getAtomizationValue().isNull() );
try {
lItem.getPrefix();
UNIT_ASSERT(false);
} catch (ZorbaException &e) {
UNIT_ASSERT (e.diagnostic() == zerr::ZSTR0040_TYPE_ERROR);
}
// CHECK_NOT_IMPLEMENTED (lItem, getPrefix());
CHECK_NOT_IMPLEMENTED (lItem, getLocalName());
CHECK_NOT_IMPLEMENTED (lItem, getNamespace());
CHECK_NOT_IMPLEMENTED (lItem, getBooleanValue() );
/** Base64Binary */
lItem = lFactory->createBase64Binary("", 0, false);
UNIT_ASSERT ( checkType(lItem.getType(), "base64Binary") );
UNIT_ASSERT ( lItem.isAtomic() );
UNIT_ASSERT ( lItem.getStringValue() == "" );
UNIT_ASSERT ( lItem.getStringValue().length() == 0 );
UNIT_ASSERT ( !lItem.getAtomizationValue().isNull() );
lItem = lFactory->createBase64Binary("cmxjZ3R4c3JidnllcmVuZG91aWpsbXV5Z2NhamxpcmJkaWFhbmFob2VsYXVwZmJ1Z2dmanl2eHlzYmhheXFtZXR0anV2dG1q", 96, true);
UNIT_ASSERT ( checkType(lItem.getType(), "base64Binary") );
UNIT_ASSERT ( lItem.isAtomic() );
UNIT_ASSERT ( lItem.getStringValue() == "cmxjZ3R4c3JidnllcmVuZG91aWpsbXV5Z2NhamxpcmJkaWFhbmFob2VsYXVwZmJ1Z2dmanl2eHlzYmhheXFtZXR0anV2dG1q" );
UNIT_ASSERT ( lItem.getStringValue().length() == 96 );
UNIT_ASSERT ( !lItem.getAtomizationValue().isNull() );
CHECK_NOT_IMPLEMENTED (lItem, getBooleanValue() );
/** HexBinary */
lItem = lFactory->createHexBinary("", 0);
UNIT_ASSERT ( checkType(lItem.getType(), "hexBinary") );
//.........这里部分代码省略.........
示例3: lSequence
//.........这里部分代码省略.........
CHECK_EXCEPTION(env);
// Create the Transformer
transformerFactoryClass = env->FindClass("javax/xml/transform/TransformerFactory");
CHECK_EXCEPTION(env);
transformerFactory = env->CallStaticObjectMethod(transformerFactoryClass,
env->GetStaticMethodID(transformerFactoryClass, "newInstance", "()Ljavax/xml/transform/TransformerFactory;"));
CHECK_EXCEPTION(env);
transormer = env->CallObjectMethod(transformerFactory,
env->GetMethodID(transformerFactoryClass, "newTransformer", "()Ljavax/xml/transform/Transformer;"));
CHECK_EXCEPTION(env);
// Create Source
xmlUTF = env->NewStringUTF(xml);
stringReaderClass = env->FindClass("java/io/StringReader");
CHECK_EXCEPTION(env);
stringReader = env->NewObject(stringReaderClass,
env->GetMethodID(stringReaderClass, "<init>", "(Ljava/lang/String;)V"), xmlUTF);
CHECK_EXCEPTION(env);
streamSourceClass = env->FindClass("javax/xml/transform/stream/StreamSource");
CHECK_EXCEPTION(env);
streamSource = env->NewObject(streamSourceClass,
env->GetMethodID(streamSourceClass, "<init>", "(Ljava/io/Reader;)V"), stringReader);
CHECK_EXCEPTION(env);
// Create the SAXResult
defaultHandler = env->CallObjectMethod(fop,
env->GetMethodID(env->FindClass("org/apache/fop/apps/Fop"), "getDefaultHandler",
"()Lorg/xml/sax/helpers/DefaultHandler;"));
CHECK_EXCEPTION(env);
saxResultClass = env->FindClass("javax/xml/transform/sax/SAXResult");
CHECK_EXCEPTION(env);
saxResult = env->NewObject(saxResultClass,
env->GetMethodID(saxResultClass, "<init>", "(Lorg/xml/sax/ContentHandler;)V"),
defaultHandler);
CHECK_EXCEPTION(env);
// Transform
env->CallObjectMethod(transormer,
env->GetMethodID(env->FindClass("javax/xml/transform/Transformer"),
"transform",
"(Ljavax/xml/transform/Source;Ljavax/xml/transform/Result;)V"),
streamSource, saxResult);
CHECK_EXCEPTION(env);
// Close outputstream
env->CallObjectMethod(byteArrayOutputStream,
env->GetMethodID(env->FindClass("java/io/OutputStream"),
"close", "()V"));
CHECK_EXCEPTION(env);
saxResultClass = env->FindClass("javax/xml/transform/sax/SAXResult");
CHECK_EXCEPTION(env);
// Get the byte array
res = (jbyteArray) env->CallObjectMethod(byteArrayOutputStream,
env->GetMethodID(byteArrayOutputStreamClass, "toByteArray", "()[B"));
CHECK_EXCEPTION(env);
// Create the result
dataSize = env->GetArrayLength(res);
dataElements = env->GetByteArrayElements(res, &isCopy);
std::string lBinaryString((const char*) dataElements, dataSize);
std::stringstream lStream(lBinaryString);
String base64S;
base64::encode(lStream, &base64S);
Item lRes( theFactory->createBase64Binary(base64S.data(), base64S.size(), true) );
return ItemSequence_t(new SingletonItemSequence(lRes));
} catch (zorba::jvm::VMOpenException&) {
Item lQName = theFactory->createQName("http://zorba.io/modules/xsl-fo",
"JVM-NOT-STARTED");
throw USER_EXCEPTION(lQName, "Could not start the Java VM (is the classpath set?)");
} catch (JavaException&) {
jclass stringWriterClass = env->FindClass("java/io/StringWriter");
jclass printWriterClass = env->FindClass("java/io/PrintWriter");
jclass throwableClass = env->FindClass("java/lang/Throwable");
jobject stringWriter = env->NewObject(
stringWriterClass,
env->GetMethodID(stringWriterClass, "<init>", "()V"));
jobject printWriter = env->NewObject(
printWriterClass, env->GetMethodID(printWriterClass, "<init>", "(Ljava/io/Writer;)V"), stringWriter);
env->CallObjectMethod(lException, env->GetMethodID(throwableClass, "printStackTrace", "(Ljava/io/PrintWriter;)V"), printWriter);
//env->CallObjectMethod(printWriter, env->GetMethodID(printWriterClass, "flush", "()V"));
jmethodID toStringMethod = env->GetMethodID(stringWriterClass, "toString", "()Ljava/lang/String;");
jobject errorMessageObj = env->CallObjectMethod(
stringWriter, toStringMethod);
jstring errorMessage = (jstring) errorMessageObj;
const char *errMsg = env->GetStringUTFChars(errorMessage, 0);
std::stringstream s;
s << "A Java Exception was thrown:" << std::endl << errMsg;
env->ReleaseStringUTFChars(errorMessage, errMsg);
std::string err("");
err += s.str();
env->ExceptionClear();
Item lQName = theFactory->createQName("http://zorba.io/modules/xsl-fo",
"JAVA-EXCEPTION");
throw USER_EXCEPTION(lQName, err);
}
return ItemSequence_t(new EmptySequence());
}