Beispiel #1
0
    std::list<unsigned long> JsonUtils::asUnsignedLongList(const Json::Value &value, const std::list<unsigned long> defaultValue, unsigned long defaultItemValue)
    {
        if(value.isNull() || !value.isArray())
            return defaultValue;

        std::list<unsigned long> output;

        for(Json::ValueIterator it = value.begin(); it != value.end(); ++it)
            output.push_back(asUnsignedLong(*it, defaultItemValue));

        return output;
    }
Beispiel #2
0
    std::map<Ogre::String, unsigned long> JsonUtils::asStringUnsignedLongMap(const Json::Value &value)
    {
        std::map<Ogre::String, unsigned long> map;

        if(value.isNull() || !value.isObject())
            return map;

        for(auto const & name : value.getMemberNames())
            map.emplace(Ogre::String(name), asUnsignedLong(value[name], 0));

        return map;
    }
Beispiel #3
0
        /*  Unpack a sign/mag long */ 
   long PackedNavBits::asSignMagLong(const int startBit, 
                                     const int numBits, 
                                     const int scale) const
   {
         // Get the magnitude
      int startBitMag = startBit + 1;
      int numBitsMag = numBits - 1; 
      unsigned long mag = asUnsignedLong(startBitMag, numBitsMag, scale);

         // Get the sign bit
      uint64_t uint = asUint64_t( startBit, 1 );

      long smag = (long) mag;
      if (uint==1) smag *= -1;
      return smag; 
   }
Beispiel #4
0
extern "C" unsigned long PyLong_AsUnsignedLong(PyObject* vv) noexcept {
    assert(vv);

    if (vv->cls == int_cls) {
        long val = PyInt_AsLong(vv);
        if (val < 0) {
            PyErr_SetString(PyExc_OverflowError, "can't convert negative value "
                                                 "to unsigned long");
            return (unsigned long)-1;
        }
        return val;
    }

    RELEASE_ASSERT(PyLong_Check(vv), "");
    BoxedLong* l = static_cast<BoxedLong*>(vv);

    try {
        return asUnsignedLong(l);
    } catch (ExcInfo e) {
        setCAPIException(e);
        return -1;
    }
}