Open Babel  3.0
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
XMLConversion Class Reference

#include <openbabel/xml.h>

Inheritance diagram for XMLConversion:
OBConversion

Public Types

typedef std::map< std::string, XMLBaseFormat * > NsMapType
 

Public Member Functions

 XMLConversion (OBConversion *pConv)
 
 ~XMLConversion ()
 
bool SetupReader ()
 
bool SetupWriter ()
 
bool ReadXML (XMLBaseFormat *pFormat, OBBase *pOb)
 
int SkipXML (const char *ctag)
 
bool IsLast ()
 
int GetOutputIndex ()
 
xmlTextReaderPtr GetReader () const
 
xmlTextWriterPtr GetWriter () const
 
void OutputToStream ()
 
void LookForNamespace ()
 
std::string GetAttribute (const char *attrname)
 
std::string GetContent ()
 
bool GetContentInt (int &value)
 
bool GetContentDouble (double &value)
 
void CopyOptions (OBConversion *pSourceConv, Option_type typ=ALL)
 
Parameter get and set

These return a filtered stream for reading/writing (possible filters include compression, decompression, and newline transformation)

std::istream * GetInStream () const
 
std::ostream * GetOutStream () const
 
void SetInStream (std::istream *pIn, bool takeOwnership=false)
 
void SetOutStream (std::ostream *pOut, bool takeOwnership=false)
 
bool SetInAndOutFormats (const char *inID, const char *outID, bool ingzip=false, bool outgzip=false)
 
bool SetInAndOutFormats (OBFormat *pIn, OBFormat *pOut, bool ingzip=false, bool outgzip=false)
 
bool SetInFormat (const char *inID, bool isgzip=false)
 
bool SetInFormat (OBFormat *pIn, bool isgzip=false)
 
bool SetOutFormat (const char *outID, bool isgzip=false)
 
bool SetOutFormat (OBFormat *pOut, bool isgzip=false)
 
OBFormatGetInFormat () const
 
OBFormatGetOutFormat () const
 
bool GetInGzipped () const
 
bool GetOutGzipped () const
 
std::string GetInFilename () const
 
std::string GetOutFilename () const
 
std::streampos GetInPos () const
 
size_t GetInLen () const
 
const char * GetTitle () const
 
OBConversionGetAuxConv () const
 
void SetAuxConv (OBConversion *pConv)
 
Supported file format
std::vector< std::string > GetSupportedInputFormat ()
 
std::vector< std::string > GetSupportedOutputFormat ()
 
Conversion
int Convert (std::istream *is, std::ostream *os)
 
int Convert ()
 
int FullConvert (std::vector< std::string > &FileList, std::string &OutputFileName, std::vector< std::string > &OutputFileList)
 
Conversion loop control
int AddChemObject (OBBase *pOb)
 
OBBaseGetChemObject ()
 
bool IsFirstInput ()
 
void SetFirstInput (bool b=true)
 
int GetOutputIndex () const
 
void SetOutputIndex (int indx)
 
void SetMoreFilesToCome ()
 
void SetOneObjectOnly (bool b=true)
 
void SetLast (bool b)
 
bool IsLastFile ()
 
int GetCount () const
 

Static Public Member Functions

static NsMapTypeNamespaces ()
 
static void RegisterXMLFormat (XMLBaseFormat *pFormat, bool IsDefault=false, const char *uri=NULL)
 
static XMLConversionGetDerived (OBConversion *pConv, bool ForReading=true)
 
static XMLBaseFormatGetDefaultXMLClass ()
 
static int ReadStream (void *context, char *buffer, int len)
 
static int WriteStream (void *context, const char *buffer, int len)
 
Collection of formats
static int RegisterFormat (const char *ID, OBFormat *pFormat, const char *MIME=NULL)
 
static OBFormatFindFormat (const char *ID)
 
static OBFormatFindFormat (const std::string ID)
 
static OBFormatFormatFromExt (const char *filename)
 
static OBFormatFormatFromExt (const char *filename, bool &isgzip)
 
static OBFormatFormatFromExt (const std::string filename)
 
static OBFormatFormatFromExt (const std::string filename, bool &isgzip)
 
static OBFormatFormatFromMIME (const char *MIME)
 
static bool GetNextFormat (Formatpos &itr, const char *&str, OBFormat *&pFormat)
 
Information
static const char * Description ()
 

Public Attributes

bool _SkipNextRead
 

Protected Types

typedef std::map< std::string, int > OPAMapType
 
typedef FilteringInputStream< LineEndingExtractorLEInStream
 

Protected Member Functions

bool SetStartAndEnd ()
 
bool OpenAndSetFormat (bool SetFormat, std::ifstream *is, std::stringstream *ss=NULL)
 

Static Protected Member Functions

static OPAMapTypeOptionParamArray (Option_type typ)
 

Protected Attributes

std::string InFilename
 
std::string OutFilename
 
std::istream * pInput
 
std::vector< std::istream * > ownedInStreams
 
std::ostream * pOutput
 
std::vector< std::ostream * > ownedOutStreams
 
OBFormatpInFormat
 
OBFormatpOutFormat
 
std::map< std::string, std::string > OptionsArray [3]
 
int Index
 
unsigned int StartNumber
 
unsigned int EndNumber
 
int Count
 
bool m_IsFirstInput
 
bool m_IsLast
 
bool MoreFilesToCome
 
bool OneObjectOnly
 
bool ReadyToInput
 
bool SkippedMolecules
 
bool inFormatGzip
 
bool outFormatGzip
 
OBBasepOb1
 
std::streampos wInpos
 
std::streampos rInpos
 
size_t wInlen
 
size_t rInlen
 
OBConversionpAuxConv
 
std::vector< std::string > SupportedInputFormat
 
std::vector< std::string > SupportedOutputFormat
 

Static Protected Attributes

static OBFormatpDefaultFormat
 

Option handling

Three types of Option provide information and control instructions to the conversion process, INOPTIONS, OUTOPTIONS, GENOPTIONS, and are stored in each OBConversion object in separate maps. Each option has an id and an optional text string. They are set individually by AddOption() or (rarely) collectively in SetOptions(). Options cannot be altered but can be replaced with AddOption() and deleted with RemoveOption(), which, however, should be used in an op derived from OBOp (because of iterator invalidation).

If the "Convert" interface is used, the GENOPTIONS are acted upon in the OBBase::DoTransformations() functions (currently only OBMol has one). This happens after the object has been input but before it has been output. All the options are available to input and output formats, etc. via the IsOption() function, and the interpretation of any text string needs to be done subsequently.

In the commandline interface, options with single character ids are are indicated like -s, and those with multiple character ids like –gen3D. An option may have one or more parameters which appear, space separated, in the option's text string. With babel, unless the option is at the end of the command, it is necessary for the number of its parameters to be exactly that specified in RegisterOptionParam(). The default is 0, but if it is more, and babel is likely to be used, this function should be called in the constructor of a format or op. With obabel (or the GUI), it is not necessary to call RegisterOptionParam().

New GENOPTIONS can be defined (as plugins) using the class OBOp.

It is customary for a format or op to document any INOPTIONS or OUTPTIONS it uses in its Description() function. As well as providing documentation during use, this is also parsed by the GUI to construct its checkboxes,etc., so it is advisable to give new Descriptions the same form as existing ones.

Some conversion options, such as -f, -l, -m, are unlikely to be used in programming, but are listed in OBConversion::Description(). The built-in GENOPTIONS for OBMol objects are listed in OBMol::ClassDescription() which is in transform.cpp and also in this documentation under AddOption().

enum  Option_type { INOPTIONS, OUTOPTIONS, GENOPTIONS, ALL }
 
const char * IsOption (const char *opt, Option_type opttyp=OUTOPTIONS)
 
const std::map< std::string, std::string > * GetOptions (Option_type opttyp)
 
void AddOption (const char *opt, Option_type opttyp=OUTOPTIONS, const char *txt=NULL)
 
bool RemoveOption (const char *opt, Option_type optype)
 
void SetOptions (const char *options, Option_type opttyp)
 
static void RegisterOptionParam (std::string name, OBFormat *pFormat, int numberParams=0, Option_type typ=OUTOPTIONS)
 
static int GetOptionParams (std::string name, Option_type typ)
 

Convenience functions

bool Write (OBBase *pOb, std::ostream *pout=NULL)
 
std::string WriteString (OBBase *pOb, bool trimWhitespace=false)
 
bool WriteFile (OBBase *pOb, std::string filePath)
 
void CloseOutFile ()
 
bool Read (OBBase *pOb, std::istream *pin=NULL)
 
bool ReadString (OBBase *pOb, std::string input)
 
bool ReadFile (OBBase *pOb, std::string filePath)
 
bool OpenInAndOutFiles (std::string infilepath, std::string outfilepath)
 
void ReportNumberConverted (int count, OBFormat *pFormat=NULL)
 
int NumInputObjects ()
 
static OBFormatGetDefaultFormat ()
 
static std::string BatchFileName (std::string &BaseName, std::string &InFile)
 
static std::string IncrementedFileName (std::string &BaseName, const int Count)
 
static bool CheckForUnintendedBatch (const std::string &infile, const std::string &outfile)
 
void ClearInStreams ()
 

Detailed Description

A subclass for conversion of XML formats.

An extended OBConversion class which includes a libxml2 reader for use with XML formats. Copies an OBConversion and then extends it with a XML parser. Instances made on the heap are deleted when the original OBConversion object is.

This class is not intended to be used externally – instead use OBConversion which will find both XML and non-XML OBFormats.

Instead, this subclass also has support for handling specific needs in XML formats. For example, an XML file may include multiple namespaces, and the conversion should call appropriate XMLBaseFormat formats as needed.

Member Typedef Documentation

◆ NsMapType

typedef std::map<std::string, XMLBaseFormat*> NsMapType

◆ OPAMapType

typedef std::map<std::string,int> OPAMapType
protectedinherited

◆ LEInStream

typedef FilteringInputStream< LineEndingExtractor > LEInStream
protectedinherited

Member Enumeration Documentation

◆ Option_type

enum Option_type
inherited

Three types of options set on the the command line by -a? , -x? , or -?

Enumerator
INOPTIONS 
OUTOPTIONS 
GENOPTIONS 
ALL 

Constructor & Destructor Documentation

◆ XMLConversion()

Existing OBConversion instance copied.

◆ ~XMLConversion()

Frees reader and writer if necessary.

Member Function Documentation

◆ SetupReader()

bool SetupReader ( )

opens libxml2 reader

◆ SetupWriter()

bool SetupWriter ( )

opens libxml2 writer

◆ ReadXML()

bool ReadXML ( XMLBaseFormat pFormat,
OBBase pOb 
)

Parses the input xml stream and sends each element to the format's callback routines.

◆ SkipXML()

int SkipXML ( const char *  ctag)

Read and discard XML text up to the next occurrence of the tag e.g."/molecule>" This is left as the current node. Returns 1 on success, 0 if not found, -1 if failed.

Referenced by XMLBaseFormat::SkipObjects().

◆ Namespaces()

static NsMapType& Namespaces ( )
inlinestatic

This static function returns a reference to the map Avoids "static initialization order fiasco"

◆ RegisterXMLFormat()

static void RegisterXMLFormat ( XMLBaseFormat pFormat,
bool  IsDefault = false,
const char *  uri = NULL 
)
static

◆ GetDerived()

static XMLConversion* GetDerived ( OBConversion pConv,
bool  ForReading = true 
)
static

Returns the extended OBConversion class, making it if necessary.

Referenced by XMLConversion::Namespaces(), XMLMoleculeFormat::ReadMolecule(), and XMLBaseFormat::SkipObjects().

◆ IsLast()

bool IsLast ( )
inline

Because OBConversion::Convert is still using the unextended OBConversion object we need to obtain the conversion paramters from it when requested

◆ GetOutputIndex() [1/2]

int GetOutputIndex ( )
inline

◆ GetReader()

xmlTextReaderPtr GetReader ( ) const
inline

Referenced by XMLBaseFormat::reader().

◆ GetWriter()

xmlTextWriterPtr GetWriter ( ) const
inline

Referenced by XMLBaseFormat::writer().

◆ OutputToStream()

void OutputToStream ( )
inline

◆ GetDefaultXMLClass()

static XMLBaseFormat* GetDefaultXMLClass ( )
inlinestatic

◆ LookForNamespace()

void LookForNamespace ( )
inline

◆ ReadStream()

static int ReadStream ( void *  context,
char *  buffer,
int  len 
)
static

Static callback functions for xmlReaderForIO()

Referenced by XMLConversion::LookForNamespace().

◆ WriteStream()

static int WriteStream ( void *  context,
const char *  buffer,
int  len 
)
static

◆ GetAttribute()

std::string GetAttribute ( const char *  attrname)

◆ GetContent()

std::string GetContent ( )

Sets value to element content. Returns false if there is no content.

Referenced by XMLConversion::LookForNamespace().

◆ GetContentInt()

bool GetContentInt ( int &  value)

Sets value to element content as an integer. Returns false if there is no content.

Referenced by XMLConversion::LookForNamespace().

◆ GetContentDouble()

bool GetContentDouble ( double &  value)

Sets value to element content as an double. Returns false if there is no content.

Referenced by XMLConversion::LookForNamespace().

◆ RegisterFormat()

int RegisterFormat ( const char *  ID,
OBFormat pFormat,
const char *  MIME = NULL 
)
staticinherited

Called once by each format class.

Class information on formats is collected by making an instance of the class derived from OBFormat(only one is usually required). RegisterFormat() is called from its constructor.

If the compiled format is stored separately, like in a DLL or shared library, the initialization code makes an instance of the imported OBFormat class.

◆ FindFormat() [1/2]

OBFormat * FindFormat ( const char *  ID)
staticinherited

◆ FindFormat() [2/2]

OBFormat * FindFormat ( const std::string  ID)
staticinherited

Searches registered formats.

Since
version 2.3

◆ FormatFromExt() [1/4]

OBFormat * FormatFromExt ( const char *  filename)
staticinherited

◆ FormatFromExt() [2/4]

OBFormat * FormatFromExt ( const char *  filename,
bool &  isgzip 
)
staticinherited

◆ FormatFromExt() [3/4]

OBFormat * FormatFromExt ( const std::string  filename)
staticinherited

Searches registered formats for an ID the same as the file extension.

Since
version 2.3

◆ FormatFromExt() [4/4]

OBFormat * FormatFromExt ( const std::string  filename,
bool &  isgzip 
)
staticinherited

◆ FormatFromMIME()

OBFormat * FormatFromMIME ( const char *  MIME)
staticinherited

Searches registered formats for a MIME the same as the chemical MIME type passed.

◆ GetNextFormat()

bool GetNextFormat ( Formatpos itr,
const char *&  str,
OBFormat *&  pFormat 
)
staticinherited

Deprecated!.Repeatedly called to recover available Formats.

◆ Description()

const char * Description ( )
staticinherited

◆ GetInStream()

std::istream* GetInStream ( ) const
inlineinherited

◆ GetOutStream()

std::ostream* GetOutStream ( ) const
inlineinherited

◆ SetInStream()

void SetInStream ( std::istream *  pIn,
bool  takeOwnership = false 
)
inherited

Set input stream. If takeOwnership is true, will deallocate when done. If isGzipped is true, will treat as a gzipped stream regardless of option settings,.

Set input stream, removing/deallocating previous stream if necessary. If takeOwnership is true, takes responsibility for freeing pIn

Referenced by OBConversion::Convert(), OBConversion::FullConvert(), OBConversion::OBConversion(), OBConversion::OpenInAndOutFiles(), OBConversion::operator=(), OBConversion::StreamState::popInput(), OBConversion::Read(), OBConversion::ReadFile(), OBConversion::ReadString(), and OBConversion::~OBConversion().

◆ SetOutStream()

void SetOutStream ( std::ostream *  pOut,
bool  takeOwnership = false 
)
inherited

Set output stream, removing/deallocating previous stream if necessary. If takeOwnership is true, takes responsibility for freeing pOut Be aware that if the output stream is gzipped format, then this outstream either needs to be replaced (e.g., SetOutStream(NULL)) or the OBConversion destroyed before the underlying outputstream is deallocated.

Referenced by OBConversion::CloseOutFile(), OBConversion::Convert(), OBConversion::FullConvert(), OBConversion::OBConversion(), OBConversion::OpenInAndOutFiles(), OBConversion::operator=(), OBConversion::StreamState::popOutput(), OBConversion::Write(), OBConversion::WriteFile(), OBConversion::WriteString(), and OBConversion::~OBConversion().

◆ SetInAndOutFormats() [1/2]

bool SetInAndOutFormats ( const char *  inID,
const char *  outID,
bool  inzip = false,
bool  outzip = false 
)
inherited

Sets the formats from their ids, e g CML.

Sets the formats from their ids, e g CML. If inID is NULL, the input format is left unchanged. Similarly for outID Returns true if both formats have been successfully set at sometime

Referenced by AliasData::Expand().

◆ SetInAndOutFormats() [2/2]

bool SetInAndOutFormats ( OBFormat pIn,
OBFormat pOut,
bool  ingzip = false,
bool  outgzip = false 
)
inherited

◆ SetInFormat() [1/2]

bool SetInFormat ( const char *  inID,
bool  isgzip = false 
)
inherited

◆ SetInFormat() [2/2]

bool SetInFormat ( OBFormat pIn,
bool  isgzip = false 
)
inherited

◆ SetOutFormat() [1/2]

bool SetOutFormat ( const char *  outID,
bool  isgzip = false 
)
inherited

Sets the output format from an id e.g. CML.

Examples:
obconformersearch_default.cpp.

Referenced by OBBuilder::Build(), and OBConversion::SetInAndOutFormats().

◆ SetOutFormat() [2/2]

bool SetOutFormat ( OBFormat pOut,
bool  isgzip = false 
)
inherited

◆ GetInFormat()

OBFormat* GetInFormat ( ) const
inlineinherited

◆ GetOutFormat()

OBFormat* GetOutFormat ( ) const
inlineinherited

◆ GetInGzipped()

bool GetInGzipped ( ) const
inlineinherited

◆ GetOutGzipped()

bool GetOutGzipped ( ) const
inlineinherited

◆ GetInFilename()

std::string GetInFilename ( ) const
inlineinherited

◆ GetOutFilename()

std::string GetOutFilename ( ) const
inlineinherited

◆ GetInPos()

std::streampos GetInPos ( ) const
inlineinherited

Get the position in the input stream of the object being read.

◆ GetInLen()

size_t GetInLen ( ) const
inlineinherited

Get the length in the input stream of the object being read.

◆ GetTitle()

const char * GetTitle ( ) const
inherited
Returns
a default title which is the filename

◆ GetAuxConv()

OBConversion* GetAuxConv ( ) const
inlineinherited

Extension method: deleted in ~OBConversion()

◆ SetAuxConv()

void SetAuxConv ( OBConversion pConv)
inlineinherited

◆ IsOption()

const char * IsOption ( const char *  opt,
Option_type  opttyp = OUTOPTIONS 
)
inherited

◆ GetOptions()

const std::map<std::string,std::string>* GetOptions ( Option_type  opttyp)
inlineinherited

Access the map with option name as key and any associated text as value.

Referenced by OBMoleculeFormat::DeleteDeferredMols(), OBMoleculeFormat::OutputDeferredMols(), and OBMoleculeFormat::ReadChemObjectImpl().

◆ AddOption()

void AddOption ( const char *  opt,
Option_type  opttyp = OUTOPTIONS,
const char *  txt = NULL 
)
inherited

Set an option of specified type, with optional text.

Referenced by OBMoleculeFormat::DeferMolOutput(), and AliasData::Expand().

◆ RemoveOption()

bool RemoveOption ( const char *  opt,
Option_type  optype 
)
inherited

◆ SetOptions()

void SetOptions ( const char *  options,
Option_type  opttyp 
)
inherited

Set several single character options of specified type from string like ab"btext"c"ctext".

◆ RegisterOptionParam()

void RegisterOptionParam ( std::string  name,
OBFormat pFormat,
int  numberParams = 0,
Option_type  typ = OUTOPTIONS 
)
staticinherited

For example -h takes 0 parameters; -f takes 1. Call in a format constructor.

Referenced by OBConversion::OBConversion(), and OBMoleculeFormat::OBMoleculeFormat().

◆ GetOptionParams()

int GetOptionParams ( std::string  name,
Option_type  typ 
)
staticinherited
Returns
the number of parameters registered for the option, or 0 if not found

◆ CopyOptions()

void CopyOptions ( OBConversion pSourceConv,
Option_type  typ = ALL 
)
inherited

Copies the options (by default of all types) from one OBConversion Object to another.

◆ GetSupportedInputFormat()

std::vector< std::string > GetSupportedInputFormat ( )
inherited

Returns the list of supported input format

◆ GetSupportedOutputFormat()

std::vector< std::string > GetSupportedOutputFormat ( )
inherited

Returns the list of supported output format

◆ Convert() [1/2]

int Convert ( std::istream *  is,
std::ostream *  os 
)
inherited

Conversion for single input and output stream.

Convert molecules from is into os. If either is null, uses existing streams. If streams are specified, they do not replace any existing streams.

Referenced by AliasData::Expand().

◆ Convert() [2/2]

int Convert ( )
inherited

Conversion with existing streams.

Actions the "convert" interface. Calls the OBFormat class's ReadMolecule() which

  • makes a new chemical object of its chosen type (e.g. OBMol)
  • reads an object from the input file
  • subjects the chemical object to 'transformations' as specified by the Options
  • calls AddChemObject to add it to a buffer. The previous object is first output via the output Format's WriteMolecule(). During the output process calling IsFirst() and GetIndex() (the number of objects including the current one already output. allows more control, for instance writing <cml> and </cml> tags for multiple molecule outputs only.

AddChemObject does not save the object passed to it if it is NULL (as a result of a DoTransformation()) or if the number of the object is outside the range defined by StartNumber and EndNumber.This means the start and end counts apply to all chemical objects found whether or not they are output.

If ReadMolecule returns false the input conversion loop is exited.

Referenced by OBConversion::Convert(), and OBConversion::FullConvert().

◆ FullConvert()

int FullConvert ( std::vector< std::string > &  FileList,
std::string &  OutputFileName,
std::vector< std::string > &  OutputFileList 
)
inherited

Conversion with multiple input/output files: makes input and output streams, and carries out normal, batch, aggregation, and splitting conversion.

Makes input and output streams, and carries out normal, batch, aggregation, and splitting conversion.

Normal Done if FileList contains a single file name and OutputFileName does not contain a *.

Aggregation Done if FileList has more than one file name and OutputFileName does not contain * . All the chemical objects are converted and sent to the single output file.

Splitting Done if FileList contains a single file name and OutputFileName contains a * . Each chemical object in the input file is converted and sent to a separate file whose name is OutputFileName with the replaced by 1, 2, 3, etc. OutputFileName must have at least one character other than the * before the extension. For example, if OutputFileName is NEW*.smi then the output files are NEW1.smi, NEW2.smi, etc.

Batch Conversion Done if FileList has more than one file name and contains a * . Each input file is converted to an output file whose name is OutputFileName with the * replaced by the inputfile name without its path and extension. So if the input files were inpath/First.cml, inpath/Second.cml and OutputFileName was NEW*.mol, the output files would be NEWFirst.mol, NEWSecond.mol.

If FileList is empty, the input stream that has already been set (usually in the constructor) is used. If OutputFileName is empty, the output stream already set is used.

On exit, OutputFileList contains the names of the output files.

Returns the number of Chemical objects converted.

◆ AddChemObject()

int AddChemObject ( OBBase pOb)
inherited

Adds to internal array during input.

Called by ReadMolecule() to deliver an object it has read from an input stream. Used in two modes:

  • When Count is negative it is left negative and the routine is just a store for an OBBase object. The negative value returned tells the calling routine that no more objects are required.
  • When count is >=0, probably set by Convert(), it acts as a queue of 2: writing the currently stored value before accepting the supplied one. This delay allows output routines to respond differently when the written object is the last. Count is incremented with each call, even if pOb=NULL. Objects are not added to the queue if the count is outside the range StartNumber to EndNumber. There is no upper limit if EndNumber is zero. The return value is Count ((>0) or 0 if WriteChemObject returned false.

Referenced by OBMoleculeFormat::ReadChemObjectImpl().

◆ GetChemObject()

OBBase * GetChemObject ( )
inherited

Retrieve from internal array during output.

Retrieves an object stored by AddChemObject() during output.

Referenced by OBMoleculeFormat::WriteChemObjectImpl().

◆ IsFirstInput()

bool IsFirstInput ( )
inherited

True if the first input object is being processed.

Referenced by OBMoleculeFormat::DeferMolOutput(), and OBMoleculeFormat::ReadChemObjectImpl().

◆ SetFirstInput()

void SetFirstInput ( bool  b = true)
inherited

Setwhether or not is the first input.

Referenced by OBConversion::Convert(), and OBConversion::FullConvert().

◆ GetOutputIndex() [2/2]

int GetOutputIndex ( ) const
inherited

Retrieves number of ChemObjects that have been actually output.

Returns the number of objects which have been output or are currently being output. The outputindex is incremented when an object for output is fetched by GetChemObject(). So the function will return 1 if called from WriteMolecule() during output of the first object.

Referenced by OBMoleculeFormat::DeleteDeferredMols(), OBMoleculeFormat::DoOutputOptions(), and XMLConversion::GetOutputIndex().

◆ SetOutputIndex()

void SetOutputIndex ( int  indx)
inherited

◆ SetMoreFilesToCome()

void SetMoreFilesToCome ( )
inherited

Used with multiple input files. Off by default.

Referenced by OBConversion::FullConvert().

◆ SetOneObjectOnly()

void SetOneObjectOnly ( bool  b = true)
inherited

Used with multiple input files. Off by default.

Referenced by OBConversion::FullConvert(), OBMoleculeFormat::OutputDeferredMols(), and OBConversion::Write().

◆ SetLast()

void SetLast ( bool  b)
inlineinherited

◆ IsLastFile()

bool IsLastFile ( )
inlineinherited

True if no more files to be read.

◆ GetCount()

int GetCount ( ) const
inlineinherited

Number of objects read and processed Incremented after options are processed, so 0 for first object. Returns -1 if Convert interface not used.

◆ GetDefaultFormat()

static OBFormat* GetDefaultFormat ( )
inlinestaticinherited

The default format is set in a single OBFormat class (generally it is OBMol)

◆ Write()

bool Write ( OBBase pOb,
std::ostream *  pout = NULL 
)
inherited

Outputs an object of a class derived from OBBase.

Part of "API" interface. The output stream can be specified and the change is retained in the OBConversion instance

Writes the object pOb but does not delete it afterwards. The output stream is lastingly changed if pos is not NULL Returns true if successful.

Examples:
obconformersearch_default.cpp.

Referenced by OBConversion::WriteFile(), and OBConversion::WriteString().

◆ WriteString()

std::string WriteString ( OBBase pOb,
bool  trimWhitespace = false 
)
inherited

Outputs an object of a class derived from OBBase as a string.

Part of "API" interface. The output stream is temporarily changed to the string and then restored This method is primarily intended for scripting languages without "stream" classes The optional "trimWhitespace" parameter allows trailing whitespace to be removed (e.g., in a SMILES string or InChI, etc.)

Writes the object pOb but does not delete it afterwards. The output stream not changed (since we cannot write to this string later) Returns true if successful.

Referenced by OBBuilder::Build().

◆ WriteFile()

bool WriteFile ( OBBase pOb,
std::string  filePath 
)
inherited

Outputs an object of a class derived from OBBase as a file (with the supplied path)

Part of "API" interface. The output stream is changed to the supplied file and the change is retained in the OBConversion instance. This method is primarily intended for scripting languages without "stream" classes

Writes the object pOb but does not delete it afterwards. The output stream is lastingly changed to point to the file Returns true if successful.

◆ CloseOutFile()

void CloseOutFile ( )
inherited

Manually closes and deletes the output stream The file is closed anyway when in the OBConversion destructor or when WriteFile is called again.

Since
version 2.1

◆ Read()

bool Read ( OBBase pOb,
std::istream *  pin = NULL 
)
inherited

Reads an object of a class derived from OBBase into pOb.

Part of "API" interface. The input stream can be specified and the change is retained in the OBConversion instance

Returns
false and pOb=NULL on error
Examples:
obconformersearch_default.cpp, and obforcefield_energy.cpp.

Referenced by OpenBabel::alternate(), OBConversion::ReadFile(), OBMoleculeFormat::ReadNameIndex(), and OBConversion::ReadString().

◆ ReadString()

bool ReadString ( OBBase pOb,
std::string  input 
)
inherited

Reads an object of a class derived from OBBase into pOb from the supplied string.

Part of "API" interface. The input stream can be specified and the change is retained in the OBConversion instance

Returns
NULL on errorPart of "API" interface.
false and pOb=NULL on error This method is primarily intended for scripting languages without "stream" classes Any existing input stream will be replaced by stringstream.
Examples:
obconversion_readstring.cpp.

Referenced by OpenBabel::CompileSmilesQuery(), and AliasData::Expand().

◆ ReadFile()

bool ReadFile ( OBBase pOb,
std::string  filePath 
)
inherited

Reads an object of a class derived from OBBase into pOb from the file specified.

Part of "API" interface. The output stream is changed to the supplied file and the change is retained in the OBConversion instance. For multi-molecule files, the remaining molecules can be read by repeatedly calling the Read() method.

Returns
false and pOb=NULL on error This method is primarily intended for scripting languages without "stream" classes

◆ OpenInAndOutFiles()

bool OpenInAndOutFiles ( std::string  infilepath,
std::string  outfilepath 
)
inherited

Part of the "Convert" interface. Open the files and update the streams in the OBConversion object. This method is primarily intended for scripting languages without "stream" classes and will usually followed by a call to Convert(). Will set format from file extension if format has not already been set. Files will be opened even if format cannot be determined, but not if file path is empty.

Returns
false if unsucessful.

Referenced by OBConversion::OBConversion().

◆ ReportNumberConverted()

void ReportNumberConverted ( int  count,
OBFormat pFormat = NULL 
)
inherited

Sends a message like "2 molecules converted" to clog The type of object is taken from the TargetClassDescription of the specified class (or the output format if not specified)and is appropriately singular or plural.

◆ NumInputObjects()

int NumInputObjects ( )
inherited
Returns
the number of objects in the inputstream, or -1 if error or if SkipObjects for the input format is not implemented Adjusts for the value of -f and -l options (first and last objects).

◆ BatchFileName()

string BatchFileName ( std::string &  BaseName,
std::string &  InFile 
)
staticprotectedinherited

Replaces * in BaseName by InFile without extension and path.

Referenced by OBConversion::FullConvert().

◆ IncrementedFileName()

string IncrementedFileName ( std::string &  BaseName,
const int  Count 
)
staticprotectedinherited

Replaces * in BaseName by Count.

Referenced by OBConversion::FullConvert().

◆ CheckForUnintendedBatch()

bool CheckForUnintendedBatch ( const std::string &  infile,
const std::string &  outfile 
)
staticprotectedinherited

Checks for misunderstandings when using the -m option.

Referenced by OBConversion::FullConvert().

◆ ClearInStreams()

void ClearInStreams ( )
protectedinherited

◆ SetStartAndEnd()

bool SetStartAndEnd ( )
protectedinherited

◆ OptionParamArray()

OBConversion::OPAMapType & OptionParamArray ( Option_type  typ)
staticprotectedinherited

◆ OpenAndSetFormat()

bool OpenAndSetFormat ( bool  SetFormat,
std::ifstream *  is,
std::stringstream *  ss = NULL 
)
protectedinherited

Member Data Documentation

◆ _SkipNextRead

bool _SkipNextRead

◆ InFilename

std::string InFilename
protectedinherited

◆ OutFilename

std::string OutFilename
protectedinherited

◆ pInput

std::istream* pInput
protectedinherited

◆ ownedInStreams

std::vector<std::istream *> ownedInStreams
protectedinherited

◆ pOutput

std::ostream* pOutput
protectedinherited

◆ ownedOutStreams

std::vector<std::ostream *> ownedOutStreams
protectedinherited

◆ pDefaultFormat

OBFormat* pDefaultFormat
staticprotectedinherited

◆ pInFormat

OBFormat* pInFormat
protectedinherited

◆ pOutFormat

OBFormat* pOutFormat
protectedinherited

◆ OptionsArray

std::map<std::string,std::string> OptionsArray[3]
protectedinherited

◆ Index

int Index
protectedinherited

◆ StartNumber

unsigned int StartNumber
protectedinherited

◆ EndNumber

unsigned int EndNumber
protectedinherited

◆ Count

int Count
protectedinherited

◆ m_IsFirstInput

bool m_IsFirstInput
protectedinherited

◆ m_IsLast

bool m_IsLast
protectedinherited

◆ MoreFilesToCome

bool MoreFilesToCome
protectedinherited

◆ OneObjectOnly

bool OneObjectOnly
protectedinherited

◆ ReadyToInput

bool ReadyToInput
protectedinherited

◆ SkippedMolecules

bool SkippedMolecules
protectedinherited

◆ inFormatGzip

bool inFormatGzip
protectedinherited

◆ outFormatGzip

bool outFormatGzip
protectedinherited

◆ pOb1

OBBase* pOb1
protectedinherited

◆ wInpos

std::streampos wInpos
protectedinherited

position in the input stream of the object being written

Referenced by OBConversion::AddChemObject(), and OBConversion::operator=().

◆ rInpos

std::streampos rInpos
protectedinherited

position in the input stream of the object being read

Referenced by OBConversion::AddChemObject(), OBConversion::Convert(), and OBConversion::operator=().

◆ wInlen

size_t wInlen
protectedinherited

length in the input stream of the object being written

Referenced by OBConversion::AddChemObject(), OBConversion::Convert(), and OBConversion::operator=().

◆ rInlen

size_t rInlen
protectedinherited

length in the input stream of the object being read

Referenced by OBConversion::AddChemObject(), and OBConversion::operator=().

◆ pAuxConv

OBConversion* pAuxConv
protectedinherited

◆ SupportedInputFormat

std::vector<std::string> SupportedInputFormat
protectedinherited

list of supported input format

◆ SupportedOutputFormat

std::vector<std::string> SupportedOutputFormat
protectedinherited

list of supported output format


The documentation for this class was generated from the following file: