Changeset 1d92e1e in ingen


Ignore:
Timestamp:
10/24/15 09:51:16 (2 years ago)
Author:
David Robillard <d@…>
Branches:
master, groups, nodeless, parallel, parameters, sequencefix
Children:
84135d2
Parents:
0dff280
Message:

Fix subgraph serialisation

git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5775 a436a847-0d15-0410-975c-d299462d15a1

Location:
src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/Parser.cpp

    r1831955 r1d92e1e  
    125125get_properties(Ingen::World*     world, 
    126126               Sord::Model&      model, 
    127                const Sord::Node& subject) 
     127               const Sord::Node& subject, 
     128               Resource::Graph   ctx) 
    128129{ 
    129130    SerdChunk       out    = { NULL, 0 }; 
     
    155156            } 
    156157            props.insert(make_pair(Raul::URI(i.get_predicate().to_string()), 
    157                                    atomm)); 
     158                                   Resource::Property(atomm, ctx))); 
    158159        } 
    159160    } 
     
    170171         Sord::Model&      model, 
    171172         const Sord::Node& subject, 
     173         Resource::Graph   ctx, 
    172174         const Raul::Path& parent, 
    173175         uint32_t*         index) 
     
    176178 
    177179    // Get all properties 
    178     Resource::Properties props = get_properties(world, model, subject); 
     180    Resource::Properties props = get_properties(world, model, subject, ctx); 
    179181 
    180182    // Get index if requested (for Graphs) 
    181     if (index) { 
     183    if (index && ctx == Resource::Graph::INTERNAL) { 
    182184        Resource::Properties::const_iterator i = props.find(uris.lv2_index); 
    183185        if (i == props.end() 
     
    235237    const std::string&                    base_uri, 
    236238    const Sord::Node&                     subject, 
     239    Resource::Graph                       ctx, 
    237240    boost::optional<Raul::Path>           parent = boost::optional<Raul::Path>(), 
    238241    boost::optional<Raul::Symbol>         symbol = boost::optional<Raul::Symbol>(), 
     
    255258    Sord::Model&                          model, 
    256259    const Sord::Node&                     subject, 
     260    Resource::Graph                       ctx, 
    257261    const Raul::URI&                      uri, 
    258262    boost::optional<Resource::Properties> data = boost::optional<Resource::Properties>()); 
     
    325329 
    326330        Sord::URI sub_node(*world->rdf_world(), sub_file); 
    327         parse_graph(world, target, sub_model, (const char*)sub_base.buf, sub_node, 
     331        parse_graph(world, target, sub_model, (const char*)sub_base.buf, 
     332                    sub_node, Resource::Graph::INTERNAL, 
    328333                    path.parent(), Raul::Symbol(path.symbol())); 
    329334 
    330         parse_graph(world, target, model, base_uri, subject, 
     335        parse_graph(world, target, model, base_uri, 
     336                    subject, Resource::Graph::DEFAULT, 
    331337                    path.parent(), Raul::Symbol(path.symbol())); 
    332338    } else { 
    333         Resource::Properties props = get_properties(world, model, subject); 
     339        Resource::Properties props = get_properties( 
     340            world, model, subject, Resource::Graph::DEFAULT); 
    334341        props.insert(make_pair(uris.rdf_type, 
    335342                               uris.forge.alloc_uri(uris.ingen_Block))); 
     
    345352            const std::string&                base_uri, 
    346353            const Sord::Node&                 subject_node, 
     354            Resource::Graph                   ctx, 
    347355            boost::optional<Raul::Path>       parent, 
    348356            boost::optional<Raul::Symbol>     a_symbol, 
     
    380388    // Create graph 
    381389    Raul::Path graph_path(graph_path_str); 
    382     Resource::Properties props = get_properties(world, model, subject_node); 
     390    Resource::Properties props = get_properties(world, model, subject_node, ctx); 
    383391    target->put(Node::path_to_uri(graph_path), props); 
    384392 
     
    399407            // Get all properties 
    400408            boost::optional<PortRecord> port_record = get_port( 
    401                 world, model, port, block_path, NULL); 
     409                world, model, port, ctx, block_path, NULL); 
    402410            if (!port_record) { 
    403411                world->log().error(fmt("Invalid port %1%\n") % port); 
     
    420428        uint32_t index = 0; 
    421429        boost::optional<PortRecord> port_record = get_port( 
    422             world, model, port, graph_path, &index); 
     430            world, model, port, ctx, graph_path, &index); 
    423431        if (!port_record) { 
    424432            world->log().error(fmt("Invalid port %1%\n") % port); 
     
    517525                 Sord::Model&                      model, 
    518526                 const Sord::Node&                 subject, 
     527                 Resource::Graph                   ctx, 
    519528                 const Raul::URI&                  uri, 
    520529                 boost::optional<Node::Properties> data) 
    521530{ 
    522     Resource::Properties properties = get_properties(world, model, subject); 
     531    Resource::Properties properties = get_properties(world, model, subject, ctx); 
    523532 
    524533    target->put(uri, properties); 
     
    555564    // Parse explicit subject graph 
    556565    if (subject.is_valid()) { 
    557         return parse_graph(world, target, model, base_uri, subject, parent, symbol, data); 
     566        return parse_graph(world, target, model, base_uri, 
     567                           subject, Resource::Graph::INTERNAL, 
     568                           parent, symbol, data); 
    558569    } 
    559570 
     
    584595        const Raul::Path path = parent ? parent->child(rel_path) : rel_path; 
    585596        if (types.find(graph_class) != types.end()) { 
    586             ret = parse_graph(world, target, model, base_uri, s, parent, symbol, data); 
     597            ret = parse_graph(world, target, model, base_uri, 
     598                              s, Resource::Graph::INTERNAL, 
     599                              parent, symbol, data); 
    587600        } else if (types.find(block_class) != types.end()) { 
    588601            ret = parse_block(world, target, model, base_uri, s, path, data); 
    589602        } else if (types.find(in_port_class) != types.end() || 
    590603                   types.find(out_port_class) != types.end()) { 
    591             parse_properties( 
    592                 world, target, model, s, Node::path_to_uri(path), data); 
     604            parse_properties(world, target, model, 
     605                             s, Resource::Graph::DEFAULT, 
     606                             Node::path_to_uri(path), data); 
    593607            ret = path; 
    594608        } else if (types.find(arc_class) != types.end()) { 
  • src/Serialiser.cpp

    r9e346cb r1d92e1e  
    419419                              Sord::URI(world, LV2_CORE__port), 
    420420                              port_id); 
     421        serialise_port(p, Resource::Graph::DEFAULT, port_id); 
    421422        serialise_port(p, Resource::Graph::INTERNAL, port_id); 
    422423    } 
Note: See TracChangeset for help on using the changeset viewer.