Prolog.java
Go to the documentation of this file.
00001 /* 
00002  * Copyright (c) 2010, Moritz Tenorth
00003  * All rights reserved.
00004  * 
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions are met:
00007  * 
00008  *     * Redistributions of source code must retain the above copyright
00009  *       notice, this list of conditions and the following disclaimer.
00010  *     * Redistributions in binary form must reproduce the above copyright
00011  *       notice, this list of conditions and the following disclaimer in the
00012  *       documentation and/or other materials provided with the distribution.
00013  *     * Neither the name of Willow Garage, Inc. nor the names of its
00014  *       contributors may be used to endorse or promote products derived from
00015  *       this software without specific prior written permission.
00016  * 
00017  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00018  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00019  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00020  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
00021  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00022  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00023  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00024  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00025  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00026  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00027  * POSSIBILITY OF SUCH DAMAGE.
00028  */
00029 
00030 package edu.tum.cs.ias.knowrob.json_prolog;
00031 
00032 import ros.NodeHandle;
00033 import ros.Ros;
00034 import ros.ServiceClient;
00035 
00036 import ros.pkg.json_prolog_msgs.srv.PrologQuery;
00037 import ros.pkg.json_prolog_msgs.srv.PrologFinish;
00038 import ros.pkg.json_prolog_msgs.srv.PrologNextSolution;
00039 
00040 
00051 public class Prolog {
00052 
00053         private static Ros ros;
00054         private static NodeHandle n;
00055         
00056         protected static void initRos() {
00057 
00058         ros = Ros.getInstance();
00059 
00060                 if(!Ros.getInstance().isInitialized()) {
00061                 ros.init("json_prolog_java_client");
00062                 }
00063                 n = ros.createNodeHandle();
00064 
00065         }
00066         
00067         public ServiceClient<PrologQuery.Request, PrologQuery.Response, PrologQuery> prolog_query;
00068         public ServiceClient<PrologNextSolution.Request, PrologNextSolution.Response, PrologNextSolution> next_solution;
00069         public ServiceClient<PrologFinish.Request, PrologFinish.Response, PrologFinish> prolog_finish;
00070 
00071         
00072         
00078         public Prolog(String ns) {
00079                 
00080                 initRos();
00081                 prolog_query = n.serviceClient(ns + "/simple_query", new PrologQuery());
00082                 next_solution = n.serviceClient(ns + "/next_solution", new PrologNextSolution());
00083                 prolog_finish = n.serviceClient(ns + "/finish", new PrologFinish());                            
00084         }
00085         public Prolog() {
00086                 this("/json_prolog");
00087         }
00088         
00096         public PrologQueryProxy query(String query_str) {
00097                 return new PrologQueryProxy(this, query_str);
00098         }
00099         
00108         public PrologBindings once(String query_str) {
00109                 
00110                 PrologQueryProxy query = new PrologQueryProxy(this, query_str);
00111                 PrologBindings result = query.iterator().next();
00112                 query.finish();
00113                 return result;
00114         }
00115          
00116 
00117         
00118 }


json_prolog
Author(s): Lorenz Moesenlechner, Moritz Tenorth
autogenerated on Mon Oct 6 2014 01:29:52