int opcode_next(int program_counter, char *buf) { int pcounter = 0; int local_var = 0; int loop_status = 0; /* Add End Of Loop */ add_end(program_counter); /* Find For Entry */ loop_status = find_entry(program_counter); /* loop_status != INVALID_LOOP means Legal Loop */ if (loop_status != INVALID_LOOP) { /* Update Variable */ local_var = find_variable(buf) + 1; update_variable(buf, local_var); /* Change Program Flow */ pcounter = loop_status - 1; } else { pcounter = program_counter + 1; } return pcounter; }
int setenv(const char *name, const char *value, int overwrite) { status_t status; if (name == NULL || name[0] == '\0' || strchr(name, '=') != NULL) { errno = B_BAD_VALUE; return -1; } lock_variables(); status = update_variable(name, strlen(name), value, overwrite); unlock_variables(); RETURN_AND_SET_ERRNO(status); }
void madara::knowledge::containers::FlexMap::set_quality( uint32_t quality, const KnowledgeReferenceSettings& settings) { if (context_) { ContextGuard context_guard(*context_); MADARA_GUARD_TYPE guard(mutex_); if (!variable_.is_valid()) { update_variable(); } context_->set_quality(name_, quality, true, settings); } }
int putenv(const char *string) { char *value = strchr(string, '='); status_t status; if (value == NULL) { errno = B_BAD_VALUE; return -1; } lock_variables(); status = update_variable(string, value - string, value + 1, true); unlock_variables(); RETURN_AND_SET_ERRNO(status); }
/* Let Function */ int opcode_let(char *buf) { int status = 0; int res = 0; char *name; char *value; if(strstr(buf, "=") != NULL) { name = strtok (buf, "="); value = strtok (NULL, " "); str_addnewline(value); res = eval_exp(value); update_variable(name, res); } else status = 1; return status; }
int madara::knowledge::containers::FlexMap::set(double value) { int result = -1; if (context_ && name_ != "") { ContextGuard context_guard(*context_); MADARA_GUARD_TYPE guard(mutex_); if (!variable_.is_valid()) { update_variable(); } result = context_->set(variable_, value, settings_); } return result; }
int madara::knowledge::containers::FlexMap::read_file( const std::string& filename) { int result = -1; if (context_ && name_ != "") { ContextGuard context_guard(*context_); MADARA_GUARD_TYPE guard(mutex_); if (!variable_.is_valid()) { update_variable(); } result = context_->read_file(variable_, filename, settings_); } return result; }
int madara::knowledge::containers::FlexMap::set_index( size_t index, double value, const KnowledgeUpdateSettings& settings) { int result = -1; if (context_ && name_ != "") { ContextGuard context_guard(*context_); MADARA_GUARD_TYPE guard(mutex_); if (!variable_.is_valid()) { update_variable(); } result = context_->set_index(variable_, index, value, settings); } return result; }
int madara::knowledge::containers::FlexMap::set( const std::vector<KnowledgeRecord::Integer>& value, const KnowledgeUpdateSettings& settings) { int result = -1; if (context_ && name_ != "") { ContextGuard context_guard(*context_); MADARA_GUARD_TYPE guard(mutex_); if (!variable_.is_valid()) { update_variable(); } result = context_->set(variable_, value, settings); } return result; }
void madara::knowledge::containers::FlexMap::set_name( const std::string& var_name, Variables& knowledge) { if (context_ != knowledge.get_context() || name_ != var_name) { context_ = knowledge.get_context(); ContextGuard context_guard(*context_); MADARA_GUARD_TYPE guard(mutex_); name_ = var_name; if (context_->exists(var_name, settings_)) { update_variable(); } else { // reset variable reference variable_ = VariableReference(); } } }