summaryrefslogtreecommitdiffstats
path: root/c_layer/survival_curve.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'c_layer/survival_curve.hpp')
-rw-r--r--c_layer/survival_curve.hpp40
1 files changed, 10 insertions, 30 deletions
diff --git a/c_layer/survival_curve.hpp b/c_layer/survival_curve.hpp
index ce71cc1..b3dcebd 100644
--- a/c_layer/survival_curve.hpp
+++ b/c_layer/survival_curve.hpp
@@ -1,56 +1,35 @@
-#include <string>
+#include <string_view>
struct CurveName {
- enum class __attribute__ ((__packed__)) Seniority {
+ enum class Seniority: std::uint8_t {
Senior,
Subordinated
};
- enum class __attribute__ ((__packed__)) DocClause {
+ enum class DocClause: std::uint8_t {
XR14,
MR14,
MM14,
CR14
};
- void serialize(unsigned char* buf) {
- memcpy(buf, &seniority, sizeof(Seniority));
- buf += sizeof(Seniority);
- memcpy(buf, &doc_clause, sizeof(DocClause));
- buf += sizeof(DocClause);
- strcpy((char*)buf, ticker.c_str());
- };
-
std::string full_ticker() const {
- std::string r = ticker;
+ std::string r = {ticker.begin(), ticker.end()};
return r.append("_").append(str_seniority()).
append("_").append(str_doc_clause());
}
- void serialize(unsigned char* buf, size_t num) {
- memcpy(buf, &seniority, sizeof(Seniority));
- buf += sizeof(Seniority);
- memcpy(buf, &doc_clause, sizeof(DocClause));
- buf += sizeof(DocClause);
- strncpy((char*)buf, ticker.c_str(), num);
- };
-
- CurveName(std::string& ticker, Seniority seniority, DocClause doc_clause) :
- ticker(ticker),
- seniority(seniority),
- doc_clause(doc_clause) {};
-
- CurveName(const unsigned char* buf) {
+ CurveName(const char* buf) : name(buf) {
memcpy(&seniority, buf, sizeof(Seniority));
buf += sizeof(Seniority);
memcpy(&doc_clause, buf, sizeof(DocClause));
buf += sizeof(DocClause);
- ticker = std::string((char*)buf);
+ ticker = std::string_view((const char*)buf);
}
CurveName() {};
- size_t size() {
- return sizeof(Seniority) + sizeof(DocClause) + ticker.length() + 1;
+ size_t size() const {
+ return sizeof(Seniority) + sizeof(DocClause) + ticker.size() + 1;
};
bool operator<(const CurveName &other) const {
@@ -82,7 +61,8 @@ struct CurveName {
}
}
- std::string ticker;
+ const char* name;
+ std::string_view ticker;
Seniority seniority;
DocClause doc_clause;
};