EStatusCode PDFWriter::SetupState(const string& inStateFilePath) { EStatusCode status; do { StateReader reader; status = reader.Start(inStateFilePath); if(status != PDFHummus::eSuccess) { TRACE_LOG("PDFWriter::SetupState, cant start state readering"); break; } PDFObjectCastPtr<PDFDictionary> pdfWriterDictionary(reader.GetObjectsReader()->ParseNewObject(reader.GetRootObjectID())); PDFObjectCastPtr<PDFIndirectObjectReference> objectsContextObject(pdfWriterDictionary->QueryDirectObject("mObjectsContext")); status = mObjectsContext.ReadState(reader.GetObjectsReader(),objectsContextObject->mObjectID); if(status!= PDFHummus::eSuccess) break; PDFObjectCastPtr<PDFIndirectObjectReference> DocumentContextObject(pdfWriterDictionary->QueryDirectObject("mDocumentContext")); status = mDocumentContext.ReadState(reader.GetObjectsReader(),DocumentContextObject->mObjectID); if(status!= PDFHummus::eSuccess) break; reader.Finish(); }while(false); return status; }
EStatusCode PDFWriter::SetupState(const std::string& inStateFilePath) { EStatusCode status; do { StateReader reader; status = reader.Start(inStateFilePath); if(status != eSuccess) { TRACE_LOG("PDFWriter::SetupState, cant start state readering"); break; } PDFObjectCastPtr<PDFDictionary> pdfWriterDictionary(reader.GetObjectsReader()->ParseNewObject(reader.GetRootObjectID())); PDFObjectCastPtr<PDFBoolean> isModifiedObject(pdfWriterDictionary->QueryDirectObject("mIsModified")); mIsModified = isModifiedObject->GetValue(); if(mIsModified) { PDFObjectCastPtr<PDFInteger> isModifiedFileVersionObject(pdfWriterDictionary->QueryDirectObject("mModifiedFileVersion")); mModifiedFileVersion = (EPDFVersion)(isModifiedFileVersionObject->GetValue()); } PDFObjectCastPtr<PDFIndirectObjectReference> objectsContextObject(pdfWriterDictionary->QueryDirectObject("mObjectsContext")); status = mObjectsContext.ReadState(reader.GetObjectsReader(),objectsContextObject->mObjectID); if(status!= eSuccess) break; PDFObjectCastPtr<PDFIndirectObjectReference> documentContextObject(pdfWriterDictionary->QueryDirectObject("mDocumentContext")); status = mDocumentContext.ReadState(reader.GetObjectsReader(),documentContextObject->mObjectID); if(status!= eSuccess) break; reader.Finish(); }while(false); return status; }