Exemplo n.º 1
0
void
madara::knowledge::containers::NativeDoubleVector::set_name (
  const std::string & var_name,
  Variables & knowledge, int size)
{
  if (context_ != knowledge.get_context () || name_ != var_name)
  {
    context_ = knowledge.get_context ();

    ContextGuard context_guard (*context_);
    MADARA_GUARD_TYPE guard (mutex_);

    madara_logger_ptr_log (logger::global_logger.get (),
      logger::LOG_MAJOR,
      "NativeDoubleVector::set_name: setting name to %s\n",
      var_name.c_str ());

    name_ = var_name;
    
    vector_ = knowledge.get_ref (var_name, settings_);

    if (size > 0)
      resize (size_t (size));
  }
}
Exemplo n.º 2
0
madara::knowledge::containers::FlexMap::FlexMap(const std::string& name,
    Variables& knowledge, const KnowledgeUpdateSettings& settings,
    const std::string& delimiter)
  : BaseContainer(name, settings),
    context_(knowledge.get_context()),
    delimiter_(delimiter)
{
}
Exemplo n.º 3
0
void
madara::knowledge::containers::IntegerVector::set_name (
  const std::string & var_name,
  Variables & knowledge, int size)
{
  if (context_ != knowledge.get_context () || name_ != var_name)
  {
    context_ = knowledge.get_context ();

    ContextGuard context_guard (*context_);
    MADARA_GUARD_TYPE guard (mutex_);

    name_ = var_name;

    vector_.clear ();
    resize (size);
  }
}
Exemplo n.º 4
0
madara::knowledge::containers::IntegerVector::IntegerVector (
  const std::string & name,
  Variables & knowledge,
  int size,
  bool delete_vars,
  const KnowledgeUpdateSettings & settings,
  const std::string & delimiter)
  : BaseContainer (name, settings), context_ (knowledge.get_context ()),
  delimiter_ (delimiter)
{
  size_ = get_size_ref ();
  resize (size, delete_vars);
}
Exemplo n.º 5
0
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();
    }
  }
}
madara::knowledge::containers::NativeDoubleVectorStaged::
    NativeDoubleVectorStaged(const std::string& name, Variables& knowledge,
        int size, const KnowledgeUpdateSettings& settings)
  : context_(knowledge.get_context()), has_changed_(false)
{
  madara_logger_ptr_log(logger::global_logger.get(), logger::LOG_MAJOR,
      "NativeDoubleVectorStaged::constructor called for %s[%d]\n", name.c_str(),
      size);

  vector_ = knowledge.get_ref(name, settings);
  if (size >= 0)
  {
    resize(size);
  }
}