MCPcopy Create free account
hub / github.com/Pagghiu/SaneCppLibraries / build

Method build

Libraries/File/File.cpp:1137–1162  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1135} // namespace
1136
1137SC::Result SC::NamedPipeName::build(StringSpan logicalName, StringPath& outName, NamedPipeNameOptions options)
1138{
1139 SC_TRY(validateNamedPipeLogicalName(logicalName));
1140
1141 StringPath nativeName;
1142#if SC_PLATFORM_WINDOWS
1143 (void)options;
1144 SC_TRY_MSG(nativeName.assign("\\\\.\\pipe\\"), "NamedPipeName::build failed to initialize windows prefix");
1145 SC_TRY_MSG(nativeName.append(logicalName), "NamedPipeName::build failed to append logicalName");
1146#else
1147 SC_TRY_MSG(options.posixDirectory.getEncoding() != StringEncoding::Utf16,
1148 "NamedPipeName::build posixDirectory only ASCII/UTF8");
1149 SC_TRY_MSG(not options.posixDirectory.isEmpty(), "NamedPipeName::build posixDirectory cannot be empty");
1150 const char* posixDirectoryBytes = options.posixDirectory.bytesWithoutTerminator();
1151 SC_TRY_MSG(posixDirectoryBytes[0] == '/', "NamedPipeName::build posixDirectory must be absolute");
1152
1153 SC_TRY_MSG(nativeName.assign(options.posixDirectory), "NamedPipeName::build failed to copy posixDirectory");
1154 if (posixDirectoryBytes[options.posixDirectory.sizeInBytes() - 1] != '/')
1155 {
1156 SC_TRY_MSG(nativeName.append("/"), "NamedPipeName::build failed to append separator");
1157 }
1158 SC_TRY_MSG(nativeName.append(logicalName), "NamedPipeName::build failed to append logicalName");
1159#endif
1160 outName = move(nativeName);
1161 return Result(true);
1162}
1163
1164//-------------------------------------------------------------------------------------------------------
1165// NamedPipe

Callers

nothing calls this directly

Calls 6

ResultClass · 0.50
assignMethod · 0.45
appendMethod · 0.45
isEmptyMethod · 0.45
sizeInBytesMethod · 0.45

Tested by

no test coverage detected