void CObjectOStream::SetFormattingFlags(TSerial_Format_Flags flags) { TSerial_Format_Flags accepted = fSerial_AsnText_NoIndentation | fSerial_AsnText_NoEol; if (flags & ~accepted) { ERR_POST_X_ONCE(13, Warning << "CObjectOStream::SetFormattingFlags: ignoring unknown formatting flags"); } SetUseIndentation((flags & fSerial_AsnText_NoIndentation) == 0); SetUseEol( (flags & fSerial_AsnText_NoEol) == 0); }
void CObjectOStream::SetVerifyDataGlobal(ESerialVerifyData verify) { ESerialVerifyData now = TSerialVerifyData::GetDefault(); if (now != eSerialVerifyData_Never && now != eSerialVerifyData_Always && now != eSerialVerifyData_DefValueAlways) { if (verify == eSerialVerifyData_Default) { TSerialVerifyData::ResetDefault(); } else { if (verify != now && (verify == eSerialVerifyData_No || verify == eSerialVerifyData_Never)) { ERR_POST_X_ONCE(3, Warning << "CObjectOStream::SetVerifyDataGlobal: data verification disabled"); } TSerialVerifyData::SetDefault(verify); } } }
void CObjectOStreamXml::SetFormattingFlags(TSerial_Format_Flags flags) { TSerial_Format_Flags accepted = fSerial_Xml_NoIndentation | fSerial_Xml_NoEol | fSerial_Xml_NoXmlDecl | fSerial_Xml_NoRefDTD | fSerial_Xml_RefSchema | fSerial_Xml_NoSchemaLoc; if (flags & ~accepted) { ERR_POST_X_ONCE(12, Warning << "CObjectOStreamXml::SetFormattingFlags: ignoring unknown formatting flags"); } m_UseXmlDecl = (flags & fSerial_Xml_NoXmlDecl) == 0; m_UseDTDRef = (flags & fSerial_Xml_NoRefDTD) == 0; m_UseSchemaRef = (flags & fSerial_Xml_RefSchema) != 0; m_UseSchemaLoc = (flags & fSerial_Xml_NoSchemaLoc) == 0; CObjectOStream::SetFormattingFlags( flags & (fSerial_Xml_NoIndentation | fSerial_Xml_NoEol)); }
void* CObjectMemoryPool::Allocate(size_t size) { if ( size > m_MallocThreshold ) { return 0; } for ( int i = 0; i < 2; ++i ) { if ( !m_CurrentChunk ) { m_CurrentChunk = CObjectMemoryPoolChunk::CreateChunk(m_ChunkSize); } void* ptr = m_CurrentChunk->Allocate(size); if ( ptr ) { return ptr; } m_CurrentChunk.Reset(); } ERR_POST_X_ONCE(14, "CObjectMemoryPool::Allocate("<<size<<"): " "double fault in chunk allocator"); return 0; }
static string s_HTMLEncode(const string& str, const string& set, CHTMLHelper::THTMLEncodeFlags flags) { CNcbiOstrstream out; SIZE_TYPE last = 0; SIZE_TYPE semicolon = 0; // Find first symbol to encode. SIZE_TYPE ptr = str.find_first_of(set, last); while ( ptr != NPOS ) { // Copy plain part of the input string if ( ptr != last ) { out.write(str.data() + last, ptr - last); } // Append encoded symbol switch (str[ptr]) { case '"': out << """; break; case '&': {{ out.put('&'); bool is_entity = false; // Check on HTML entity if ((flags & CHTMLHelper::fSkipEntities) && (ptr+2 < str.length()) && (semicolon != NPOS)) { if ( ptr >= semicolon ) semicolon = str.find(";", ptr+1); if ( semicolon != NPOS ) { SIZE_TYPE len = semicolon - ptr; SIZE_TYPE p = ptr + 1; if (str[ptr+1] == '#') { // Check on numeric character reference encoding if (flags & CHTMLHelper::fSkipNumericEntities) { p++; if (len || len <= 4) { for (; p < semicolon; ++p) { if (!isdigit((unsigned char)(str[p]))) break; } } } } else { // Check on literal entity if (flags & CHTMLHelper::fSkipLiteralEntities) { if (len && len <= 10) { for (; p < semicolon; ++p) { if (!isalpha((unsigned char)(str[p]))) break; } } } } is_entity = (p == semicolon); } } if ( is_entity ) { if (flags & CHTMLHelper::fCheckPreencoded) { ERR_POST_X_ONCE(2, Info << "string \"" << str << "\" contains HTML encoded entities"); } } else { out << "amp;"; } }} break; case '<': out << "<"; break; case '>': out << ">"; break; } // Find next symbol to encode last = ptr + 1; ptr = str.find_first_of(set, last); } // Append last part of the source string if ( last != str.size() ) { out.write(str.data() + last, str.size() - last); } return CNcbiOstrstreamToString(out); }