/* ------- code automatically created by ../scripts/adms_build_object.pl -------------- */ #include #include inline void adms_path_free(p_path mypath) { if(!mypath) return; {p_slist l=mypath->_token;for(;l;l=l->next) free(l->data);} adms_slist_free(mypath->_token); free(mypath->_value); adms_global_increment_nbpathdestroy(); free(mypath); } int adms_path_cmp (p_path mypath,p_path refpath) { int status; status = ( !!strcmp(adms_path_valueof_value (mypath),adms_path_valueof_value (refpath)) ); return status; } p_path adms_path_new(const char* myvalue) { p_path mynewpath=(p_path) calloc(1,(size_t)sizeof(t_path)); adms_global_increment_nbpathnew(); mynewpath->_adms._datatypename=adms_adms_enumeration_datatypename_path; mynewpath->_adms._seen=adms_adms_enumeration_seen_no; mynewpath->_value_isdefault=-1; adms_path_valueto_value (mynewpath,myvalue); mynewpath->_value_isdefault=1; mynewpath->_token_isdefault=-1; return mynewpath; } p_adms adms_path_new_impl (p_adms arguments[]) { p_path mynewpath; const char* myvalue=(char*)arguments[0]; mynewpath=adms_path_new(myvalue); return adms_adms(mynewpath); } /*$1*/ char*adms_path_uid (p_path mynewpath) { char*myuid=NULL; adms_strconcat2(&myuid,strdup(mynewpath->_value)); return myuid; } inline void adms_path_valueto_value (p_path mypath,const char* _value) { if(mypath->_value_isdefault!=-1) free(mypath->_value); mypath->_value=adms_constclone(_value); mypath->_value_isdefault=0; } inline void adms_path_valueto_token (p_path mypath,p_slist _token) { mypath->_token=_token; mypath->_token_isdefault=0; } void adms_path_list_token_prepend_by_id (p_path mymypath,char* mytoken) { adms_slist_push(&adms_path_valueof_token(mymypath),adms_adms(mytoken)); } void adms_path_list_token_prepend_once_or_ignore (p_path mymypath,char* mytoken) { if(!adms_slist_find(adms_path_valueof_token(mymypath),adms_adms(mytoken))) adms_slist_push(&adms_path_valueof_token(mymypath),adms_adms(mytoken)); }