OpendTect  6.6
Classes | Macros | Functions
transl.h File Reference
Include dependency graph for transl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  TranslatorGroup
 Group of Translators. Has a static factory. More...
 
class  Translator
 I/O Interpreter class for a certain object type. More...
 

Macros

#define mDGBKey   "dGB"
 
#define mdTectKey   "dTect"
 
#define mObjSelUnrelated   0
 
#define mObjSelRelated   1
 
#define mObjSelMatch   2
 
#define mImplTranslatorInitClass(spec, clss, usrnm)
 
#define mImplTranslatorGroupTheInst(clss)
 
#define isTranslatorGroupBody(clss)
 In the class definition of a TranslatorGroup class. More...
 
#define isTranslatorGroup(clss)
 
#define isTranslatorGroupWithInst(clss)
 
#define isTranslatorBody(spec, clss)
 In the class definition of a Translator class. More...
 
#define isTranslator(spec, clss)   isTranslatorBody( spec, clss );
 
#define mIsTranslatorWithInitClass(spec, clss, usrnm)
 
#define defineTranslatorGroup(clss, groupname)
 In the source file of a TranslatorGroup class. More...
 
#define defineTranslator(spec, clss, usrnm)
 In the source file of a Translator class. More...
 
#define mDefEmptyTranslatorGroupConstructor(clss)
 
#define mDefEmptyTranslatorBaseConstructor(clss)
 
#define mDefEmptyTranslatorConstructor(spec, clss)
 
#define mDeclEmptyTranslatorBundle(mod, clss, fmt, defext)
 
#define mDefSimpleTranslatorInstances(clss, usrnm, fmt)
 
#define mDefSimpleTranslatorSelector(clss)
 
#define mDefSimpleTranslatorioContextWithExtra(clss, stdtyp, extra)
 
#define mDefSimpleTranslatorioContext(clss, stdtyp)   mDefSimpleTranslatorioContextWithExtra(clss,stdtyp,)
 
#define mDefSimpleTranslators(clss, usrnm, fmt, stdtyp)
 
#define mDefSimpleTranslatorsWithCtioExtra(clss, usrnm, fmt, stdtyp, extra)
 
#define mDefSimpleTranslatorsWithSelKey(clss, usrnm, fmt, stdtyp, selky)
 
#define mDefEmptyTranslatorBundle(clss, fmt, stdtyp, fmtky, usrnm, uistrfn)
 
#define mIOObjContext(trgrp)   trgrp##TranslatorGroup::ioContext()
 
#define mTranslGroupName(trgrp)   trgrp##TranslatorGroup::sGroupName()
 
#define mTranslTemplInstance(trgrp, tr)
 
#define mTranslCreate(trgrp, tr)   (trgrp##Translator*)trgrp##TranslatorGroup::theInst().make(tr)
 
#define mTranslKey(trgrp, tr)   tr##trgrp##Translator::translKey()
 
#define mMkCtxtIOObj(trgrp)   new CtxtIOObj(trgrp##TranslatorGroup::ioContext())
 
#define mSelHist(trgrp)   trgrp##TranslatorGroup::theInst().selHist()
 

Functions

int defaultSelector (const char *, const char *)
 

Macro Definition Documentation

◆ defineTranslator

#define defineTranslator (   spec,
  clss,
  usrnm 
)
Value:
spec##clss##Translator* spec##clss##Translator::getInstance() \
{ return new spec##clss##Translator(#clss,usrnm); } \
const char* spec##clss##Translator::translKey() { return usrnm; } \
void spec##clss##Translator::initClass() \
mImplTranslatorInitClass( spec, clss, usrnm )

In the source file of a Translator class.

◆ defineTranslatorGroup

#define defineTranslatorGroup (   clss,
  groupname 
)
Value:
FixedString clss##TranslatorGroup::sGroupName() \
{ return groupname; } \
TranslatorGroup& clss##TranslatorGroup::theInst() \
mImplTranslatorGroupTheInst( clss )

In the source file of a TranslatorGroup class.

◆ isTranslator

#define isTranslator (   spec,
  clss 
)    isTranslatorBody( spec, clss );

◆ isTranslatorBody

#define isTranslatorBody (   spec,
  clss 
)
Value:
public: \
Translator* getNew() const \
{ \
Translator* trans = new spec##clss##Translator(typeName().buf(), \
userName().buf()); \
trans->setGroup( group_ ); return trans; \
} \
static spec##clss##Translator* getInstance(); \
static const char* translKey(); \
static void initClass()

In the class definition of a Translator class.

◆ isTranslatorGroup

#define isTranslatorGroup (   clss)
Value:
clss##TranslatorGroup::theInst().translationApplication() ) \
isTranslatorGroupBody(clss);

◆ isTranslatorGroupBody

#define isTranslatorGroupBody (   clss)
Value:
protected: \
~clss##TranslatorGroup() {} \
public: \
static int selector(const char*); \
static void initClass() { theInst(); } \
static const IOObjContext& ioContext(); \
static FixedString sGroupName(); \
static uiString sTypeName(int num=1); \
virtual FixedString groupName() const { return sGroupName(); } \
virtual uiString typeName(int num=1) const \
{ return sTypeName(num); } \
virtual const IOObjContext& ioCtxt() const { return ioContext(); } \
virtual int objSelector( const char* s ) const { return selector(s); } \
static TranslatorGroup& theInst()

In the class definition of a TranslatorGroup class.

◆ isTranslatorGroupWithInst

#define isTranslatorGroupWithInst (   clss)
Value:
mImplTranslatorGroupTheInst( clss )

◆ mDeclEmptyTranslatorBundle

#define mDeclEmptyTranslatorBundle (   mod,
  clss,
  fmt,
  defext 
)
Value:
mDefEmptyTranslatorGroupConstructor(clss) \
const char* defExtension() const { return defext; } \
}; \
mExpClass(mod) clss##Translator : public Translator \
{ public: \
mDefEmptyTranslatorBaseConstructor(clss) \
}; \
mExpClass(mod) fmt##clss##Translator : public clss##Translator \
{ isTranslator(fmt,clss) \
mDefEmptyTranslatorConstructor(fmt,clss) \
};

Convenient when the entire Translator concept is not interesting 4 u. Use this in your header file to comply with the concept, so you can make use of OpendTect object selection, retrieval etc.

◆ mDefEmptyTranslatorBaseConstructor

#define mDefEmptyTranslatorBaseConstructor (   clss)
Value:
clss##Translator( const char* nm, const char* unm ) \
: Translator(nm,unm) {}

Convenience when the Translator base class is not interesting 4 u. Defines a simple empty Translator class body

◆ mDefEmptyTranslatorBundle

#define mDefEmptyTranslatorBundle (   clss,
  fmt,
  stdtyp,
  fmtky,
  usrnm,
  uistrfn 
)
Value:
defineTranslatorGroup(clss,usrnm); \
uiString clss##TranslatorGroup::sTypeName( int num ) \
{ return uistrfn(); } \
defineTranslator(fmt,clss,fmtky); \
mDefSimpleTranslatorioContext(clss,stdtyp); \
mDefSimpleTranslatorSelector(clss)

Definitions for .cc file: Convenient when the entire Translator concept is not interesting 4 u. defines one 'format' Example: mDefEmptyTranslatorBundle( MyConfig, myFmt, Misc, "MyFmt", "My Format", MyConfigMgr::getUiConfigStr )

◆ mDefEmptyTranslatorConstructor

#define mDefEmptyTranslatorConstructor (   spec,
  clss 
)
Value:
spec##clss##Translator( const char* nm, const char* unm ) \
: clss##Translator(nm,unm) {}

Convenience when the Translator is not interesting 4 u. Defines a simple empty Translator subclass body

◆ mDefEmptyTranslatorGroupConstructor

#define mDefEmptyTranslatorGroupConstructor (   clss)
Value:
clss##TranslatorGroup() \
: TranslatorGroup(#clss) {}

Convenience when the TranslatorGroup is not interesting 4 u. Defines a simple empty TranslatorGroup class body

◆ mDefSimpleTranslatorInstances

#define mDefSimpleTranslatorInstances (   clss,
  usrnm,
  fmt 
)
Value:
defineTranslatorGroup(clss,usrnm) \
uiString clss##TranslatorGroup::sTypeName(int) { return toUiString(usrnm); } \
defineTranslator(fmt,clss,#fmt)

Definitions for .cc file: Convenience when the entire Translator concept is not interesting This one can be convenient when a group has only one Translator

◆ mDefSimpleTranslatorioContext

#define mDefSimpleTranslatorioContext (   clss,
  stdtyp 
)    mDefSimpleTranslatorioContextWithExtra(clss,stdtyp,)

Definitions for .cc file: Defines the function providing the IOObj context, no extras

◆ mDefSimpleTranslatorioContextWithExtra

#define mDefSimpleTranslatorioContextWithExtra (   clss,
  stdtyp,
  extra 
)
Value:
const IOObjContext& clss##TranslatorGroup::ioContext() \
{ \
mDefineStaticLocalObject( PtrMan<IOObjContext>, ctxt, = nullptr ); \
if ( !ctxt ) \
{ \
ctxt = new IOObjContext( nullptr ); \
ctxt->stdseltype_ = IOObjContext::stdtyp; \
extra; \
} \
ctxt->trgroup_ = &theInst(); \
return *ctxt; \
}

Definitions for .cc file: Defines the function providing the IOObj context This particular macro allows extension, setting extra members

◆ mDefSimpleTranslators

#define mDefSimpleTranslators (   clss,
  usrnm,
  fmt,
  stdtyp 
)
Value:
mDefSimpleTranslatorInstances(clss,usrnm,fmt) \
mDefSimpleTranslatorioContext(clss,stdtyp)

Definitions for .cc file: Defines all necessary functions to implement This is the 'basic' one

◆ mDefSimpleTranslatorSelector

#define mDefSimpleTranslatorSelector (   clss)
Value:
int clss##TranslatorGroup::selector( const char* s ) \
{ return defaultSelector(clss##TranslatorGroup::sGroupName(),s); }

Definitions for .cc file: This particular macro defines a simple object selection definition

◆ mDefSimpleTranslatorsWithCtioExtra

#define mDefSimpleTranslatorsWithCtioExtra (   clss,
  usrnm,
  fmt,
  stdtyp,
  extra 
)
Value:
mDefSimpleTranslatorSelector(clss) \
mDefSimpleTranslatorioContextWithExtra(clss,stdtyp,extra)

Definitions for .cc file: Defines all necessary functions to implement This one allows adding code to set IOObjContext members

◆ mDefSimpleTranslatorsWithSelKey

#define mDefSimpleTranslatorsWithSelKey (   clss,
  usrnm,
  fmt,
  stdtyp,
  selky 
)
Value:
mDefSimpleTranslatorsWithCtioExtra(clss,usrnm,fmt,stdtyp, \
ctxt->selkey_ = selky)

Definitions for .cc file: Defines all necessary functions to implement This one sets the selkey Therefore it's the one you want to use if you have your own data sub-dir.

◆ mDGBKey

#define mDGBKey   "dGB"

◆ mdTectKey

#define mdTectKey   "dTect"

◆ mImplTranslatorGroupTheInst

#define mImplTranslatorGroupTheInst (   clss)
Value:
{ \
mDefineStaticLocalObject(RefMan<TranslatorGroup>, inst, \
return *inst; \
}

◆ mImplTranslatorInitClass

#define mImplTranslatorInitClass (   spec,
  clss,
  usrnm 
)
Value:
{ \
spec##clss##Translator* tr = new spec##clss##Translator( #spec, usrnm ); \
clss##TranslatorGroup::theInst().add( tr ); \
}

◆ mIOObjContext

#define mIOObjContext (   trgrp)    trgrp##TranslatorGroup::ioContext()

◆ mIsTranslatorWithInitClass

#define mIsTranslatorWithInitClass (   spec,
  clss,
  usrnm 
)
Value:
isTranslatorBody(spec, clss) \
mImplTranslatorInitClass(spec, clss, usrnm )

◆ mMkCtxtIOObj

#define mMkCtxtIOObj (   trgrp)    new CtxtIOObj(trgrp##TranslatorGroup::ioContext())

◆ mObjSelMatch

#define mObjSelMatch   2

◆ mObjSelRelated

#define mObjSelRelated   1

◆ mObjSelUnrelated

#define mObjSelUnrelated   0

◆ mSelHist

#define mSelHist (   trgrp)    trgrp##TranslatorGroup::theInst().selHist()

◆ mTranslCreate

#define mTranslCreate (   trgrp,
  tr 
)    (trgrp##Translator*)trgrp##TranslatorGroup::theInst().make(tr)

◆ mTranslGroupName

#define mTranslGroupName (   trgrp)    trgrp##TranslatorGroup::sGroupName()

◆ mTranslKey

#define mTranslKey (   trgrp,
  tr 
)    tr##trgrp##Translator::translKey()

◆ mTranslTemplInstance

#define mTranslTemplInstance (   trgrp,
  tr 
)
Value:
(*trgrp##TranslatorGroup::theInst() \
.getTemplate(tr##trgrp##Translator::translKey(),true))

Function Documentation

◆ defaultSelector()

int defaultSelector ( const char *  ,
const char *   
)
defaultSelector
int defaultSelector(const char *, const char *)
File::toUiString
Export_Basic uiString toUiString(ViewStyle)
TranslatorGroup::addGroup
static TranslatorGroup & addGroup(TranslatorGroup *)
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
isTranslator
#define isTranslator(spec, clss)
Definition: transl.h:244
mDefSimpleTranslatorInstances
#define mDefSimpleTranslatorInstances(clss, usrnm, fmt)
Definition: transl.h:308
isTranslatorGroupBody
#define isTranslatorGroupBody(clss)
In the class definition of a TranslatorGroup class.
Definition: transl.h:203
defineTranslatorGroup
#define defineTranslatorGroup(clss, groupname)
In the source file of a TranslatorGroup class.
Definition: transl.h:252
isTranslatorGroup
#define isTranslatorGroup(clss)
Definition: transl.h:220
mDefSimpleTranslatorSelector
#define mDefSimpleTranslatorSelector(clss)
Definition: transl.h:315
IOObjContext
Holds the context for selecting and/or creating IOObjs.
Definition: ctxtioobj.h:62
PtrMan
Definition: ptrman.h:121
mDefSimpleTranslatorsWithCtioExtra
#define mDefSimpleTranslatorsWithCtioExtra(clss, usrnm, fmt, stdtyp, extra)
Definition: transl.h:352
FixedString
OD::String that holds an existing text string.
Definition: fixedstring.h:29
TranslatorGroup
Group of Translators. Has a static factory.
Definition: transl.h:56
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
Translator
I/O Interpreter class for a certain object type.
Definition: transl.h:123
initClass
static void initClass()
isTranslatorBody
#define isTranslatorBody(spec, clss)
In the class definition of a Translator class.
Definition: transl.h:231
mTextTranslationClass
#define mTextTranslationClass(clss, pkgkey)
Definition: uistring.h:29
RefMan
Definition: ptrman.h:206

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2021