Example #1
0
/** \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();
    }
}
Example #2
0
Parameter *Parameters::getParameter(const char *name)
{
	char upperName[256];
	upperString(upperName,name);

	if(!hasParameter(upperName)) return NULL;
		return m_map[upperName];
}
Example #3
0
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));
}
Example #4
0
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;

}
Example #5
0
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;

}
Example #6
0
string Station::getOrientation() {

    return upperString(orientation);

}
Example #7
0
Integer Parameters::hasParameter(const char *name)
{
	char upperName[256];
	upperString(upperName,name);
	return m_map.find(upperName) != m_map.end();
}