AB_IMEXPORTER_ACCOUNTINFO* AB_ImExporterAccountInfo_dup(const AB_IMEXPORTER_ACCOUNTINFO *oi) { AB_IMEXPORTER_ACCOUNTINFO *iea; GWEN_NEW_OBJECT(AB_IMEXPORTER_ACCOUNTINFO, iea); GWEN_LIST_INIT(AB_IMEXPORTER_ACCOUNTINFO, iea); #define COPY_CHAR(NAME) \ if (oi->NAME) \ iea->NAME=strdup(oi->NAME); COPY_CHAR(bankCode); COPY_CHAR(bankName); COPY_CHAR(accountNumber); COPY_CHAR(accountName); COPY_CHAR(iban); COPY_CHAR(bic); COPY_CHAR(owner); COPY_CHAR(currency); COPY_CHAR(description); iea->accountType=oi->accountType; #undef COPY_CHAR iea->accountId=oi->accountId; iea->accStatusList=AB_AccountStatus_List_dup(oi->accStatusList); iea->transactions=AB_Transaction_List_dup(oi->transactions); iea->standingOrders=AB_Transaction_List_dup(oi->standingOrders); iea->transfers=AB_Transaction_List_dup(oi->transfers); iea->datedTransfers=AB_Transaction_List_dup(oi->datedTransfers); iea->notedTransactions=AB_Transaction_List_dup(oi->notedTransactions); return iea; }
GWEN_DATE_TMPLCHAR *GWEN_DateTmplChar_new(char c) { GWEN_DATE_TMPLCHAR *e; GWEN_NEW_OBJECT(GWEN_DATE_TMPLCHAR, e); GWEN_LIST_INIT(GWEN_DATE_TMPLCHAR, e); e->character=c; switch(c) { case 'Y': e->maxCount=4; break; case 'M': e->maxCount=2; break; case 'D': e->maxCount=2; break; case 'W': e->maxCount=1; break; case 'w': default: e->maxCount=GWEN_DATE_TMPL_MAX_COUNT; break; } return e; }
GWEN_PARAM *GWEN_Param_new(void) { GWEN_PARAM *p_struct; GWEN_NEW_OBJECT(GWEN_PARAM, p_struct) p_struct->_refCount=1; GWEN_LIST_INIT(GWEN_PARAM, p_struct) GWEN_TREE_INIT(GWEN_PARAM, p_struct) /* members */ p_struct->name=NULL; p_struct->flags=0; p_struct->type=GWEN_Param_Type_Unknown; p_struct->dataType=GWEN_Param_DataType_Unknown; p_struct->shortDescription=NULL; p_struct->longDescription=NULL; p_struct->currentValue=NULL; p_struct->defaultValue=NULL; p_struct->choices=NULL; p_struct->internalIntValue=0; p_struct->internalFloatValue=0; p_struct->runtimeFlags=0; /* virtual functions */ return p_struct; }
GWEN_GUI_CPROGRESS *GWEN_Gui_CProgress_new(GWEN_GUI *gui, uint32_t id, uint32_t progressFlags, const char *title, const char *text, uint64_t total) { GWEN_GUI_CPROGRESS *cp; GWEN_NEW_OBJECT(GWEN_GUI_CPROGRESS, cp); GWEN_LIST_INIT(GWEN_GUI_CPROGRESS, cp); cp->gui=gui; cp->id=id; cp->startTime=time(0); cp->flags=progressFlags; if (title) cp->title=strdup(title); if (text) cp->text=strdup(text); cp->total=total; cp->logBuf=GWEN_Buffer_new(0, 256, 0, 1); if (!(cp->flags & GWEN_GUI_PROGRESS_DELAY)) { GWEN_Gui_StdPrintf(gui, stderr, "===== %s =====\n", title); cp->shown=1; } return cp; }
GWEN_TLV *GWEN_TLV_new(void) { GWEN_TLV *tlv; GWEN_NEW_OBJECT(GWEN_TLV, tlv); GWEN_LIST_INIT(GWEN_TLV, tlv); return tlv; }
AB_VALUE *AB_Value_new(void) { AB_VALUE *v; GWEN_NEW_OBJECT(AB_VALUE, v); GWEN_LIST_INIT(AB_VALUE, v); mpq_init(v->value); return v; }
GWEN_TIME_TMPLCHAR *GWEN_TimeTmplChar_new(char c) { GWEN_TIME_TMPLCHAR *e; GWEN_NEW_OBJECT(GWEN_TIME_TMPLCHAR, e); GWEN_LIST_INIT(GWEN_TIME_TMPLCHAR, e); e->character=c; return e; }
TYPEMAKER2_INLINE *Typemaker2_Inline_new() { TYPEMAKER2_INLINE *th; GWEN_NEW_OBJECT(TYPEMAKER2_INLINE, th); th->refCount=1; GWEN_LIST_INIT(TYPEMAKER2_INLINE, th); return th; }
GWEN_URL *GWEN_Url_new(void) { GWEN_URL *st; GWEN_NEW_OBJECT(GWEN_URL, st) st->_usage=1; GWEN_LIST_INIT(GWEN_URL, st) st->vars=GWEN_DB_Group_new("vars"); return st; }
AB_BANKINFO *AB_BankInfo_new(void) { AB_BANKINFO *st; GWEN_NEW_OBJECT(AB_BANKINFO, st) st->_usage=1; GWEN_LIST_INIT(AB_BANKINFO, st) st->services=AB_BankInfoService_List_new(); return st; }
GWEN_MULTICACHE_TYPE *GWEN_MultiCache_Type_new(GWEN_MULTICACHE *mc) { GWEN_MULTICACHE_TYPE *ct; GWEN_NEW_OBJECT(GWEN_MULTICACHE_TYPE, ct); GWEN_LIST_INIT(GWEN_MULTICACHE_TYPE, ct); ct->_refCount=1; ct->multiCache=mc; ct->entryMap=GWEN_MultiCache_Entry_IdMap_new(GWEN_IdMapAlgo_Hex4); return ct; }
GWEN_MULTICACHE_ENTRY *GWEN_MultiCache_Entry_new(GWEN_MULTICACHE_TYPE *ct, uint32_t id, void *p, uint32_t i) { GWEN_MULTICACHE_ENTRY *e; GWEN_NEW_OBJECT(GWEN_MULTICACHE_ENTRY, e); GWEN_LIST_INIT(GWEN_MULTICACHE_ENTRY, e); e->cacheType=ct; e->id=id; e->dataPtr=p; e->dataSize=i; return e; }
AB_IMEXPORTER_ACCOUNTINFO *AB_ImExporterAccountInfo_new(void) { AB_IMEXPORTER_ACCOUNTINFO *iea; GWEN_NEW_OBJECT(AB_IMEXPORTER_ACCOUNTINFO, iea); GWEN_LIST_INIT(AB_IMEXPORTER_ACCOUNTINFO, iea); iea->transactions=AB_Transaction_List_new(); iea->standingOrders=AB_Transaction_List_new(); iea->accStatusList=AB_AccountStatus_List_new(); iea->transfers=AB_Transaction_List_new(); iea->datedTransfers=AB_Transaction_List_new(); iea->notedTransactions=AB_Transaction_List_new(); return iea; }
GWEN_XMLNODE *GWEN_XMLNode_new(GWEN_XMLNODE_TYPE t, const char *data) { GWEN_XMLNODE *n; GWEN_NEW_OBJECT(GWEN_XMLNODE, n); GWEN_LIST_INIT(GWEN_XMLNODE, n); n->type=t; n->children=GWEN_XMLNode_List_new(); n->headers=GWEN_XMLNode_List_new(); if (data) n->data=GWEN_Memory_strdup(data); n->nameSpaces=GWEN_XMLNode_NameSpace_List_new(); return n; }
AB_IMEXPORTER *AB_ImExporter_new(AB_BANKING *ab, const char *name){ AB_IMEXPORTER *ie; assert(ab); assert(name); GWEN_NEW_OBJECT(AB_IMEXPORTER, ie); GWEN_LIST_INIT(AB_IMEXPORTER, ie); GWEN_INHERIT_INIT(AB_IMEXPORTER, ie); ie->banking=ab; ie->name=strdup(name); return ie; }
AB_TRANSACTION_LIMITS *AB_TransactionLimits_new(void) { AB_TRANSACTION_LIMITS *st; GWEN_NEW_OBJECT(AB_TRANSACTION_LIMITS, st) st->_usage=1; GWEN_LIST_INIT(AB_TRANSACTION_LIMITS, st) st->valuesTextKey=GWEN_StringList_new(); st->textKeys=AB_TextKeyDescr_List_new(); st->valuesCycleWeek=GWEN_StringList_new(); st->valuesCycleMonth=GWEN_StringList_new(); st->valuesExecutionDayWeek=GWEN_StringList_new(); st->valuesExecutionDayMonth=GWEN_StringList_new(); return st; }
GWEN_XMLNODE_NAMESPACE *GWEN_XMLNode_NameSpace_new(const char *name, const char *url) { GWEN_XMLNODE_NAMESPACE *ns; GWEN_NEW_OBJECT(GWEN_XMLNODE_NAMESPACE, ns); GWEN_LIST_INIT(GWEN_XMLNODE_NAMESPACE, ns); if (name) ns->name=GWEN_Memory_strdup(name); if (url) ns->url=GWEN_Memory_strdup(url); return ns; }
AB_JOBQUEUE *AB_JobQueue_new(void) { AB_JOBQUEUE *p_struct; GWEN_NEW_OBJECT(AB_JOBQUEUE, p_struct) p_struct->_refCount=1; GWEN_INHERIT_INIT(AB_JOBQUEUE, p_struct) GWEN_LIST_INIT(AB_JOBQUEUE, p_struct) /* members */ p_struct->jobList=AB_Job_List2_new(); p_struct->jobType=AB_Job_TypeUnknown; /* virtual functions */ return p_struct; }
TEST *Test_new() { TEST *p_struct; GWEN_NEW_OBJECT(TEST, p_struct) GWEN_LIST_INIT(TEST, p_struct) /* members */ p_struct->id=NULL; p_struct->prefix=NULL; p_struct->type=NULL; return p_struct; }
AH_RESULT *AH_Result_new(int code, const char *text, const char *ref, const char *param, int isMsgResult){ AH_RESULT *r; GWEN_NEW_OBJECT(AH_RESULT, r); GWEN_LIST_INIT(AH_RESULT, r); r->code=code; if (text) r->text=strdup(text); if (ref) r->ref=strdup(ref); if (param) r->param=strdup(param); r->isMsgResult=isMsgResult; return r; }
GWEN_INHERITDATA *GWEN_InheritData_new(const char *t, uint32_t id, void *data, void *baseData, GWEN_INHERIT_FREEDATAFN freeDataFn) { GWEN_INHERITDATA *d; assert(t); GWEN_NEW_OBJECT(GWEN_INHERITDATA, d); GWEN_LIST_INIT(GWEN_INHERITDATA, d); d->typeName=strdup(t); d->id=id; d->data=data; d->baseData=baseData; d->freeDataFn=freeDataFn; DBG_VERBOUS(GWEN_LOGDOMAIN, "Created inheritance for type \"%s\" (%08x)", t, id); return d; }
GWEN_FSLOCK *GWEN_FSLock_new(const char *fname, GWEN_FSLOCK_TYPE t) { GWEN_FSLOCK *fl; GWEN_BUFFER *nbuf; const char *s; assert(fname); GWEN_NEW_OBJECT(GWEN_FSLOCK, fl); GWEN_LIST_INIT(GWEN_FSLOCK, fl); fl->usage=1; fl->entryName=strdup(fname); switch(t) { case GWEN_FSLock_TypeFile: s=".lck"; break; case GWEN_FSLock_TypeDir: s="/.dir.lck"; break; default: DBG_ERROR(GWEN_LOGDOMAIN, "Unknown log type %d", t); abort(); } /* switch */ nbuf=GWEN_Buffer_new(0, 256, 0, 1); GWEN_Buffer_AppendString(nbuf, fname); GWEN_Buffer_AppendString(nbuf, s); fl->baseLockFilename=strdup(GWEN_Buffer_GetStart(nbuf)); if (GWEN_FSLock__UnifyLockFileName(nbuf)) { DBG_ERROR(GWEN_LOGDOMAIN, "Could not create unique lockfile name"); GWEN_Buffer_free(nbuf); abort(); } fl->uniqueLockFilename=strdup(GWEN_Buffer_GetStart(nbuf)); GWEN_Buffer_free(nbuf); return fl; }
AB_PROVIDER *AB_Provider_new(AB_BANKING *ab, const char *name){ AB_PROVIDER *pro; GWEN_BUFFER *nbuf; assert(ab); assert(name); nbuf=GWEN_Buffer_new(0, 256, 0, 1); if (GWEN_Text_EscapeToBufferTolerant(name, nbuf)) { DBG_ERROR(AQBANKING_LOGDOMAIN, "Bad backend name, aborting."); GWEN_Buffer_free(nbuf); abort(); } else { char *s; s=GWEN_Buffer_GetStart(nbuf); while(*s) { *s=tolower(*s); s++; } } GWEN_NEW_OBJECT(AB_PROVIDER, pro); pro->usage=1; GWEN_INHERIT_INIT(AB_PROVIDER, pro); GWEN_LIST_INIT(AB_PROVIDER, pro); pro->banking=ab; pro->name=strdup(name); pro->escName=strdup(GWEN_Buffer_GetStart(nbuf)); GWEN_Buffer_free(nbuf); return pro; }