Skip to content
Snippets Groups Projects
Commit 8d602fe3 authored by Ruonan Wang's avatar Ruonan Wang Committed by Atkins, Charles Vernon
Browse files

fixed a few other minor problems for PR #84

parent 89abf31d
No related branches found
No related tags found
1 merge request!84Added all DataMan plugins
......@@ -63,9 +63,9 @@ void DataMan::add_stream(json p_jmsg)
man->init(p_jmsg);
this->add_next(method, man);
}
if (p_jmsg["compress_method"].is_string())
if (p_jmsg["compression_method"].is_string())
{
add_man_to_path(p_jmsg["compress_method"], method);
add_man_to_path(p_jmsg["compression_method"], method, p_jmsg);
}
}
......
......@@ -282,13 +282,15 @@ bool DataManBase::auto_transform(const void *p_in, void *p_out, json &p_jmsg)
}
}
void DataManBase::add_man_to_path(std::string p_new, std::string p_path)
void DataManBase::add_man_to_path(std::string p_new, std::string p_path,
json p_jmsg)
{
if (m_next.count(p_path) > 0)
{
auto man = get_man(p_new);
if (man)
{
man->init(p_jmsg);
man->add_next(p_path, m_next[p_path]);
this->add_next(p_new, man);
this->remove_next(p_path);
......
......@@ -74,7 +74,7 @@ public:
protected:
bool auto_transform(const void *p_in, void *p_out, json &p_jmsg);
void add_man_to_path(std::string p_new, std::string p_path);
void add_man_to_path(std::string p_new, std::string p_path, json p_jmsg);
virtual int flush_next();
......
......@@ -52,7 +52,7 @@ int StreamMan::init(json p_jmsg)
m_tolerance.assign(m_num_channels, 0);
m_priority.assign(m_num_channels, 100);
if (p_jmsg["num_channels"].is_number_integer)
if (p_jmsg["num_channels"].is_number_integer())
{
m_num_channels = p_jmsg["num_channels"].get<int>();
}
......
......@@ -12,7 +12,14 @@
#include <zfp.h>
int ZfpMan::init(json p_jmsg) { return 0; }
int ZfpMan::init(json p_jmsg)
{
if (p_jmsg["compression_rate"].is_number())
{
m_compression_rate = p_jmsg["compression_rate"].get<double>();
}
return 0;
}
int ZfpMan::put(const void *p_data, json p_jmsg)
{
......@@ -21,9 +28,9 @@ int ZfpMan::put(const void *p_data, json p_jmsg)
void *compressed_data = NULL;
if (check_json(p_jmsg, {"doid", "var", "dtype", "putshape"}, "ZfpMan"))
{
if (p_jmsg["compression_rate"] == nullptr)
if (not p_jmsg["compression_rate"].is_number())
{
p_jmsg["compression_rate"] = 4;
p_jmsg["compression_rate"] = m_compression_rate;
}
compressed_data = compress(const_cast<void *>(p_data), p_jmsg);
}
......
......@@ -26,6 +26,8 @@ public:
void *decompress(void *p_data, json p_jmsg);
virtual void transform(const void *p_in, void *p_out, json &p_jmsg);
std::string name() { return "ZfpMan"; }
private:
double m_compression_rate = 8;
};
extern "C" DataManBase *getMan() { return new ZfpMan; }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment