Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/25/09 14:48:56 (15 years ago)
Author:
gkronber
Message:

Introduced paging for queries to fix problems with large WCF messages. #257 (CEDMA console doesn't handle communication- and timeout exceptions correctly)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.CEDMA.DB/Store.cs

    r1287 r1417  
    6262
    6363
    64     public ICollection<VariableBindings> Query(string query) {
     64    public ICollection<VariableBindings> Query(string query, int page, int pageSize) {
    6565      MyQueryResultSink resultSink = new MyQueryResultSink();
    6666      SemWeb.N3Reader n3Reader = new SemWeb.N3Reader(new StringReader(query));
    6767      SemWeb.Query.GraphMatch matcher = new SemWeb.Query.GraphMatch(n3Reader);
    6868      matcher.Run(store, resultSink);
    69       return resultSink.Bindings;
    70     }
    71 
    72     public ICollection<VariableBindings> Query(ICollection<Statement> query) {
     69      return resultSink.Bindings.Skip(page*pageSize).Take(pageSize).ToList();
     70    }
     71
     72    public ICollection<VariableBindings> Query(ICollection<Statement> query, int page, int pageSize) {
    7373      MyQueryResultSink resultSink = new MyQueryResultSink();
    7474      Translate(query).Run(store, resultSink);
    75       return resultSink.Bindings;
     75      return resultSink.Bindings.Skip(page * pageSize).Take(pageSize).ToList();
    7676    }
    7777
     
    8282      return new SemWeb.Query.GraphMatch(queryStore);
    8383    }
    84 
    85 
    86     //public ICollection<Statement> Select(Statement template) {
    87     //  SemWeb.MemoryStore memStore = new SemWeb.MemoryStore();
    88     //  lock (bigLock) {
    89     //    store.Select(Translate(template), memStore);
    90     //  }
    91     //  return memStore.Select(x=>Translate(x)).ToList();
    92     //}
    93 
    94     //public ICollection<Statement> Select(SelectFilter filter) {
    95     //  SemWeb.MemoryStore memStore = new SemWeb.MemoryStore();
    96     //  lock (bigLock) {
    97     //    store.Select(Translate(filter), memStore);
    98     //  }
    99     //  return memStore.Select(x => Translate(x)).ToList();
    100     //}
    101 
    102     //private SemWeb.SelectFilter Translate(SelectFilter filter) {
    103     //  SemWeb.SelectFilter f = new SemWeb.SelectFilter();
    104     //  f.Subjects = Array.ConvertAll(filter.Subjects, s => Translate(s));
    105     //  f.Predicates = Array.ConvertAll(filter.Predicates, p => Translate(p));
    106     //  f.Objects = Array.ConvertAll(filter.Properties, prop => Translate(prop));
    107     //  return f;
    108     //}
    10984
    11085    private static SemWeb.Entity Translate(Entity e) {
Note: See TracChangeset for help on using the changeset viewer.