Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions include/caliper/common/Variant.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ class Variant
double to_double(bool* okptr = nullptr) const { return cali_variant_to_double(m_v, okptr); }
cali_attr_type to_attr_type(bool* okptr = nullptr) const { return cali_variant_to_type(m_v, okptr); }

const char* as_c_str() const { return static_cast<const char*>(m_v.value.unmanaged_const_ptr); }
uint64_t as_uint() const { return m_v.value.v_uint; }

std::string to_string() const;
Expand Down
5 changes: 2 additions & 3 deletions src/caliper/RegionFilter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -122,9 +122,8 @@ std::pair<std::shared_ptr<RegionFilter::Filter>, std::string> RegionFilter::pars

bool RegionFilter::match(const Variant& val, const Filter& filter)
{
// We assume val is a string. Variant strings aren't
// 0-terminated, hence the more complicated comparisons
const char* strp = static_cast<const char*>(val.data());
// We assume val is a string
const char* strp = val.as_c_str();

for (const auto& w : filter.startswith)
if (val.size() >= w.size() && w.compare(0, w.size(), strp, w.size()) == 0)
Expand Down
3 changes: 1 addition & 2 deletions src/caliper/cali.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -357,9 +357,8 @@ const char* cali_get_current_region_or(const char* alt)
return alt;

Entry e = c.get_path_node();

if (!e.empty() && e.value().type() == CALI_TYPE_STRING)
return static_cast<const char*>(e.value().data());
return e.value().as_c_str();

return alt;
}
Expand Down
2 changes: 1 addition & 1 deletion src/common/Attribute.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ const char* Attribute::name_c_str() const
{
for (const Node* node = m_node; node; node = node->parent())
if (node->attribute() == NAME_ATTR_ID)
return static_cast<const char*>(node->data().data());
return node->data().as_c_str();

return nullptr;
}
Expand Down
4 changes: 2 additions & 2 deletions src/common/Variant.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ std::string Variant::to_string() const
break;
case CALI_TYPE_STRING:
{
const char* str = static_cast<const char*>(data());
const char* str = as_c_str();
std::size_t len = size();

if (len && str[len - 1] == 0)
Expand Down Expand Up @@ -164,7 +164,7 @@ std::ostream& Variant::write_cali(std::ostream& os)
util::write_uint64(os, m_v.value.v_uint);
break;
case CALI_TYPE_STRING:
util::write_cali_esc_string(os, static_cast<const char*>(m_v.value.unmanaged_const_ptr), size());
util::write_cali_esc_string(os, as_c_str(), size());
break;
case CALI_TYPE_TYPE:
os << cali_type2string(m_v.value.v_type);
Expand Down
10 changes: 5 additions & 5 deletions src/reader/CaliperMetadataDB.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -168,12 +168,12 @@ struct CaliperMetadataDB::CaliperMetadataDBImpl {
// nodes merged from other MPI ranks have them already).
auto unit_it = m_attr_units.find(name);
if (unit_it != m_attr_units.end() && Entry(parent).get(m_unit_attr).empty()) {
Variant v_unit(static_cast<const char*>(unit_it->second.c_str()));
Variant v_unit(unit_it->second.c_str());
parent = get_or_create_node(m_unit_attr, v_unit, parent);
}
auto alias_it = m_attr_aliases.find(name);
if (alias_it != m_attr_aliases.end() && Entry(parent).get(m_alias_attr).empty()) {
Variant v_alias(static_cast<const char*>(alias_it->second.c_str()));
Variant v_alias(alias_it->second.c_str());
parent = get_or_create_node(m_alias_attr, v_alias, parent);
}

Expand Down Expand Up @@ -287,7 +287,7 @@ struct CaliperMetadataDB::CaliperMetadataDBImpl {
Variant v_data = node->data();

if (v_data.type() == CALI_TYPE_STRING)
v_data = make_string_variant(static_cast<const char*>(v_data.data()), v_data.size());
v_data = make_string_variant(v_data.as_c_str(), v_data.size());

return merge_node(node->id(), attr_node->id(), parent ? parent->id() : CALI_INV_ID, v_data);
}
Expand Down Expand Up @@ -354,7 +354,7 @@ struct CaliperMetadataDB::CaliperMetadataDBImpl {
Variant v_value(data);

if (v_value.type() == CALI_TYPE_STRING)
v_value = make_string_variant(static_cast<const char*>(data.data()), data.size());
v_value = make_string_variant(data.as_c_str(), data.size());

node = create_node(attr.id(), v_value, parent);
}
Expand Down Expand Up @@ -541,7 +541,7 @@ Node* CaliperMetadataDB::merge_node(

// if value is a string, find or insert it in string DB
if (v_data.type() == CALI_TYPE_STRING)
v_data = mP->make_string_variant(static_cast<const char*>(value.data()), value.size());
v_data = mP->make_string_variant(value.as_c_str(), value.size());

return mP->merge_node(node_id, attr_id, prnt_id, v_data, idmap);
}
Expand Down
4 changes: 2 additions & 2 deletions src/services/craypat/CrayPAT.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,13 +65,13 @@ class CrayPATBinding : public AnnotationBinding
void on_begin(Caliper*, const Attribute& attr, const Variant& value)
{
if (attr.is_nested() && attr.type() == CALI_TYPE_STRING)
PAT_region_push(static_cast<const char*>(value.data()));
PAT_region_push(value.as_c_str());
}

void on_end(Caliper*, const Attribute& attr, const Variant& value)
{
if (attr.is_nested() && attr.type() == CALI_TYPE_STRING)
PAT_region_pop(static_cast<const char*>(value.data()));
PAT_region_pop(value.as_c_str());
}

void initialize(Caliper*, Channel* channel)
Expand Down
2 changes: 1 addition & 1 deletion src/services/monitor/LoopMonitor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ class LoopMonitor
return true;

for (const std::string& s : target_loops)
if (strncmp(static_cast<const char*>(value.data()), s.data(), s.size()) == 0)
if (strncmp(value.as_c_str(), s.data(), s.size()) == 0)
return true;

return false;
Expand Down
4 changes: 2 additions & 2 deletions src/services/nvtx/Nvtx.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -120,13 +120,13 @@ class NvtxBinding : public AnnotationBinding
eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;

if (value.type() == CALI_TYPE_STRING) {
eventAttrib.message.ascii = static_cast<const char*>(value.data());
eventAttrib.message.ascii = value.as_c_str();
} else {
std::string attr_name = std::string("nvtx.str#") + std::to_string(attr.id());
Attribute str_attr = c->create_attribute(attr_name, CALI_TYPE_STRING, CALI_ATTR_HIDDEN | CALI_ATTR_SKIP_EVENTS);
std::string str = value.to_string();
Node* node = c->make_tree_entry(str_attr, Variant(CALI_TYPE_STRING, str.data(), str.size()), &m_nvtx_root_node);
eventAttrib.message.ascii = static_cast<const char*>(node->data().data());
eventAttrib.message.ascii = node->data().as_c_str();
}

// For properly nested attributes, just use default push/pop.
Expand Down
2 changes: 1 addition & 1 deletion src/services/rocprofiler/RocTX.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class RocTXBinding : public AnnotationBinding
std::string str; // string obj must not be deleted until end of function

if (attr.type() == CALI_TYPE_STRING) {
msg = static_cast<const char*>(value.data());
msg = value.as_c_str();
} else {
str = value.to_string();
msg = str.c_str();
Expand Down
2 changes: 1 addition & 1 deletion src/services/vtune/VTuneBindings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ class ITTBinding : public cali::AnnotationBinding
__itt_string_handle* itt_str = nullptr;

{
const char* str = static_cast<const char*>(val.data());
const char* str = val.as_c_str();
auto it = s_itt_strings.lower_bound(str);

if (it == s_itt_strings.end() || it->first != str) {
Expand Down
Loading