21 #include "generalmod.h" 32 #define mdTectKey "dTect" 34 #define mObjSelUnrelated 0 35 #define mObjSelRelated 1 36 #define mObjSelMatch 2 62 virtual Translator* make(
const char*,
bool usrnm)
const;
63 const Translator* getTemplate(
const char*,
bool usrnm)
const;
68 virtual int objSelector(
const char*)
const = 0;
71 bool hasConnType(
const char*)
const;
78 static bool hasGroup(
const char* nm);
79 static void clearSelHists();
88 virtual const char* getSurveyDefaultKey(
const IOObj* = 0)
const;
90 virtual const char* translationApplication()
const;
125 Translator(
const char* nm,
const char* usr_nm);
142 virtual const char*
connType()
const;
153 virtual const char*
iconName()
const {
return "od"; }
173 #define mImplTranslatorInitClass( spec, clss, usrnm ) \ 175 spec##clss##Translator* tr = new spec##clss##Translator( #spec, usrnm ); \ 176 clss##TranslatorGroup::theInst().add( tr ); \ 179 #define mImplTranslatorGroupTheInst( clss ) \ 181 mDefineStaticLocalObject(RefMan<TranslatorGroup>, inst, \ 182 = &TranslatorGroup::addGroup( new clss##TranslatorGroup ));\ 188 #define isTranslatorGroup(clss) \ 190 ~clss##TranslatorGroup() {} \ 192 static int selector(const char*); \ 193 static void initClass() { theInst(); } \ 194 static const IOObjContext& ioContext(); \ 195 static FixedString sGroupName(); \ 196 static uiString sTypeName(int num=1); \ 197 virtual FixedString groupName() const { return sGroupName(); } \ 198 virtual uiString typeName(int num=1) const \ 199 { return sTypeName(num); } \ 200 virtual const IOObjContext& ioCtxt() const { return ioContext(); } \ 201 virtual int objSelector( const char* s ) const { return selector(s); } \ 202 static TranslatorGroup& theInst() 205 #define isTranslatorGroupWithInst( clss ) \ 206 isTranslatorGroupBody( clss ) \ 207 mImplTranslatorGroupTheInst( clss ) 211 #define isTranslatorBody(spec,clss) \ 213 Translator* getNew() const \ 215 Translator* trans = new spec##clss##Translator(typeName().buf(), \ 217 trans->setGroup( group_ ); return trans; \ 219 static spec##clss##Translator* getInstance(); \ 220 static const char* translKey(); \ 221 static void initClass() 224 #define isTranslator( spec, clss ) \ 225 isTranslatorBody( spec, clss ); 227 #define mIsTranslatorWithInitClass( spec, clss, usrnm ) \ 228 isTranslatorBody(spec, clss) \ 229 mImplTranslatorInitClass(spec, clss, usrnm ) 232 #define defineTranslatorGroup(clss,groupname) \ 233 FixedString clss##TranslatorGroup::sGroupName() \ 234 { return groupname; } \ 235 TranslatorGroup& clss##TranslatorGroup::theInst() \ 236 mImplTranslatorGroupTheInst( clss ) 239 #define defineTranslator(spec,clss,usrnm) \ 240 spec##clss##Translator* spec##clss##Translator::getInstance() \ 241 { return new spec##clss##Translator(#clss,usrnm); } \ 242 const char* spec##clss##Translator::translKey() { return usrnm; } \ 243 void spec##clss##Translator::initClass() \ 244 mImplTranslatorInitClass( spec, clss, usrnm ) 249 #define mDefEmptyTranslatorGroupConstructor(clss) \ 250 clss##TranslatorGroup() \ 251 : TranslatorGroup(#clss) {} 255 #define mDefEmptyTranslatorBaseConstructor(clss) \ 256 clss##Translator( const char* nm, const char* unm ) \ 257 : Translator(nm,unm) {} 261 #define mDefEmptyTranslatorConstructor(spec,clss) \ 262 spec##clss##Translator( const char* nm, const char* unm ) \ 263 : clss##Translator(nm,unm) {} 268 #define mDeclEmptyTranslatorBundle(mod,clss,fmt,defext) \ 269 mExpClass(mod) clss##TranslatorGroup : public TranslatorGroup \ 270 { isTranslatorGroup(clss); \ 271 mTextTranslationClass( clss##TranslatorGroup, \ 272 clss##TranslatorGroup::theInst().translationApplication() ) \ 273 mDefEmptyTranslatorGroupConstructor(clss) \ 274 const char* defExtension() const { return defext; } \ 277 mExpClass(mod) clss##Translator : public Translator \ 279 mDefEmptyTranslatorBaseConstructor(clss) \ 282 mExpClass(mod) fmt##clss##Translator : public clss##Translator \ 283 { isTranslator(fmt,clss) \ 284 mDefEmptyTranslatorConstructor(fmt,clss) \ 290 #define mDefSimpleTranslatorInstances(clss,usrnm,fmt) \ 291 defineTranslatorGroup(clss,usrnm) \ 292 uiString clss##TranslatorGroup::sTypeName(int) { return toUiString(usrnm); } \ 293 defineTranslator(fmt,clss,#fmt) 297 #define mDefSimpleTranslatorSelector(clss) \ 298 int clss##TranslatorGroup::selector( const char* s ) \ 299 { return defaultSelector(clss##TranslatorGroup::sGroupName(),s); } 304 #define mDefSimpleTranslatorioContextWithExtra(clss,stdtyp,extra) \ 305 const IOObjContext& clss##TranslatorGroup::ioContext() \ 307 static IOObjContext* ctxt = 0; \ 310 ctxt = new IOObjContext( 0 ); \ 311 ctxt->stdseltype_ = IOObjContext::stdtyp; \ 314 ctxt->trgroup_ = &theInst(); \ 320 #define mDefSimpleTranslatorioContext(clss,stdtyp) \ 321 mDefSimpleTranslatorioContextWithExtra(clss,stdtyp,) 326 #define mDefSimpleTranslators(clss,usrnm,fmt,stdtyp) \ 327 mDefSimpleTranslatorSelector(clss)\ 328 mDefSimpleTranslatorInstances(clss,usrnm,fmt) \ 329 mDefSimpleTranslatorioContext(clss,stdtyp) 334 #define mDefSimpleTranslatorsWithCtioExtra(clss,usrnm,fmt,stdtyp,extra) \ 335 mDefSimpleTranslatorInstances(clss,usrnm,fmt) \ 336 mDefSimpleTranslatorSelector(clss) \ 337 mDefSimpleTranslatorioContextWithExtra(clss,stdtyp,extra) 343 #define mDefSimpleTranslatorsWithSelKey(clss,usrnm,fmt,stdtyp,selky) \ 344 mDefSimpleTranslatorsWithCtioExtra(clss,usrnm,fmt,stdtyp, \ 345 ctxt->dirid_ = DBKey::DirID::get(selky)) 350 #define mIOObjContext(trgrp) \ 351 trgrp##TranslatorGroup::ioContext() 353 #define mTranslGroupName(trgrp) \ 354 trgrp##TranslatorGroup::sGroupName() 356 #define mTranslTemplInstance(trgrp,tr) \ 357 (*trgrp##TranslatorGroup::theInst() \ 358 .getTemplate(tr##trgrp##Translator::translKey(),true)) 360 #define mTranslCreate(trgrp,tr) \ 361 (trgrp##Translator*)trgrp##TranslatorGroup::theInst().make(tr) 363 #define mTranslKey(trgrp,tr) \ 364 tr##trgrp##Translator::translKey() 366 #define mMkCtxtIOObj(trgrp) \ 367 new CtxtIOObj(trgrp##TranslatorGroup::ioContext()) 369 #define mSelHist(trgrp) \ 370 trgrp##TranslatorGroup::theInst().selHist() #define mExpClass(module)
Definition: commondefs.h:157
virtual bool isUserSelectable(bool forread=true) const
Definition: transl.h:149
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
virtual const char * connType() const
virtual IOObj * createWriteIOObj(const IOObjContext &, const DBKey &) const
virtual const char * iconName() const
Definition: transl.h:153
static uiString sNoIoobjMsg()
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
#define mGlobal(module)
Definition: commondefs.h:160
OD::String that holds an existing text string.
Definition: fixedstring.h:27
virtual bool implExists(const IOObj *, bool forread) const
virtual void usePar(const IOPar &)
Definition: transl.h:143
virtual Translator * getNew() const =0
const OD::String & typeName() const
Definition: transl.h:128
const OD::String & clssName() const
Definition: transl.h:95
static const ObjectSet< TranslatorGroup > & groups()
Definition: transl.h:76
BufferString clssname_
Definition: transl.h:97
Definition: uistring.h:88
const TranslatorGroup * group() const
Definition: transl.h:130
const OD::String & userName() const
Definition: transl.h:129
BufferString usrname_
Definition: transl.h:160
virtual bool implManagesObjects(const IOObj *) const
ObjectSet< const Translator > templs_
Definition: transl.h:98
Group of Translators. Has a static factory.
Definition: transl.h:54
virtual bool implRemove(const IOObj *) const
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
virtual const char * defExtension() const
Definition: transl.h:72
static uiString sBadConnection()
virtual const char * defExtension() const
Definition: transl.h:144
encapsulates the read-access-only part of strings in OD.
Definition: odstring.h:29
TranslatorGroup * group_
Definition: transl.h:161
BufferString typname_
Definition: transl.h:159
virtual bool implSetReadOnly(const IOObj *, bool) const
void setDefTranslIdx(int i)
Definition: transl.h:86
int deftridx_
Definition: transl.h:99
I/O Interpreter class for a certain object type.
Definition: transl.h:122
uiString sSelObjectIsWrongType()
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
void setGroup(TranslatorGroup *g)
Definition: transl.h:147
static const Translator * getTemplateInstance(const char *displayname)
int defTranslIdx() const
Definition: transl.h:85
virtual bool implRename(const IOObj *, const char *, const CallBack *cb=0) const
int defaultSelector(const char *, const char *)
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
const ObjectSet< const Translator > & templates() const
Definition: transl.h:65
CallBacks object-oriented (object + method).
Definition: callback.h:62
IOPar * selhist_
Definition: transl.h:100
virtual mODTextTranslationClass(Translator) public ~Translator()
Definition: transl.h:126
const char * getDisplayName() const
"username [group]"
virtual bool implReadOnly(const IOObj *) const
Holds the context for selecting and/or creating IOObjs.
Definition: ioobjctxt.h:59