Foam::Ostream& Foam::ensightFile::write(const string& value) { char buf[80]; for (string::size_type i = 0; i < 80; ++i) { buf[i] = 0; } string::size_type n = value.size(); if (n >= 80) { n = 79; } for (string::size_type i = 0; i < n; ++i) { buf[i] = value[i]; } if (format() == IOstream::BINARY) { write ( reinterpret_cast<char const *>(buf), sizeof(buf) ); } else { stdStream() << buf; } return *this; }
void Foam::ensightFile::newline() { if (format() == IOstream::ASCII) { stdStream() << nl; } }
label pos() { #ifdef FOAM_ISTREAM_HAS_NO_STDSTREAM return label(stream().tellg()); #else return label(stdStream().tellg()); #endif }
Foam::Ostream& Foam::ensightFile::write ( const char* buf, std::streamsize count ) { stdStream().write(buf, count); return *this; }
Foam::Ostream& Foam::ensightFile::write(const scalar value) { float fvalue(value); if (format() == IOstream::BINARY) { write ( reinterpret_cast<char const *>(&fvalue), sizeof(fvalue) ); } else { stdStream().width(12); stdStream() << fvalue; } return *this; }
Foam::Ostream& Foam::ensightFile::write(const label value) { if (format() == IOstream::BINARY) { unsigned int ivalue(value); write ( reinterpret_cast<char const *>(&ivalue), sizeof(ivalue) ); } else { stdStream().width(10); stdStream() << value; } return *this; }
void WalletLegacySerializer::deserialize(std::istream& stream, const std::string& password, std::string& cache) { StdInputStream stdStream(stream); CryptoNote::BinaryInputStreamSerializer serializerEncrypted(stdStream); serializerEncrypted.beginObject("wallet"); uint32_t version; serializerEncrypted(version, "version"); Crypto::chacha_iv iv; serializerEncrypted(iv, "iv"); std::string cipher; serializerEncrypted(cipher, "data"); serializerEncrypted.endObject(); std::string plain; decrypt(cipher, plain, iv, password); MemoryInputStream decryptedStream(plain.data(), plain.size()); CryptoNote::BinaryInputStreamSerializer serializer(decryptedStream); loadKeys(serializer); throwIfKeysMissmatch(account.getAccountKeys().viewSecretKey, account.getAccountKeys().address.viewPublicKey); if (account.getAccountKeys().spendSecretKey != NULL_SECRET_KEY) { throwIfKeysMissmatch(account.getAccountKeys().spendSecretKey, account.getAccountKeys().address.spendPublicKey); } else { if (!Crypto::check_key(account.getAccountKeys().address.spendPublicKey)) { throw std::system_error(make_error_code(CryptoNote::error::WRONG_PASSWORD)); } } bool detailsSaved; serializer(detailsSaved, "has_details"); if (detailsSaved) { if (version == 1) { transactionsCache.deserializeLegacyV1(serializer); } else { serializer(transactionsCache, "details"); } } serializer.binary(cache, "cache"); }