63 virtual void Init(
void);
64 virtual int Run(
void);
65 virtual void Exit(
void);
79 arg_desc->SetUsageContext(
GetArguments().GetProgramBasename(),
80 "Object splitter/decontainerizer");
82 arg_desc->AddDefaultKey(
"i",
"InputFile",
87 arg_desc->AddDefaultKey(
"ifmt",
"InputFormat",
88 "Format of input file",
91 arg_desc->SetConstraint(
"ifmt",
94 arg_desc->AddDefaultKey(
"itype",
"InputType",
95 "Type for input file",
98 arg_desc->SetConstraint(
"itype",
100 "Seq-entry",
"Bioseq",
"Bioseq-set",
101 "Seq-annot",
"Seq-align-set"));
103 arg_desc->AddDefaultKey(
"o",
"OutputFile",
104 "Output for decontainered/found objects",
108 arg_desc->AddDefaultKey(
"ofmt",
"OutputFormat",
109 "Format of onput file",
112 arg_desc->SetConstraint(
"ofmt",
115 arg_desc->AddDefaultKey(
"otype",
"OutputType",
116 "Type for onput file",
119 arg_desc->SetConstraint(
"otype",
121 "Seq-entry",
"Bioseq",
"Bioseq-set",
122 "Seq-annot",
"Seq-align-set"));
190 CSeq_entry::GetTypeInfo();
191 CBioseq::GetTypeInfo();
192 CBioseq_set::GetTypeInfo();
193 CSeq_annot::GetTypeInfo();
194 CSeq_align_set::GetTypeInfo();
203 string str = args[
"ifmt"].AsString();
206 }
else if (
str ==
"asnb") {
208 }
else if (
str ==
"xml") {
212 const CTypeInfo* itype = CSeq_entry::GetTypeInfo();
214 string str = args[
"itype"].AsString();
223 string str = args[
"ofmt"].AsString();
226 }
else if (
str ==
"asnb") {
228 }
else if (
str ==
"xml") {
232 const CTypeInfo* otype = CSeq_entry::GetTypeInfo();
234 string str = args[
"otype"].AsString();
249 <<
"extracting " << otype->
GetName()
250 <<
" from " << itype->
GetName());
251 if (itype == CBioseq_set::GetTypeInfo() &&
252 otype == CSeq_entry::GetTypeInfo()) {
283 int main(
int argc,
const char* argv[])
Interface for handling Seq-entry objects.
CGBReleaseFile is a utility class to ease the processing of Genbank release files one Seq-entry at a ...
void RegisterHandler(ISeqEntryHandler *handler)
Register handler.
void Read(void)
Read the release file.
handler for GenBank release files
CGbEntryHandler(CObjectOStream &ostr)
bool HandleSeqEntry(CRef< CSeq_entry > &entry)
user code for handling a Seq-entry goes here.
a simple read hook - when it finds its object, it reads it in and dumps it to the stream
void ReadObject(CObjectIStream &istr, const CObjectInfo &object)
This method will be called at approriate time when the object of requested type is to be read.
CReadHookWriter(const CTypeInfo *info, CObjectOStream &ostr)
const CTypeInfo * m_TypeInfo
Read hook for a standalone object.
Base class for all serializable objects.
CTypeInfo class contains all information about C++ types (both basic and classes): members and layout...
static const char * str(char *buf, int n)
virtual const CArgs & GetArgs(void) const
Get parsed command line arguments.
int AppMain(int argc, const char *const *argv, const char *const *envp=0, EAppDiagStream diag=eDS_Default, const char *conf=NcbiEmptyCStr, const string &name=NcbiEmptyString)
Main function (entry point) for the NCBI application.
virtual void SetupArgDescriptions(CArgDescriptions *arg_desc)
Setup the command line argument descriptions.
const CNcbiArguments & GetArguments(void) const
Get the application's cached unprocessed command-line arguments.
@ eInputFile
Name of file (must exist and be readable)
@ eString
An arbitrary string.
@ eOutputFile
Name of file (must be writable)
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
void SetDiagStream(CNcbiOstream *os, bool quick_flush=true, FDiagCleanup cleanup=0, void *cleanup_data=0, const string &stream_name="")
Set diagnostic stream.
@ eDS_Default
Try standard log file (app.name + ".log") in /log/, use stderr on failure.
void Error(CExceptionArgs_Base &args)
virtual const CTypeInfo * GetThisTypeInfo(void) const =0
ESerialDataFormat
Data file format.
@ eSerial_AsnText
ASN.1 text.
@ eSerial_AsnBinary
ASN.1 binary.
void DefaultRead(CObjectIStream &in, const CObjectInfo &object)
Default read.
static CObjectOStream * Open(ESerialDataFormat format, CNcbiOstream &outStream, bool deleteOutStream)
Create serial object writer and attach it to an output stream.
void Write(const CConstObjectInfo &object)
static CObjectIStream * Open(ESerialDataFormat format, CNcbiIstream &inStream, bool deleteInStream)
Create serial object reader and attach it to an input stream.
void SetDiscardCurrObject(bool discard=true)
Discard the object, which has been just read.
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
IO_PREFIX::istream CNcbiIstream
Portable alias for istream.
const string & GetName(void) const
Get name of this type.
static TTypeInfo GetClassInfoByName(const string &name)
TObjectPtr Create(CObjectMemoryPool *memoryPool=0) const
Create object of this type on heap (can be deleted by operator delete)
Defines the CNcbiApplication and CAppException classes for creating NCBI applications.
Defines command line argument related classes.
Defines unified interface to application: