 |
OpendTect
6.6
|
Go to the documentation of this file.
22 #include "generalmod.h"
33 #define mdTectKey "dTect"
35 #define mObjSelUnrelated 0
36 #define mObjSelRelated 1
37 #define mObjSelMatch 2
125 Translator(
const char* nm,
const char* usr_nm);
153 virtual const char*
iconName()
const {
return "od"; }
164 const char* extension);
166 const char* extension);
168 const char* ext,
const char* newnm);
172 const char* ext,
bool setwritable);
174 const char* newfnm,
const CallBack* cb=0);
188 #define mImplTranslatorInitClass( spec, clss, usrnm ) \
190 spec##clss##Translator* tr = new spec##clss##Translator( #spec, usrnm ); \
191 clss##TranslatorGroup::theInst().add( tr ); \
194 #define mImplTranslatorGroupTheInst( clss ) \
196 mDefineStaticLocalObject(RefMan<TranslatorGroup>, inst, \
197 = &TranslatorGroup::addGroup( new clss##TranslatorGroup ));\
203 #define isTranslatorGroupBody(clss) \
205 ~clss##TranslatorGroup() {} \
207 static int selector(const char*); \
208 static void initClass() { theInst(); } \
209 static const IOObjContext& ioContext(); \
210 static FixedString sGroupName(); \
211 static uiString sTypeName(int num=1); \
212 virtual FixedString groupName() const { return sGroupName(); } \
213 virtual uiString typeName(int num=1) const \
214 { return sTypeName(num); } \
215 virtual const IOObjContext& ioCtxt() const { return ioContext(); } \
216 virtual int objSelector( const char* s ) const { return selector(s); } \
217 static TranslatorGroup& theInst()
220 #define isTranslatorGroup( clss ) \
221 mTextTranslationClass( clss##TranslatorGroup, \
222 clss##TranslatorGroup::theInst().translationApplication() ) \
223 isTranslatorGroupBody(clss);
225 #define isTranslatorGroupWithInst( clss ) \
226 isTranslatorGroupBody( clss ) \
227 mImplTranslatorGroupTheInst( clss )
231 #define isTranslatorBody(spec,clss) \
233 Translator* getNew() const \
235 Translator* trans = new spec##clss##Translator(typeName().buf(), \
237 trans->setGroup( group_ ); return trans; \
239 static spec##clss##Translator* getInstance(); \
240 static const char* translKey(); \
241 static void initClass()
244 #define isTranslator( spec, clss ) \
245 isTranslatorBody( spec, clss );
247 #define mIsTranslatorWithInitClass( spec, clss, usrnm ) \
248 isTranslatorBody(spec, clss) \
249 mImplTranslatorInitClass(spec, clss, usrnm )
252 #define defineTranslatorGroup(clss,groupname) \
253 FixedString clss##TranslatorGroup::sGroupName() \
254 { return groupname; } \
255 TranslatorGroup& clss##TranslatorGroup::theInst() \
256 mImplTranslatorGroupTheInst( clss )
259 #define defineTranslator(spec,clss,usrnm) \
260 spec##clss##Translator* spec##clss##Translator::getInstance() \
261 { return new spec##clss##Translator(#clss,usrnm); } \
262 const char* spec##clss##Translator::translKey() { return usrnm; } \
263 void spec##clss##Translator::initClass() \
264 mImplTranslatorInitClass( spec, clss, usrnm )
269 #define mDefEmptyTranslatorGroupConstructor(clss) \
270 clss##TranslatorGroup() \
271 : TranslatorGroup(#clss) {}
275 #define mDefEmptyTranslatorBaseConstructor(clss) \
276 clss##Translator( const char* nm, const char* unm ) \
277 : Translator(nm,unm) {}
281 #define mDefEmptyTranslatorConstructor(spec,clss) \
282 spec##clss##Translator( const char* nm, const char* unm ) \
283 : clss##Translator(nm,unm) {}
288 #define mDeclEmptyTranslatorBundle(mod,clss,fmt,defext) \
289 mExpClass(mod) clss##TranslatorGroup : public TranslatorGroup \
290 { isTranslatorGroup(clss) \
291 mDefEmptyTranslatorGroupConstructor(clss) \
292 const char* defExtension() const { return defext; } \
295 mExpClass(mod) clss##Translator : public Translator \
297 mDefEmptyTranslatorBaseConstructor(clss) \
300 mExpClass(mod) fmt##clss##Translator : public clss##Translator \
301 { isTranslator(fmt,clss) \
302 mDefEmptyTranslatorConstructor(fmt,clss) \
308 #define mDefSimpleTranslatorInstances(clss,usrnm,fmt) \
309 defineTranslatorGroup(clss,usrnm) \
310 uiString clss##TranslatorGroup::sTypeName(int) { return toUiString(usrnm); } \
311 defineTranslator(fmt,clss,#fmt)
315 #define mDefSimpleTranslatorSelector(clss) \
316 int clss##TranslatorGroup::selector( const char* s ) \
317 { return defaultSelector(clss##TranslatorGroup::sGroupName(),s); }
322 #define mDefSimpleTranslatorioContextWithExtra(clss,stdtyp,extra) \
323 const IOObjContext& clss##TranslatorGroup::ioContext() \
325 mDefineStaticLocalObject( PtrMan<IOObjContext>, ctxt, = nullptr ); \
328 ctxt = new IOObjContext( nullptr ); \
329 ctxt->stdseltype_ = IOObjContext::stdtyp; \
332 ctxt->trgroup_ = &theInst(); \
338 #define mDefSimpleTranslatorioContext(clss,stdtyp) \
339 mDefSimpleTranslatorioContextWithExtra(clss,stdtyp,)
344 #define mDefSimpleTranslators(clss,usrnm,fmt,stdtyp) \
345 mDefSimpleTranslatorSelector(clss)\
346 mDefSimpleTranslatorInstances(clss,usrnm,fmt) \
347 mDefSimpleTranslatorioContext(clss,stdtyp)
352 #define mDefSimpleTranslatorsWithCtioExtra(clss,usrnm,fmt,stdtyp,extra) \
353 mDefSimpleTranslatorInstances(clss,usrnm,fmt) \
354 mDefSimpleTranslatorSelector(clss) \
355 mDefSimpleTranslatorioContextWithExtra(clss,stdtyp,extra)
361 #define mDefSimpleTranslatorsWithSelKey(clss,usrnm,fmt,stdtyp,selky) \
362 mDefSimpleTranslatorsWithCtioExtra(clss,usrnm,fmt,stdtyp, \
363 ctxt->selkey_ = selky)
370 #define mDefEmptyTranslatorBundle(clss,fmt,stdtyp,fmtky,usrnm,uistrfn) \
371 defineTranslatorGroup(clss,usrnm); \
372 uiString clss##TranslatorGroup::sTypeName( int num ) \
373 { return uistrfn(); } \
374 defineTranslator(fmt,clss,fmtky); \
375 mDefSimpleTranslatorioContext(clss,stdtyp); \
376 mDefSimpleTranslatorSelector(clss)
380 #define mIOObjContext(trgrp) \
381 trgrp##TranslatorGroup::ioContext()
383 #define mTranslGroupName(trgrp) \
384 trgrp##TranslatorGroup::sGroupName()
386 #define mTranslTemplInstance(trgrp,tr) \
387 (*trgrp##TranslatorGroup::theInst() \
388 .getTemplate(tr##trgrp##Translator::translKey(),true))
390 #define mTranslCreate(trgrp,tr) \
391 (trgrp##Translator*)trgrp##TranslatorGroup::theInst().make(tr)
393 #define mTranslKey(trgrp,tr) \
394 tr##trgrp##Translator::translKey()
396 #define mMkCtxtIOObj(trgrp) \
397 new CtxtIOObj(trgrp##TranslatorGroup::ioContext())
399 #define mSelHist(trgrp) \
400 trgrp##TranslatorGroup::theInst().selHist()
static const ObjectSet< TranslatorGroup > & groups()
Definition: transl.h:77
int defaultSelector(const char *, const char *)
const Translator * getTemplate(const char *, bool usrnm) const
IOPar * selhist_
Definition: transl.h:100
void setDefTranslIdx(int i)
Definition: transl.h:87
virtual const char * defExtension() const
Definition: transl.h:73
static bool removeAssociatedFile(const char *fnm, const char *ext)
virtual IOObj * createWriteIOObj(const IOObjContext &, const MultiID &) const
virtual bool isUserSelectable(bool forread=true) const
Definition: transl.h:149
const ObjectSet< const Translator > & templates() const
Definition: transl.h:66
#define mGlobal(module)
Definition: commondefs.h:180
ObjectSet< const Translator > templs_
Definition: transl.h:98
static TranslatorGroup & addGroup(TranslatorGroup *)
#define mExpClass(module)
Definition: commondefs.h:177
virtual Translator * make(const char *, bool usrnm) const
mRefCountImpl(TranslatorGroup)
virtual bool implRemove(const IOObj *) const
static bool hasGroup(const char *nm)
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
static const Translator * getTemplateInstance(const char *displayname)
TranslatorGroup(const char *clssnm)
virtual const char * defExtension() const
Definition: transl.h:144
#define mODTextTranslationClass(clss)
Definition: uistring.h:40
const OD::String & userName() const
Definition: transl.h:129
virtual bool implSetReadOnly(const IOObj *, bool) const
static uiString sBadConnection()
static TranslatorGroup & getGroup(const char *nm)
static ObjectSet< TranslatorGroup > & getGroups()
virtual mODTextTranslationClass(Translator) public ~Translator()
Definition: transl.h:126
CallBacks object-oriented (object + method).
Definition: callback.h:62
virtual bool implExists(const IOObj *, bool forread) const
static BufferString getAssociatedFileName(const IOObj &, const char *extension)
Holds the context for selecting and/or creating IOObjs.
Definition: ctxtioobj.h:62
int deftridx_
Definition: transl.h:99
uiString sSelObjectIsWrongType()
virtual int objSelector(const char *) const =0
Return value mObjSelUnrelated etc.
const char * getDisplayName() const
"username [group]"
OD::String that holds an existing text string.
Definition: fixedstring.h:29
Group of Translators. Has a static factory.
Definition: transl.h:56
virtual const char * translationApplication() const
const TranslatorGroup * group() const
Definition: transl.h:130
static void clearSelHists()
static bool setPermAssociatedFile(const char *fnm, const char *ext, bool setwritable)
static bool renameAssociatedFile(const char *fnm, const char *ext, const char *newnm)
Compound key consisting of ints.
Definition: multiid.h:24
bool hasConnType(const char *) const
virtual bool implManagesObjects(const IOObj *) const
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
BufferString typname_
Definition: transl.h:159
encapsulates the read-access-only part of strings in OD.
Definition: odstring.h:31
static uiString sNoIoobjMsg()
const OD::String & clssName() const
Definition: transl.h:95
TranslatorGroup * group_
Definition: transl.h:161
static bool renameLargeFile(const char *fnm, const char *newfnm, const CallBack *cb=0)
virtual Translator * getNew() const =0
I/O Interpreter class for a certain object type.
Definition: transl.h:123
BufferString usrname_
Definition: transl.h:160
static BufferString getAssociatedFileName(const char *fnm, const char *extension)
virtual void usePar(const IOPar &)
Definition: transl.h:143
const OD::String & typeName() const
Definition: transl.h:128
virtual bool implReadOnly(const IOObj *) const
virtual bool implRename(const IOObj *, const char *, const CallBack *cb=0) const
virtual const char * iconName() const
Definition: transl.h:153
virtual uiString typeName(int num=1) const =0
void setGroup(TranslatorGroup *g)
Definition: transl.h:147
int defTranslIdx() const
Definition: transl.h:86
BufferString clssname_
Definition: transl.h:97
virtual const char * getSurveyDefaultKey(const IOObj *=0) const
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
virtual const IOObjContext & ioCtxt() const =0
virtual const char * connType() const
virtual FixedString groupName() const =0
Generated at
for the OpendTect
seismic interpretation project.
Copyright (C): dGB Beheer B.V. 1995-2021