/** \brief Complete constructor, takes group information and msk/cmp. * * This constructor takes a msk/cmp pair. Both must be vectors of length <= * \ref HWLM_MASKLEN. */ hwlmLiteral::hwlmLiteral(const std::string &s_in, bool nocase_in, bool noruns_in, u32 id_in, hwlm_group_t groups_in, const vector<u8> &msk_in, const vector<u8> &cmp_in) : s(s_in), id(id_in), nocase(nocase_in), noruns(noruns_in), groups(groups_in), msk(msk_in), cmp(cmp_in) { assert(msk.size() <= HWLM_MASKLEN); assert(msk.size() == cmp.size()); // If we've been handled a nocase literal, all letter characters must be // upper-case. if (nocase) { upperString(s); } DEBUG_PRINTF("literal '%s'%s, msk=%s, cmp=%s\n", escapeString(s).c_str(), nocase ? " (nocase)" : "", dumpMask(msk).c_str(), dumpMask(cmp).c_str()); // Mask and compare vectors MUST be the same size. assert(msk.size() == cmp.size()); // We must have been passed a msk/cmp that can be applied to s. assert(maskIsConsistent(s, nocase, msk, cmp)); // In the name of good hygiene, zap msk/cmp if msk is all zeroes. if (all_of(begin(msk), end(msk), [](u8 val) { return val == 0; })) { msk.clear(); cmp.clear(); } }
Parameter *Parameters::getParameter(const char *name) { char upperName[256]; upperString(upperName,name); if(!hasParameter(upperName)) return NULL; return m_map[upperName]; }
void Parameters::setParameter(const char *name, Parameter *p) { char *upperName=(char*)malloc(strlen(name)+1); char s[256]; upperString(upperName,name); // p->toString(s); // printf("setParameter : [%s]=[%s]\n",upperName,s); m_text += name; m_text += '='; m_text += p->toString(); m_text += ";\n"; Parameter *pclone = p->clone(); m_map[upperName] = pclone; addToDeleteList(pclone); addToDeleteList(new Pointer(upperName)); }
bool Station::setInstrumentType(string new_instrumentType){ // Case insensitive, convert the band type to uppercase new_instrumentType = upperString(new_instrumentType); if (new_instrumentType == "HIGH-GAIN") { typeOfInstrument = highgain; return true; } if (new_instrumentType == "LOW-GAIN") { typeOfInstrument = lowgain; return true; } if (new_instrumentType == "ACCELEROMETER") { typeOfInstrument = accelerometer; return true; } return false; }
bool Station::setBandType(string new_bandType){ // Case insensitive, convert the band type to uppercase. new_bandType = upperString(new_bandType); if (new_bandType == "LONG-PERIOD"){ typeOfBand = longperiod; return true; } if (new_bandType == "SHORT-PERIOD"){ typeOfBand = shortperiod; return true; } if (new_bandType == "BROADBAND"){ typeOfBand = broadband; return true; } return false; }
string Station::getOrientation() { return upperString(orientation); }
Integer Parameters::hasParameter(const char *name) { char upperName[256]; upperString(upperName,name); return m_map.find(upperName) != m_map.end(); }