bool Tree::SerializeToHdfString(std::string *serialized, bool only_nodes_with_value) const { if (!serialized) { return false; } NEOERR *err; HDF *hdf; err = hdf_init(&hdf); if (err != STATUS_OK) { nerr_ignore(&err); return false; } if (!SerializeToHdfInternal(hdf, only_nodes_with_value)) { hdf_destroy(&hdf); return false; } char *str; err = hdf_write_string(hdf, &str); if (err != STATUS_OK) { nerr_ignore(&err); hdf_destroy(&hdf); return false; } serialized->assign(str); hdf_destroy(&hdf); free(str); return true; }
const char *Hdf::toString() const { if (m_dump) { free(m_dump); m_dump = nullptr; } CheckNeoError(hdf_write_string(getRaw(), &m_dump)); return m_dump; }
static jstring hdf_write_jstring(HDF *node) { char *buffer = NULL; if (node) { hdf_write_string(node, &buffer); } jstring jstrBuffer = (*gCallbackEnv)->NewStringUTF(gCallbackEnv, buffer); return jstrBuffer; }
static PyObject * p_hdf_write_string (PyObject *self, PyObject *args) { HDFObject *ho = (HDFObject *)self; PyObject *rv; NEOERR *err; char *s = NULL; err = hdf_write_string (ho->data, &s); if (err) return p_neo_error(err); rv = Py_BuildValue ("s", s); if (s) free(s); return rv; }
JNIEXPORT jstring JNICALL Java_org_clearsilver_HDF__1writeString( JNIEnv *env, jclass objClass, jint hdf_obj_ptr) { HDF *hdf = (HDF *)hdf_obj_ptr; NEOERR *err; char *output = NULL; jstring retval = NULL; err = hdf_write_string(hdf, &output); if (err != STATUS_OK) { jNeoErr(env, err); } else if (output) { retval = (*env)->NewStringUTF(env, output); free(output); } return retval; }
NEOERR* oms_users_data_add(CGI *cgi, HASH *dbh, HASH *evth, session_t *ses) { mevent_t *evt = (mevent_t*)hash_lookup(evth, "aic"); char *aname, *pname, *email; int cost; NEOERR *err; APP_CHECK_ADMIN(); HDF_GET_STR_IDENT(cgi->hdf, PRE_COOKIE".aname", pname); HDF_GET_STR(cgi->hdf, PRE_QUERY".aname", aname); HDF_GET_STR(cgi->hdf, PRE_QUERY".email", email); LEGAL_CK_ANAME(pname); LEGAL_CK_ANAME(aname); LEGAL_CK_EMAIL(email); /* * check */ int state = hdf_get_int_value(evt->hdfrcv, "state", LCS_ST_FREE); if (state <= LCS_ST_FREE) return nerr_raise(LERR_NEEDUP, "%s want to add users %s", pname, aname); else if (state >= LCS_ST_VIP) goto add; /* * chargeback */ cost = hdf_get_int_value(g_cfg, "Cost.account", 0); evt = (mevent_t*)hash_lookup(evth, "bank"); hdf_set_value(evt->hdfsnd, "aname", pname); hdf_set_int_value(evt->hdfsnd, "btype", BANK_OP_ADDACCOUNT); hdf_set_int_value(evt->hdfsnd, "fee", cost); hdf_set_value(evt->hdfsnd, "account", aname); MEVENT_TRIGGER(evt, pname, REQ_CMD_BANK_ADDBILL, FLAGS_SYNC); add: /* * add */ evt = (mevent_t*)hash_lookup(evth, "aic"); hdf_copy(evt->hdfsnd, NULL, hdf_get_obj(cgi->hdf, PRE_QUERY)); hdf_set_value(evt->hdfsnd, "pname", pname); hdf_set_value(evt->hdfsnd, "aname", aname); hdf_set_int_value(evt->hdfsnd, "state", hdf_get_int_value(evt->hdfrcv, "state", LCS_ST_FREE)); hdf_set_value(evt->hdfsnd, "masn", aname); if (PROCESS_NOK(mevent_trigger(evt, aname, REQ_CMD_APPNEW, FLAGS_SYNC))) { char *zpa = NULL; hdf_write_string(evt->hdfrcv, &zpa); mtc_foo("add %s failure %d %s", aname, evt->errcode, zpa); SAFE_FREE(zpa); if (state < LCS_ST_VIP) { /* * roll back */ evt = (mevent_t*)hash_lookup(evth, "bank"); hdf_set_value(evt->hdfsnd, "aname", pname); hdf_set_int_value(evt->hdfsnd, "btype", BANK_OP_ROLLBACK); hdf_set_int_value(evt->hdfsnd, "fee", -cost); hdf_set_valuef(evt->hdfsnd, "remark = 客服帐号 %s 创建失败", aname); if (PROCESS_NOK(mevent_trigger(evt, pname, REQ_CMD_BANK_ADDBILL, FLAGS_SYNC))) { /* * ATTENTION we need pay back to customer manually */ hdf_write_string(evt->hdfrcv, &zpa); mtc_foo("rollback %s failure %d %s", aname, evt->errcode, zpa); SAFE_FREE(zpa); } } return nerr_raise(evt->errcode, "add %s failure %d", aname, evt->errcode); } return STATUS_OK; }