INLINE_STATIC void switch_to_line (int line) { int sz = CURRENT_PROGRAM_SIZE - last_size_generated; ADDRESS_TYPE s; unsigned char *p; if (sz) { s = line_being_generated; last_size_generated += sz; while (sz > 255) { p = (unsigned char *)allocate_in_mem_block(A_LINENUMBERS, sizeof(ADDRESS_TYPE) + 1); *p++ = 255; #if !defined(USE_32BIT_ADDRESSES) STORE_SHORT(p, s); #else STORE_INT(p, s); #endif sz -= 255; } p = (unsigned char *)allocate_in_mem_block(A_LINENUMBERS, sizeof(ADDRESS_TYPE) + 1); *p++ = sz; #if !defined(USE_32BIT_ADDRESSES) STORE_SHORT(p, s); #else STORE_INT(p, s); #endif } line_being_generated = line; }
void offsetGen(int nbIterations, int *offsets) { int i; int sum = 0; for (i = 0; i < nbIterations; i++) { int modulo; int value = 2 * sum + 1; STORE_INT(&offsets[i], &value); sum += LOAD_INT(&offsets[i]); modulo = LOAD_INT(&offsets[i]) % 32; STORE_INT(&offsets[i], &modulo); } }
/* * Store a 4 byte number. It is stored in such a way as to be sure * that correct byte order is used, regardless of machine architecture. */ static void ins_int P1(int, l) { if (prog_code + 4 > prog_code_max) { struct mem_block *mbp = &mem_block[current_block]; UPDATE_PROGRAM_SIZE; realloc_mem_block(mbp, mbp->current_size * 2); prog_code = mbp->block + mbp->current_size; prog_code_max = mbp->block + mbp->max_size; } STORE_INT(prog_code, l); }
/* * Store a 4 byte number. It is stored in such a way as to be sure * that correct byte order is used, regardless of machine architecture. */ static void ins_int (long l) { if (prog_code + SIZEOF_LONG > prog_code_max) { mem_block_t *mbp = &mem_block[A_PROGRAM]; UPDATE_PROGRAM_SIZE; realloc_mem_block(mbp); prog_code = mbp->block + mbp->current_size; prog_code_max = mbp->block + mbp->max_size; } STORE_INT(prog_code, l); }
void SlackRTM::handlePayloadReceived(const std::string &payload) { Json::Value d; Json::CharReaderBuilder rbuilder; std::unique_ptr<Json::CharReader> const reader(rbuilder.newCharReader()); if (!reader->parse(payload.c_str(), payload.c_str() + payload.size(), &d, nullptr)) { LOG4CXX_ERROR(logger, "Error while parsing JSON"); LOG4CXX_ERROR(logger, payload); return; } STORE_STRING(d, type); if (type == "message") { STORE_STRING(d, channel); STORE_STRING(d, text); STORE_STRING(d, ts); STORE_STRING_OPTIONAL(d, subtype); STORE_STRING_OPTIONAL(d, purpose); Json::Value &attachments = d["attachments"]; if (attachments.isArray()) { for (unsigned i = 0; i < attachments.size(); i++) { STORE_STRING_OPTIONAL(attachments[i], fallback); if (!fallback.empty()) { text += fallback; } } } if (subtype == "bot_message") { STORE_STRING(d, bot_id); onMessageReceived(channel, bot_id, text, ts); } else if (subtype == "me_message") { text = "/me " + text; STORE_STRING(d, user); onMessageReceived(channel, user, text, ts); } else if (subtype == "channel_join") { } else if (!purpose.empty()) { } else { STORE_STRING(d, user); onMessageReceived(channel, user, text, ts); } } else if (type == "channel_joined" || type == "channel_created") { std::map<std::string, SlackChannelInfo> &channels = m_idManager->getChannels(); SlackAPI::getSlackChannelInfo(NULL, true, d, payload, channels); } else if (type == "error") { GET_OBJECT(d, error); STORE_INT(error, code); if (code == 1) { LOG4CXX_INFO(logger, "Reconnecting to Slack network"); m_pingTimer->stop(); m_client->disconnectServer(); start(); } } }
int AB_ImExporterAccountInfo_toDb(const AB_IMEXPORTER_ACCOUNTINFO *iea, GWEN_DB_NODE *db){ assert(iea); #define STORE_CHAR(NAME) \ if (iea->NAME) \ GWEN_DB_SetCharValue(db, GWEN_DB_FLAGS_OVERWRITE_VARS, \ __STRING(NAME), iea->NAME) #define STORE_INT(NAME) \ GWEN_DB_SetIntValue(db, GWEN_DB_FLAGS_OVERWRITE_VARS, \ __STRING(NAME), iea->NAME) STORE_CHAR(bankCode); STORE_CHAR(bankName); STORE_CHAR(accountNumber); STORE_CHAR(accountName); STORE_CHAR(iban); STORE_CHAR(bic); STORE_CHAR(owner); STORE_CHAR(currency); STORE_CHAR(description); STORE_INT(accountType); STORE_INT(accountId); #undef STORE_CHAR #undef STORE_INT if (iea->accStatusList) { AB_ACCOUNT_STATUS *ast; ast=AB_AccountStatus_List_First(iea->accStatusList); if (ast) { GWEN_DB_NODE *dbG; dbG=GWEN_DB_GetGroup(db, GWEN_DB_FLAGS_OVERWRITE_GROUPS, "statusList"); assert(dbG); while(ast) { GWEN_DB_NODE *dbT; dbT=GWEN_DB_GetGroup(dbG, GWEN_PATH_FLAGS_CREATE_GROUP, "status"); assert(dbT); if (AB_AccountStatus_toDb(ast, dbT)) return -1; ast=AB_AccountStatus_List_Next(ast); } } } if (iea->transactions) { AB_TRANSACTION *t; t=AB_Transaction_List_First(iea->transactions); if (t) { GWEN_DB_NODE *dbG; dbG=GWEN_DB_GetGroup(db, GWEN_DB_FLAGS_OVERWRITE_GROUPS, "transactionList"); assert(dbG); while(t) { GWEN_DB_NODE *dbT; dbT=GWEN_DB_GetGroup(dbG, GWEN_PATH_FLAGS_CREATE_GROUP, "transaction"); assert(dbT); if (AB_Transaction_toDb(t, dbT)) return -1; t=AB_Transaction_List_Next(t); } } } if (iea->standingOrders) { AB_TRANSACTION *t; t=AB_Transaction_List_First(iea->standingOrders); if (t) { GWEN_DB_NODE *dbG; dbG=GWEN_DB_GetGroup(db, GWEN_DB_FLAGS_OVERWRITE_GROUPS, "standingOrderList"); assert(dbG); while(t) { GWEN_DB_NODE *dbT; dbT=GWEN_DB_GetGroup(dbG, GWEN_PATH_FLAGS_CREATE_GROUP, "standingOrder"); assert(dbT); if (AB_Transaction_toDb(t, dbT)) return -1; t=AB_Transaction_List_Next(t); } } } if (iea->transfers) { AB_TRANSACTION *t; t=AB_Transaction_List_First(iea->transfers); if (t) { GWEN_DB_NODE *dbG; dbG=GWEN_DB_GetGroup(db, GWEN_DB_FLAGS_OVERWRITE_GROUPS, "transferList"); assert(dbG); while(t) { GWEN_DB_NODE *dbT; dbT=GWEN_DB_GetGroup(dbG, GWEN_PATH_FLAGS_CREATE_GROUP, "transfer"); assert(dbT); if (AB_Transaction_toDb(t, dbT)) return -1; t=AB_Transaction_List_Next(t); } } } if (iea->datedTransfers) { AB_TRANSACTION *t; t=AB_Transaction_List_First(iea->datedTransfers); if (t) { GWEN_DB_NODE *dbG; dbG=GWEN_DB_GetGroup(db, GWEN_DB_FLAGS_OVERWRITE_GROUPS, "datedTransferList"); assert(dbG); while(t) { GWEN_DB_NODE *dbT; dbT=GWEN_DB_GetGroup(dbG, GWEN_PATH_FLAGS_CREATE_GROUP, "datedTransfer"); assert(dbT); if (AB_Transaction_toDb(t, dbT)) return -1; t=AB_Transaction_List_Next(t); } } } if (iea->notedTransactions) { AB_TRANSACTION *t; t=AB_Transaction_List_First(iea->notedTransactions); if (t) { GWEN_DB_NODE *dbG; dbG=GWEN_DB_GetGroup(db, GWEN_DB_FLAGS_OVERWRITE_GROUPS, "notedTransactionList"); assert(dbG); while(t) { GWEN_DB_NODE *dbT; dbT=GWEN_DB_GetGroup(dbG, GWEN_PATH_FLAGS_CREATE_GROUP, "notedTransaction"); assert(dbT); if (AB_Transaction_toDb(t, dbT)) return -1; t=AB_Transaction_List_Next(t); } } } return 0; }