*list = New(alist(8, not_owned_by_alist));
}
param = get_pool_memory(PM_NAME);
- Mmsg(param, "%s", value);
+ pm_strcpy(param, value);
(*list)->append(param);
DMsg2(DDEBUG, "add param: %s=%s\n", name, param);
return true;
return false;
}
-bool parse_param_add_str(alist &list, const char *pname, const char *name, const char *value)
-{
- POOLMEM *param;
-
- if (bstrcasecmp(name, pname)){
- param = get_pool_memory(PM_NAME);
- pm_strcpy(param, value);
- list.append(param);
- DMsg2(DDEBUG, "add param: %s=%s\n", name, param);
- return true;
- }
- return false;
-}
-
/**
* @brief Scans for `prefix` in `cmd`, when match copy remaining to `param`.
*
buf.c_str()[msglen + 1] = '\0';
}
}
+
+namespace pluginlib
+{
+ /**
+ * @brief Render and add a parameter for string value to alist.
+ * In this case POOL_MEM is created.
+ *
+ * @param list a list to append
+ * @param pname a name of the parameter to compare
+ * @param name a name of the parameter from parameter list
+ * @param value a value to render
+ * @return true if parameter was rendered
+ * @return false if it was not the parameter required
+ */
+ bool parse_param_add_str(alist &list, const char *pname, const char *name, const char *value)
+ {
+ if (bstrcasecmp(name, pname))
+ {
+ POOL_MEM *param = new POOL_MEM(PM_NAME);
+ pm_strcpy(*param, value);
+ list.append(param);
+ DMsg2(DDEBUG, "add param: %s=%s\n", name, (*param).c_str());
+ return true;
+ }
+
+ return false;
+ }
+
+} // namespace pluginlib
bool setup_param(POOL_MEM ¶m, const char *pname, const char *name, const char *value);
bool parse_param_add_str(alist **list, const char *pname, const char *name, const char *value);
-bool parse_param_add_str(alist &list, const char *pname, const char *name, const char *value);
bool scan_parameter_str(const char * cmd, const char *prefix, POOL_MEM ¶m);
inline bool scan_parameter_str(const POOL_MEM &cmd, const char *prefix, POOL_MEM ¶m) { return scan_parameter_str(cmd.c_str(), prefix, param); }
void scan_and_terminate_str(POOL_MEM &buf, int msglen);
+namespace pluginlib
+{
+ bool parse_param_add_str(alist &list, const char *pname, const char *name, const char *value);
+} // namespace pluginlib
+
#endif /* _PLUGINLIB_H_ */
#include "pluginlib.h"
#include "unittests.h"
+#include "smartalist.h"
bFuncs *bfuncs;
bInfo *binfo;
ok(memcmp(ebuf.c_str(), testvect2[i].output, testvect2[i].len) == 0, testvect2[i].descr);
}
+ {
+ // debug_level = 800;
+ alist mylist(10, not_owned_by_alist);
+ bool status = pluginlib::parse_param_add_str(mylist, "test", "test", "value");
+ ok(status, "test parse_param_add_str");
+ rok(mylist.size() == 1, "test alist size after append");
+ delete (POOL_MEM*)mylist.get(0);
+ }
+
+ {
+ // debug_level = 800;
+ smart_alist<POOL_MEM> mylist;
+ bool status = pluginlib::parse_param_add_str(mylist, "test", "test", "othervalue");
+ ok(status, "test parse_param_add_str with smart_alist");
+ rok(mylist.size() == 1, "test alist size after append");
+ }
+
+ // {
+ // alist mylist(10, not_owned_by_alist);
+ // mylist.append((void*)10);
+ // mylist.append((void*)20);
+ // mylist.append((void*)30);
+ // ok(mylist.size() == 3, "test size");
+ // uint64_t *a;
+ // int i;
+ // foreach_alist_index(i, a, &mylist)
+ // {
+ // printf("i:%d a:%ld\n", i, (uint64_t)a);
+ // mylist.remove(i);
+ // i--;
+ // }
+ // }
+
return report();
}