Provider.h status/Defs.h status/StatusCode.h stdio.h algorithm array BinaryStreamReaderImpl.cpp BinaryStreamReaderImpl.h JSONStreamReaderImpl.cpp JSONStreamReaderImpl.h Provider.cpp StreamStatus.h sc::StatusProvider sc //CopyrightEpicGames,Inc.AllRightsReserved. #pragmaonce #include"status/Defs.h" #include"status/StatusCode.h" #ifdef_MSC_VER #pragmawarning(push) #pragmawarning(disable:43654987) #endif #include<stdio.h> #include<algorithm> #include<array> #ifdef_MSC_VER #pragmawarning(pop) #endif namespacesc{ classSCAPIStatusProvider{ public: explicitStatusProvider(std::initializer_list<StatusCode>statuses); staticvoidreset(); staticStatusCodeget(); staticboolisOk(); staticvoidset(StatusCodestatus); template<typename...Args> staticvoidset(StatusCodestatus,Args&&...args){ std::array<char,512>buffer{}; #if!defined(__clang__)&&defined(__GNUC__) #pragmaGCCdiagnosticpush #pragmaGCCdiagnosticignored"-Wformat-security" #endif //Thereturnednumberofbytestobewrittendoesnotincludethenullterminator constautoneededSize=snprintf(nullptr,0ul,status.message,args...)+1; constautosize=std::min(buffer.size(),static_cast<std::size_t>(neededSize)); snprintf(buffer.data(),size,status.message,args...); #if!defined(__clang__)&&defined(__GNUC__) #pragmaGCCdiagnosticpop #endif status.message=buffer.data(); set(status); } }; }//namespacesc