예제 #1
0
void soap_dom_attribute::unlink()
{ soap_unlink(soap, this);
  soap_unlink(soap, nstr);
  soap_unlink(soap, name);
  soap_unlink(soap, data);
  soap_unlink(soap, wide);
  if (next)
    next->unlink();
}
예제 #2
0
void soap_dom_element::unlink()
{ soap_unlink(soap, this);
  soap_unlink(soap, nstr);
  soap_unlink(soap, name);
  soap_unlink(soap, data);
  soap_unlink(soap, wide);
  if (elts)
    elts->unlink();
  if (atts)
    elts->unlink();
  if (next)
    next->unlink();
  node = NULL;
  type = 0;
}
예제 #3
0
struct value& params::operator[](int n)
{ if (!param)
  { __size = n + 1;
    param = (struct param*)soap_malloc(soap, __size * sizeof(struct param));
    for (int i = 0; i < __size; i++)
      soap_default_param(soap, &param[i]);
  }
  else if (__size <= n)
  { int oldsize = __size;
    __size = n + 1;
    struct param *newparam = (struct param*)soap_malloc(soap, __size * sizeof(struct param));
    int i;
    for (i = 0; i < oldsize; i++)
      newparam[i] = param[i];
    for (; i < __size; i++)
      soap_default_param(soap, &newparam[i]);
    soap_unlink(soap, param);
    free(param);
    param = newparam;
  }
  return param[n].value;
}
예제 #4
0
struct value& _array::operator[](int n)
{ if (!data.value)
  { data.__size = n + 1;
    data.value = (struct value*)soap_malloc(soap, data.__size * sizeof(struct value));
    for (int i = 0; i < data.__size; i++)
      soap_default_value(soap, &data.value[i]);
  }
  else if (data.__size <= n)
  { int oldsize = data.__size;
    data.__size = n + 1;
    struct value *newvalue = (struct value*)soap_malloc(soap, data.__size * sizeof(struct value));
    int i;
    for (i = 0; i < oldsize; i++)
      newvalue[i] = data.value[i];
    for (; i < data.__size; i++)
      soap_default_value(soap, &newvalue[i]);
    soap_unlink(soap, data.value);
    free(data.value);
    data.value = newvalue;
  }
  return data.value[n];
}
예제 #5
0
struct value& _struct::operator[](const char *s)
{ int i = 0;
  if (!member)
  { __size = 1;
    member = (struct member*)soap_malloc(soap, sizeof(struct member));
  }
  else
  { for (i = 0; i < __size; i++)
    { if (!strcmp(member[i].name, s))
        return member[i].value;
    }
    __size++;
    struct member *newmember = (struct member*)soap_malloc(soap, __size * sizeof(struct member));
    for (i = 0; i < __size - 1; i++)
      newmember[i] = member[i];
    soap_unlink(soap, member);
    free(member);
    member = newmember;
  }
  member[i].name = soap_strdup(soap, s);
  soap_default_value(soap, &member[i].value);
  return member[i].value;
}
예제 #6
0
ns1__SOAPService::~ns1__SOAPService()
{
	soap_unlink(soap, this); // not required, but just to make sure if someone calls delete on this
}
예제 #7
0
파일: varparam.cpp 프로젝트: 119-org/TND
xsd__anyType::~xsd__anyType()
{ soap_unlink(soap, this);	// Let gSOAP not deallocate this object again if this object was explicitly removed
}