|  | @@ -27,6 +27,7 @@
 | 
	
		
			
				|  |  |  // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
	
		
			
				|  |  |  // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +var fs = require('fs');
 | 
	
		
			
				|  |  |  var _ = require('underscore');
 | 
	
		
			
				|  |  |  var grpc = require('..');
 | 
	
		
			
				|  |  |  var examples = grpc.load(__dirname + '/route_guide.proto').examples;
 | 
	
	
		
			
				|  | @@ -47,21 +48,6 @@ var COORD_FACTOR = 1e7;
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  var feature_list = [];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -/**
 | 
	
		
			
				|  |  | - * Return a random "word" (alphabetic character sequence) of the given length.
 | 
	
		
			
				|  |  | - * @param {number} length The length of the word to create
 | 
	
		
			
				|  |  | - * @return {string} An alphabetic string with the given length.
 | 
	
		
			
				|  |  | - */
 | 
	
		
			
				|  |  | -function randomWord(length) {
 | 
	
		
			
				|  |  | -  var alphabet = 'abcdefghijklmnopqrstuvwxyz';
 | 
	
		
			
				|  |  | -  var word = '';
 | 
	
		
			
				|  |  | -  for (var i = 0; i < length; i++) {
 | 
	
		
			
				|  |  | -    // Add a random character from the alphabet to the word
 | 
	
		
			
				|  |  | -    word += alphabet[_.random(0, alphabet.length - 1)];
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -  return word;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  /**
 | 
	
		
			
				|  |  |   * Get a feature object at the given point, or creates one if it does not exist.
 | 
	
		
			
				|  |  |   * @param {point} point The point to check
 | 
	
	
		
			
				|  | @@ -78,19 +64,11 @@ function checkFeature(point) {
 | 
	
		
			
				|  |  |        return feature;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  // If not, create a new one with 50% chance of indicating "no feature present"
 | 
	
		
			
				|  |  | -  var name;
 | 
	
		
			
				|  |  | -  if (_.random(0,1) === 0) {
 | 
	
		
			
				|  |  | -    name = '';
 | 
	
		
			
				|  |  | -  } else {
 | 
	
		
			
				|  |  | -    name = randomWord(5);
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | +  var name = '';
 | 
	
		
			
				|  |  |    feature = {
 | 
	
		
			
				|  |  |      name: name,
 | 
	
		
			
				|  |  |      location: point
 | 
	
		
			
				|  |  |    };
 | 
	
		
			
				|  |  | -  // Add the feature object to the list and return it
 | 
	
		
			
				|  |  | -  feature_list.push(feature);
 | 
	
		
			
				|  |  |    return feature;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -253,7 +231,11 @@ if (require.main === module) {
 | 
	
		
			
				|  |  |    // If this is run as a script, start a server on an unused port
 | 
	
		
			
				|  |  |    var routeServer = getServer();
 | 
	
		
			
				|  |  |    routeServer.bind('0.0.0.0:0');
 | 
	
		
			
				|  |  | -  routeServer.listen();
 | 
	
		
			
				|  |  | +  fs.readFile(__dirname + '/route_guide_db.json', function(err, data) {
 | 
	
		
			
				|  |  | +    if (err) throw err;
 | 
	
		
			
				|  |  | +    feature_list = JSON.parse(data);
 | 
	
		
			
				|  |  | +    routeServer.listen();
 | 
	
		
			
				|  |  | +  });
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  exports.getServer = getServer;
 |