static void mapping(IO &IO, pdb::yaml::PdbTpiFieldListRecord &Obj, pdb::yaml::SerializationContext &Context) { assert(IO.outputting()); codeview::TypeVisitorCallbackPipeline Pipeline; BinaryByteStream Data(Obj.Record.Data, llvm::support::little); BinaryStreamReader FieldReader(Data); codeview::FieldListDeserializer Deserializer(FieldReader); // For PDB to Yaml, deserialize into a high level record type, then dump // it. Pipeline.addCallbackToPipeline(Deserializer); Pipeline.addCallbackToPipeline(Context.Dumper); codeview::CVTypeVisitor Visitor(Pipeline); consumeError(Visitor.visitMemberRecord(Obj.Record)); }
static void MainLoop(void) { uint ip = 0; if(!DoLock()) return; removeFileIfExist(ParamsFile); removeFileIfExist(AnswerFile); mutexRelease(MutexHandle); SockStartup(); cout("START\n"); while(!collectEvents(StopAppEventHandle, 0)) { collectEvents(StartEventHandle, 3000); if(!DoLock()) break; if(existFile(ParamsFile)) { char *ansFile; if(Serializer) { char *wrkFile = makeTempFile(NULL); Serializer(ParamsFile, wrkFile); removeFile(ParamsFile); moveFile(wrkFile, ParamsFile); memFree(wrkFile); } removeFileIfExist(AnswerFile); // Cleanup mutexRelease(MutexHandle); cout("REQUEST START %I64u\n", getFileSize(ParamsFile)); ansFile = sockClient((uchar *)&ip, ServerDomain, ServerPort, ParamsFile, Idle); cout("REQUEST END %08x\n", ansFile); if(StopAppEventCaught || !DoLock()) { if(ansFile) { removeFile(ansFile); memFree(ansFile); } break; } removeFileIfExist(AnswerFile); // Cleanup (2bs) if(ansFile) { if(Deserializer) { Deserializer(ansFile, AnswerFile); removeFile(ansFile); } else moveFile(ansFile, AnswerFile); memFree(ansFile); cout("ANSWER %I64u\n", getFileSize(AnswerFile)); } removeFileIfExist(ParamsFile); // Cleanup eventSet(AnswerEventHandle); // リクエストの完了(応答)を通知 } mutexRelease(MutexHandle); } cout("END\n"); SockCleanup(); if(handleWaitForMillis(MutexHandle, 2000)) { // Cleanup removeFileIfExist(ParamsFile); removeFileIfExist(AnswerFile); mutexRelease(MutexHandle); } }
bool LoadFromFile(const char* filename, Animation* animation) { Serialize(Deserializer(filename), *animation, 0); return true; }