MCPcopy Create free account
hub / github.com/catboost/catboost / DecodeOpenMode

Function DecodeOpenMode

util/system/file.cpp:836–1400  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

834}
835
836TString DecodeOpenMode(ui32 mode0) {
837 ui32 mode = mode0;
838
839 TStringBuilder r;
840
841 struct TFlagCombo {
842 ui32 Value;
843 TStringBuf Name;
844 };
845
846 static constexpr TFlagCombo knownFlagCombos[]{
847
848#define F(flag) {flag, #flag}
849
850 F(RdWr),
851 F(RdOnly),
852 F(WrOnly),
853
854 F(CreateAlways),
855 F(CreateNew),
856 F(OpenAlways),
857 F(TruncExisting),
858 F(ForAppend),
859 F(Transient),
860 F(CloseOnExec),
861
862 F(Temp),
863 F(Sync),
864 F(Direct),
865 F(DirectAligned),
866 F(Seq),
867 F(NoReuse),
868 F(NoReadAhead),
869
870 F(AX),
871 F(AR),
872 F(AW),
873 F(ARW),
874
875 F(AXOther),
876 F(AWOther),
877 F(AROther),
878 F(AXGroup),
879 F(AWGroup),
880 F(ARGroup),
881 F(AXUser),
882 F(AWUser),
883 F(ARUser),
884
885#undef F
886
887 };
888
889 for (const auto& [flag, name] : knownFlagCombos) {
890 if ((mode & flag) == flag) {
891 mode &= ~flag;
892 if (r) {
893 r << '|';

Callers 2

TImplMethod · 0.85
Y_UNIT_TESTFunction · 0.85

Calls 4

FFunction · 0.85
HexFunction · 0.50
moveFunction · 0.50
GetNameMethod · 0.45

Tested by

no test coverage detected