本文整理汇总了C++中OutputFile::OpenFile方法的典型用法代码示例。如果您正苦于以下问题:C++ OutputFile::OpenFile方法的具体用法?C++ OutputFile::OpenFile怎么用?C++ OutputFile::OpenFile使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OutputFile
的用法示例。
在下文中一共展示了OutputFile::OpenFile方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RunTest
EStatusCode PreprocessorTest::RunTest(const string& inName, const string& inOriginalFile, const string& inOutputFile, const string& inComparisonFile)
{
EStatusCode status = eSuccess;
StringToStringMap preprocessorDefinitions;
StringList includeFolders;
includeFolders.push_back(scSamplesBasePath);
preprocessorDefinitions.insert(StringToStringMap::value_type("PREDEFINED_SYMBOL","2"));
InputFile sourceFile;
sourceFile.OpenFile(inOriginalFile);
OutputFile outputFile;
outputFile.OpenFile(inOutputFile);
mCurrentStream = outputFile.GetOutputStream();
PreProcessor preProcessor;
preProcessor.Setup(sourceFile.GetInputStream(),inOriginalFile,preprocessorDefinitions,includeFolders);
preProcessor.AddListener(this);
mStartRow = true;
BoolAndString tokenizerResult = preProcessor.GetNextToken();
while(tokenizerResult.first)
{
if(!mStartRow)
mCurrentStream->Write((const Byte*)" ",2); // 2 spaces, so we can clearly distinct tokens
mCurrentStream->Write((const Byte*)tokenizerResult.second.c_str(),tokenizerResult.second.size());
mStartRow = false;
tokenizerResult = preProcessor.GetNextToken();
}
sourceFile.CloseFile();
outputFile.CloseFile();
mCurrentStream = NULL;
SimpleFileComparer comparer;
if(!comparer.Same(inOutputFile,inComparisonFile))
{
cout<<"TokenizerTest::Run, failed in test named "<<inName<<". see result in "<<inOutputFile<<" and compare with the required result in "<<inComparisonFile<<"\n";
status = eFailure;
}
return status;
}
示例2: SaveCharstringCode
EStatusCode OpenTypeTest::SaveCharstringCode(unsigned short inFontIndex,unsigned short inGlyphIndex,CFFFileInput* inCFFFileInput)
{
OutputFile glyphFile;
EStatusCode status = glyphFile.OpenFile(string("C:\\PDFLibTests\\glyphCFF") + Long(inFontIndex).ToString() + "_" + inCFFFileInput->GetGlyphName(0,inGlyphIndex) + ".txt");
do
{
if(status != PDFHummus::eSuccess)
break;
CharStringType2Tracer tracer;
status = tracer.TraceGlyphProgram(inFontIndex,inGlyphIndex,inCFFFileInput,glyphFile.GetOutputStream());
}while(false);
glyphFile.CloseFile();
return status;
}
示例3: Run
EStatusCode PFBStreamTest::Run(const TestConfiguration& inTestConfiguration)
{
EStatusCode status;
InputFile pfbFile;
OutputFile decodedPFBFile;
InputPFBDecodeStream decodeStream;
do
{
pfbFile.OpenFile(RelativeURLToLocalPath(inTestConfiguration.mSampleFileBase,"TestMaterials/fonts/HLB_____.PFB"));
decodedPFBFile.OpenFile(RelativeURLToLocalPath(inTestConfiguration.mSampleFileBase,"decodedPFBFile.txt"));
status = decodeStream.Assign(pfbFile.GetInputStream());
if(status != PDFHummus::eSuccess)
{
cout<<"Failed to assign pfb input stream";
break;
}
OutputStreamTraits traits(decodedPFBFile.GetOutputStream());
status = traits.CopyToOutputStream(&decodeStream);
if(status != PDFHummus::eSuccess)
{
cout<<"Failed to decode pfb stream";
break;
}
}while(false);
decodeStream.Assign(NULL);
pfbFile.CloseFile();
decodedPFBFile.CloseFile();
return status;
}
示例4: RelativeURLToLocalPath
EStatusCode Type1Test::SaveCharstringCode(const TestConfiguration& inTestConfiguration,const string& inCharStringName,Type1Input* inType1Input)
{
OutputFile glyphFile;
EStatusCode status = glyphFile.OpenFile(
RelativeURLToLocalPath(inTestConfiguration.mSampleFileBase,string("glyphType1_") + inCharStringName + "_.txt"));
do
{
if(status != PDFHummus::eSuccess)
break;
CharStringType1Tracer tracer;
status = tracer.TraceGlyphProgram(inCharStringName,inType1Input,glyphFile.GetOutputStream());
}while(false);
glyphFile.CloseFile();
return status;
}
示例5: main
int main(int argc, char **argv)
{
int err;
// read in any overriding configuration from the command line
for(;;) {
int c;
int option_index = 0;
static struct option long_options[] = {
{"output", 1, 0, 'o'},
{0, 0, 0, 0},
};
c = getopt_long(argc, argv, "o:", long_options, &option_index);
if(c == -1)
break;
switch(c) {
case 'o':
output_filename = optarg;
break;
default:
usage(argc, argv);
break;
}
}
if (argc - optind < 1) {
usage(argc, argv);
return 1;
}
argc -= optind;
argv += optind;
// start preprocessor
int preprocess_out = preprocess(argv[0]);
if (preprocess_out < 0) {
fprintf(stderr, "error starting preprocessor\n");
return 1;
}
if (open_input(preprocess_out, argv[0]) < 0) {
fprintf(stderr, "error opening input file\n");
return 1;
}
if (output_filename == "") {
// build one out of the input file
output_filename = std::string(argv[0]) + ".bin";
printf("output file %s\n", output_filename.c_str());
}
OutputFile *f = new OutputFile();
if (f->OpenFile(output_filename) < 0) {
fprintf(stderr, "error opening output file\n");
return 1;
}
gSymtab = new Symtab();
gCodegen = new Codegen();
gCodegen->InitSymtab(gSymtab);
gCodegen->SetOutput(f);
err = parse_source();
if (err < 0)
goto err;
gCodegen->FixupPass();
err:
close(preprocess_out);
delete gCodegen;
delete gSymtab;
delete f;
return err;
}
示例6: Run
EStatusCode CustomLogTest::Run()
{
// Place log in a compressed stream, for a non-file PDF
EStatusCode status;
OutputFlateEncodeStream flateEncodeStream;
OutputFlateDecodeStream flateDecodeStream;
do
{
PDFWriter pdfWriter;
OutputFile compressedLogFile;
OutputStringBufferStream pdfStream;
// setup log file with compression
status = compressedLogFile.OpenFile("c:\\PDFLibTests\\CustomLogEncrypted.txt");
if(status != PDFHummus::eSuccess)
break;
flateEncodeStream.Assign(compressedLogFile.GetOutputStream());
// generate PDF
TRACE_LOG("Starting PDF File Writing");
status = pdfWriter.StartPDFForStream(&pdfStream,ePDFVersion13,LogConfiguration(true,&flateEncodeStream));
if(status != PDFHummus::eSuccess)
break;
TRACE_LOG("Now will add an empty page");
PDFPage* page = new PDFPage();
page->SetMediaBox(PDFRectangle(0,0,400,400));
status = pdfWriter.WritePageAndRelease(page);
if(status != PDFHummus::eSuccess)
break;
TRACE_LOG("Added page, now will close");
status = pdfWriter.EndPDFForStream();
if(status != PDFHummus::eSuccess)
break;
// since log was started by starting PDF...the ending resets it. so let's now begin again
Singleton<Trace>::GetInstance()->SetLogSettings(&flateEncodeStream,true);
TRACE_LOG("Finished PDF!!!1");
// dump PDF to a file, so we can review it
OutputFile pdfFile;
status = pdfFile.OpenFile("c:\\PDFLibTests\\DumpPDFFile.pdf");
if(status != PDFHummus::eSuccess)
break;
string pdfString = pdfStream.ToString();
pdfFile.GetOutputStream()->Write((const Byte*)pdfString.c_str(),pdfString.size());
pdfFile.CloseFile();
TRACE_LOG("PDF stream dumped");
// now finalize trace compressed file
flateEncodeStream.Assign(NULL);
compressedLogFile.CloseFile();
// Finish log
Singleton<Trace>::Reset();
// now open a new file and decompress the log into it.
OutputFile decryptedLogFile;
status = decryptedLogFile.OpenFile("c:\\PDFLibTests\\CustomLogDecrypted.txt");
if(status != PDFHummus::eSuccess)
break;
// place an initial bom (cause the compressed content is unicode)
unsigned short bom = (0xFE<<8) + 0xFF;
decryptedLogFile.GetOutputStream()->Write((const Byte*)&bom,2);
flateDecodeStream.Assign(decryptedLogFile.GetOutputStream());
OutputStreamTraits traits(&flateDecodeStream);
InputFile compressedLogFileInput;
status = compressedLogFileInput.OpenFile("c:\\PDFLibTests\\CustomLogEncrypted.txt");
if(status != PDFHummus::eSuccess)
break;
status = traits.CopyToOutputStream(compressedLogFileInput.GetInputStream());
if(status != PDFHummus::eSuccess)
break;
compressedLogFileInput.CloseFile();
flateDecodeStream.Assign(NULL);
decryptedLogFile.CloseFile();
}while(false);
if(status != PDFHummus::eSuccess)
{
// cancel ownership of subsstreams
flateDecodeStream.Assign(NULL);
flateEncodeStream.Assign(NULL);
}
//.........这里部分代码省略.........