Esempio n. 1
0
 Json Json::copy() const
 {
     if (mType == JsonType::Undefined) {
         return Json();
     }
     else if (mType == JsonType::Object) {
         Json obj = JsonConst::EmptyObject;
         std::vector<Map<Json>::Entry> copiedEntries;
         for (size_t sz = 0; sz < entries->size(); sz++) {
             copiedEntries.push_back(Map<Json>::Entry(entries->list[sz].key, entries->list[sz].value.copy()));
         }
         obj.append(std::move(copiedEntries));
         return obj;
     }
     else if (mType == JsonType::Array) {
         Json arr = JsonConst::EmptyArray;
         for (size_t sz = 0; sz < elements->size(); sz++) {
             arr.append((*elements)[sz].copy());
         }
         return arr;
     }
     else if (mType == JsonType::String) {
         return str;
     }
     else if (mType == JsonType::Number) {
         return number;
     }
     else if (mType == JsonType::Boolean) {
         return boolean;
     }
     else if (mType == JsonType::Null) {
         return JsonConst::Null;
     }
 }
Esempio n. 2
0
int main()
{

    Json json;
    json = JsonConst::EmptyObject;
    json["foo"] = 7;
    json["baa"] = JsonConst::FALSE;
    json.take("foo");
    std::cout << json.size() << "\n";
    std::cout << JsonWriter(json).buffer.data() << "\n"; 
    std::cout << "\n";

    json = JsonConst::EmptyArray;
    json.append( 1);
    json.append( 2);
    json.append( 3);
    json.take(2);
    Json taken = json.take(0);
    std::cout << "At 0: " << taken.toDouble() << "\n";
    std::cout << JsonWriter(json).buffer.data() << "\n";
}
Esempio n. 3
0
        void update()
        {
            Json windows = JsonConst::EmptyArray;
            Map<JsonResource::ptr> newResources;
            for (const WindowInfo& windowInfo: WindowInfo::normalWindows()) {
                std::string path = "/window/" + std::to_string(windowInfo.window);

                newResources[path] = buildWindowResource(windowInfo);
                windows.append(path.substr(1));
                RunningAppsIcons* icons =
                        dynamic_cast<RunningAppsIcons*>(ResourceCollection::prefixMapping("/icons"));
                icons->addIcon(windowInfo.iconName.data(), windowInfo.icon);
            }

            newResources["/display"] = std::make_unique<JsonResource>(buildDisplay());
            newResources["/windows"] = std::make_unique<JsonResource>(std::move(windows));

            jsonResources.updateCollection(std::move(newResources));
        }