<
classASNClassOld,
classASNClassNew >
35ncbi::CObjectOStreamAsnBinary outObject(asnIOstream);
36outObject << originalObject;
39ncbi::CObjectIStreamAsnBinary inObject(asnIOstream);
41inObject >> newObject;
43}
catch(exception& e) {
51 template<
classASNClass >
56unique_ptr<ASNClass> newObject;
60ncbi::CObjectOStreamAsnBinary outObject(asnIOstream);
61outObject << originalObject;
64ncbi::CObjectIStreamAsnBinary inObject(asnIOstream);
65newObject.reset(
newASNClass());
66inObject >> *newObject;
68}
catch(exception& e) {
72 returnnewObject.release();
80 template<
classASNClass >
90*err =
"Cannot open file for reading";
93unique_ptr<ncbi::CObjectIStream> inObject;
96inObject.reset(
newncbi::CObjectIStreamAsnBinary(inStream));
99inObject.reset(
newncbi::CObjectIStreamAsn(inStream));
103*inObject >> *ASNobject;
104}
catch(exception& e) {
113 template<
classASNClass >
119*err =
"Input stream is bad.";
122unique_ptr<ncbi::CObjectIStream> inObject;
125inObject.reset(
newncbi::CObjectIStreamAsnBinary(is));
128inObject.reset(
newncbi::CObjectIStreamAsn(is));
132*inObject >> *ASNobject;
133}
catch(exception& e) {
143 template<
classASNClass >
145 static bool WriteASNToFile(
const char*filename,
constASNClass& ASNobject,
boolisBinary,
154*err =
"Cannot open file for writing";
157unique_ptr<ncbi::CObjectOStream> outObject;
160outObject.reset(
newncbi::CObjectOStreamAsnBinary(outStream, fixNonPrint));
163outObject.reset(
newncbi::CObjectOStreamAsn(outStream, fixNonPrint));
167*outObject << ASNobject;
168}
catch(exception& e) {
177 template<
classASNClass >
184*err =
"Stream for writing is bad";
187unique_ptr<ncbi::CObjectOStream> outObject;
190outObject.reset(
newncbi::CObjectOStreamAsnBinary(os, fixNonPrint));
193outObject.reset(
newncbi::CObjectOStreamAsn(os, fixNonPrint));
197*outObject << ASNobject;
198}
catch(exception& e) {
205 template<
classASNContainerClass >
215 if(!inStream->InGoodState())
217inStream->SkipFileHeader(ASNContainerClass::GetTypeInfo());
224 template<
classASNContainerClass ,
classASNElementClass >
234inStream(filename, isBinary),
235containerIterator(inStream.GetInStream(),
CObjectTypeInfo(ASNContainerClass::GetTypeInfo()))
241 if(containerIterator.
HaveMore()) {
243containerIterator >> *element;
ASNInputContainerStream(const string &filename, bool isBinary)
CIStreamContainerIterator containerIterator
CObjectIStreamHelper< ASNContainerClass > inStream
bool ReadElement(ASNElementClass *element)
Reading (iterating through) elements of containers (SET OF, SEQUENCE OF).
unique_ptr< CObjectIStream > inStream
CObjectIStream & GetInStream(void)
CObjectIStreamHelper(const string &filename, bool isBinary)
static void TransformASNObject(ASNClassNew &newObject, const ASNClassOld &originalObject, std::string *err)
static bool ReadASNFromStream(ncbi::CNcbiIstream &is, ASNClass *ASNobject, bool isBinary, std::string *err)
static bool ReadASNFromFile(const char *filename, ASNClass *ASNobject, bool isBinary, std::string *err)
static ASNClass * CopyASNObject(const ASNClass &originalObject, std::string *err)
static bool WriteASNToFile(const char *filename, const ASNClass &ASNobject, bool isBinary, std::string *err, ncbi::EFixNonPrint fixNonPrint=ncbi::eFNP_Default)
static bool WriteASNToStream(ncbi::CNcbiOstream &os, const ASNClass &ASNobject, bool isBinary, std::string *err, ncbi::EFixNonPrint fixNonPrint=ncbi::eFNP_Default)
std::ofstream out("events_result.xml")
main entry point for tests
#define NCBI_USER_THROW(message)
Throw a quick-and-dirty runtime exception of type 'CException' with the given error message and error...
EFixNonPrint
How to process non-printing character in the ASN VisibleString.
@ eSerial_AsnText
ASN.1 text.
@ eSerial_AsnBinary
ASN.1 binary.
bool HaveMore(void) const
static CObjectIStream * Open(ESerialDataFormat format, CNcbiIstream &inStream, bool deleteInStream)
Create serial object reader and attach it to an input stream.
IO_PREFIX::ofstream CNcbiOfstream
Portable alias for ofstream.
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
CNcbistrstream_Base< IO_PREFIX::strstream, IOS_BASE::in|IOS_BASE::out > CNcbiStrstream
IO_PREFIX::istream CNcbiIstream
Portable alias for istream.
IO_PREFIX::ifstream CNcbiIfstream
Portable alias for ifstream.
#define NCBI_CDUTILS_EXPORT
Defines command line argument related classes.
NCBI C++ stream class wrappers for triggering between "new" and "old" C++ stream libraries.
std::istream & in(std::istream &in_, double &x_)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4