1{"Graphics":{"Cairo":{"CairoFontOptions":{"copyright":"Daniel Rosengren, 2007\n","license":"BSD revised\n","category":"Graphics\n","module":"Cairo","slots":{}},"CairoGlyph":{"copyright":"Daniel Rosengren, 2007\n","license":"BSD revised\n","category":"Graphics\n","module":"Cairo","slots":{}},"CairoLinearGradient":{"copyright":"Daniel Rosengren, 2007\n","license":"BSD revised\n","category":"Graphics\n","module":"Cairo","slots":{}},"CairoGradient":{"copyright":"Daniel Rosengren, 2007\n","license":"BSD revised\n","category":"Graphics\n","module":"Cairo","slots":{}},"CairoContext":{"copyright":"Daniel Rosengren, 2007\n","license":"BSD revised\n","category":"Graphics\n","module":"Cairo","slots":{}},"CairoScaledFont":{"copyright":"Daniel Rosengren, 2007\n","license":"BSD revised\n","category":"Graphics\n","module":"Cairo","slots":{}},"CairoFontExtents":{"copyright":"Trevor Fancher, 2007\n","license":"BSD revised\n","category":"Graphics\n","module":"Cairo","slots":{}},"CairoExtents":{"copyright":"Daniel Rosengren, 2007\n","license":"BSD revised\n","category":"Graphics\n","module":"Cairo","slots":{}},"CairoRectangle":{"copyright":"Daniel Rosengren, 2007\n","license":"BSD revised\n","category":"Graphics\n","module":"Cairo","slots":{}},"CairoSurface":{"copyright":"Daniel Rosengren, 2007\n","license":"BSD revised\n","category":"Graphics\n","module":"Cairo","slots":{}},"CairoFontFace":{"copyright":"Daniel Rosengren, 2007\n","license":"BSD revised\n","category":"Graphics\n","module":"Cairo","slots":{}},"CairoMatrix":{"copyright":"Daniel Rosengren, 2007\n","license":"BSD revised\n","category":"Graphics\n","module":"Cairo","slots":{}},"CairoPathElement":{"copyright":"Daniel Rosengren, 2007\n","license":"BSD revised\n","category":"Graphics\n","module":"Cairo","slots":{}},"CairoPath":{"copyright":"Daniel Rosengren, 2007\n","license":"BSD revised\n","category":"Graphics\n","module":"Cairo","slots":{}},"CairoSolidPattern":{"copyright":"Daniel Rosengren, 2007\n","license":"BSD revised\n","category":"Graphics\n","module":"Cairo","slots":{}},"CairoPattern":{"copyright":"Daniel Rosengren, 2007\n","license":"BSD revised\n","category":"Graphics\n","module":"Cairo","slots":{}},"Cairo":{"copyright":"Daniel Rosengren, 2007\n","license":"BSD revised\n","category":"Graphics\n","module":"Cairo","description":"Cairo is a 2D graphics library. http:\/\/cairographics.org\/\n","slots":{}},"CairoTextExtents":{"copyright":"Trevor Fancher, 2007\n","license":"BSD revised\n","category":"Graphics\n","module":"Cairo","slots":{}},"CairoImageSurface":{"copyright":"Daniel Rosengren, 2007\n","license":"BSD revised\n","category":"Graphics\n","module":"Cairo","slots":{}},"CairoRadialGradient":{"copyright":"Daniel Rosengren, 2007\n","license":"BSD revised\n","category":"Graphics\n","module":"Cairo","slots":{}},"CairoSurfacePattern":{"copyright":"Daniel Rosengren, 2007\n","license":"BSD revised\n","category":"Graphics\n","module":"Cairo","slots":{}}},"GLFW":{"GLFW":{"copyright":"Joel de Vahl, 2006\n","license":"BSD revised\n","category":"Graphics\n","module":"GLFW","slots":{}}},"Image":{"Image":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Graphics\n","module":"Image","description":"The Image object can read and draw images and provide the image \ndata as a buffer. Example use:\n<pre>\t\nimage = Image clone open(\"curly.png\")\nimage draw\nimage scaleTo(image width \/ 2, image height \/ 2)\nimage save(\"curly.tiff\")\n<\/pre>\t\nWhen loading an attempt will be made to convert the image into whichever \nof the following formats it is closest to: L8, LA8, RGB8, RGBA8.\n<p>\nCurrently supported formats include PNG(which supports alpha), JPG and TIFF.\n","slots":{"filterKirsch(a)":"\tReturns new image as a result of applying Kirsch filter.\n\tThe argument denotes direction: 0, 1, 2, ... -> 0, pi \/ 4, pi \/ 2, ...\n","encodingQuality":"\tReturns the encodingQuality setting.\n","height":"\tReturns the image hieght.\n","filterUniformAverage(filterSizeX, filterSizeY)":"\tReturns new image as a result of applying filter. Implements low pass filtering.\n","makeGrayscale":"\tConverts color model to Luminance or Luminance-Alpha 8bit (grayscale). Returns self.\n","width":"\tReturns the image width.\n","averageColor":"\tReturns the average RGB color of all pixels in the image.\n","filterSobel(a)":"\tReturns new image as a result of applying Sobel filter.\n\tThe argument denotes direction: 0, 1, 2, ... -> 0, pi \/ 4, pi \/ 2, ...\n","setEncodingQuality(aNumber)":"\tSets the image encoding quality (range is 0.0 - 1.0, 1.0 with being the highest).\n","componentPlain(component)":"\tRemoves other components except specified from the image.\n\tReturns self.\n","crop(x, y, width, height)":"\tCrops the image to the specified values. Returns self.\n\tRaises an exception on error.\n","error":"\tReturns a String containing the current error or nil if there is no error.\n","filterGauss(sigma)":"\tReturns new image as a result of applying filter. Implements Gauss smoothing filtering with parameter sigma.\n","bounds(cutoff)":"\tReturns an object continaing the bounds of the image. Cutoff is max bound color value for any color component.\n\tIf it is negative, it is the min bound color value.\n","linearContrast":"\tPerforms contrast linarization. Per-pixel per-channel transformation that extends intensity to its full range.\n\tReturns self.\n","componentCount":"\tReturns the number of color components in the receiver as a Number.\n","save(optionalPathString)":"\tSets the path to optionalPathString if provided and saves the image \n\tin the format specified by the path extension. Returns self on success, nil on failure.\n","removeAlpha":"\tRemoves the alpha component if the image contains one.  Returns self.\n","isLA8":"\tReturns true if the receiver is in LA8 (8bit Luminance-Alpha) format, false otherwise.\n","flipX":"\tFlips the image on the horizonal plane (left\/right mirror). Returns self.\n","isRGBA8":"\tReturns true if the receiver is in RGBA8 format, false otherwise.\n","histogram":"\tReturns array with histogram values interleaved by channels.\n","decodingHeightHint":"\tReturns the decoding height hint.\n","equalizeHistogram(mode)":"\tPerforms histogram equalization. Mode denotes quality factor and processing speed. Mode should be in range [0..3].\n\tReturns self.\n","makeL8":"\tConverts color model to Luminance 8bit (grayscale). Returns self.\n","makeRGBA8":"\tConverts color model to RGBA 8bit. Returns self.\n","resizedTo(width, height)":"\tReturns a new image of the receiver resized to the given width and height.\n\tRaises an exception on error.\n","filterLinear(filterSizeX, filterSizeY, filter)":"\tReturns new image as a result of applying filter.\n","path":"\tReturns the image path.\n","filterNonlinearGradients":"\tReturns new image as a result of applying filter. Calculates abs(f'x) + abs(f'y).\n","flipY":"\tFlips the image on the vertical plane (top\/bottom mirror). Returns self.\n","filterWeightedMedian(filterSizeX, filterSizeY, filter)":"\tReturns new image as a result of applying filter.\n","data":"\tReturns a Buffer primitive containing the image data (loading it first if needed). \n\tManipulating this data will affect what is drawn when the receiver's draw method is called.\n","baselineHeight":"\tReturns the pixel height (relative to the bottom of the image) which first contains a non-white pixel or -1 if\n\tno baseline is found.\n","filterMin(filterSizeX, filterSizeY)":"\tReturns new image as a result of applying filter.\n","decodingWidthHint":"\tReturns the decoding width hint.\n","bitPlain(component, bit)":"\tReplaces contents with black-and-white image where white appears if and only if specified component contained 1 on the specified bit plain.\n\tReturns self.\n","thresholdByGradient":"\tPerforms thresholding. Threshold value is finded using Otsu's method.\n\tReturns self.\n","isRGB8":"\tReturns true if the receiver is in RGB8 format, false otherwise.\n","setDataWidthHeightComponentCount(aSequence, width, height, componentCount)":"\tSets the image data and its parameters. Returns self.\n","isL8":"\tReturns true if the receiver is in L8 (8bit Luminance) format, false otherwise.\n","setDecodingWidthHint(width)":"\tSets the decoding width hint. Returns self.\n","filterMax(filterSizeX, filterSizeY)":"\tReturns new image as a result of applying filter.\n","setPath(aString)":"\tSets the image path. Returns self.\n","addAlpha":"\tAdds an opaque alpha component if the image is in RGB format and does not already contain one.  Returns self.\n","setDecodingHeightHint(width)":"\tSets the decoding height hint. Returns self.\n","filterMedian(filterSizeX, filterSizeY)":"\tReturns new image as a result of applying filter.\n","filterUnsharpMask(a)":"\tReturns new image as a result of applying filter. Implements unsharp mask filtering. \n\tThe result is sharpened image.\n\tThe parameter value may by any but it makes sense if it is > 0.\n","open(optionalPathString)":"\tSets the path to optionalPathString if provided and opens the image file. \n\tReturns self on success, Nil on failure.\n","resizedTo(newWidth, newHeight)":" Scales the image up to newWidth x newHeight.  Returns the newly scaled image.\n"}}},"Font":{"Font":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Graphics\n","module":"Font","description":"The Font object can be used to load and render TypeTrype fonts. Example use;\n<pre>\t\n\/\/ within a GLUT display callback...\n\ntimesFont = Font clone open(\\\"times.ttf\\\")\nif (timesFont error, write(\\\"Error loading font: \\\", timesFont error, \\\"\\n\\\"); return)\ntimesFont setPointSize(16)\nglColor(0,0,0,1)\ntimesFont draw(\\\"This is a test.\\\")\n<\/pre>\t\n\n<b>Rendering fonts using OpenGL textures<\/b>\n<p>\nSmaller fonts (those having a point size around 30 or smaller, depending on the font) will automatically be cached in and rendered from a texture. This technique is very fast and should support rendering speeds as fast (or faster than) those of typical desktop font rendering systems. Larger font sizes(due to texture memory constraints) will be rendered to a pixelmap when displayed. Thanks to Mike Austin for implementing the font texturing system.\n","slots":{"widthOfString(aString)":"\tReturns a Number with the width that aString would render \n\tto with the receiver's current settings.\n","stringIndexAtWidth(aString, startIndex, width)":"\tReturns the max index of the character in String (starting at startIndex) \n\tthat fits within width.\n","error":"\tReturns the current error string or nil if there is no error.\n","pixelSize":"\tReturns the font's pixelSize.\n","setPixelSize(aNumber)":"\tSets the size of the font in pixels. Returns self.\n","path":"\tReturns the Font path.\n","drawString(aString, optionalStartIndex, optionalEndIndex)":"\tDraws aString using the optional start and end indexes, if supplied. Returns self.\n<p>\nNote; Fonts are drawn as RGBA pixel maps. These blending options are recommended:\n<pre>\t\nglEnable(GL_BLEND)\nglBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)\n<\/pre>\n","setPath(aString)":"\tSets the Font path. Returns self.\n","isTextured":"\tReturns true if the font is being cached in and rendered from a texture, false otherwise.\n","pixelHeight":"\tReturns the height of the font measured in pixels.\n","open(optionalPath)":"\tOpens the font. Sets path using optionalPath if supplied. Returns self.\n","widthOfCharacter(aNumber)":"\tReturns the width of the character specified by aNumber in the receiver's font.\n"}}},"Box":{"Box":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Graphics\n","module":"OpenGL","description":"A primitive for fast operations on rectangles.\n","slots":{"containsPoint(aPoint)":"\tReturns true if aPoint is within the receiver's bounds, false otherwise.\n","setSize(aPoint)":"\tCopies the values in aPoint to the box's size point.\n","print":"\tPrints a string representation of the receiver to the standard output.\n","height":"\tSame as; size y\n","width":"\tSame as; size x\n","origin":"\tReturns the point object for the origin of the box.\n","set(origin, size)":"\tCopies the values in origin and size to set the box's origin and size.\n","setOrigin(aPoint)":"\tCopies the values in aPoint to the box's origin point.\n","intersectsBox(aBox)":"\tReturns true if aBox is within the receiver's bounds, false otherwise.\n","Union(aBox)":"\tReturns a new box containing the 2d union of the receiver and aBox.\n","copy(aBox)":"\tCopies the values of aBox to the receiver.\n","size":"\tReturns the point object for the size of the box.\n","depth":"\tSame as; size z\n"}}},"OpenGL":{"GLApp":{"category":"Graphics\n","module":"OpenGL","slots":{}},"GLUT":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Graphics\n","module":"OpenGL","slots":{}},"Box":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Graphics\n","module":"OpenGL","description":"A primitive for fast operations on rectangles.\n","slots":{"containsPoint(aPoint)":"\tReturns true if aPoint is within the receiver's bounds, false otherwise.\n","setSize(aPoint)":"\tCopies the values in aPoint to the box's size point.\n","print":"\tPrints a string representation of the receiver to the standard output.\n","height":"\tSame as; size y\n","width":"\tSame as; size x\n","origin":"\tReturns the point object for the origin of the box.\n","set(origin, size)":"\tCopies the values in origin and size to set the box's origin and size.\n","setOrigin(aPoint)":"\tCopies the values in aPoint to the box's origin point.\n","intersectsBox(aBox)":"\tReturns true if aBox is within the receiver's bounds, false otherwise.\n","Union(aBox)":"\tReturns a new box containing the 2d union of the receiver and aBox.\n","copy(aBox)":"\tCopies the values of aBox to the receiver.\n","size":"\tReturns the point object for the size of the box.\n","depth":"\tSame as; size z\n"}},"OpenGL":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Graphics\n","module":"OpenGL","slots":{}},"GLScissor":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Graphics\n","module":"OpenGL","slots":{}},"GLU":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Graphics\n","module":"OpenGL","slots":{"gluScaleImage(formatIn, widthIn, heightIn, typeIn, dataSeqIn, widthOut, heightOut, typeOut, dataSeqOut)":"\tScales the image data in dataSeqIn and outputs the result to dataSeqOut.\n\tReturns error code as a Number.\n"}},"GLUQuadric":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Graphics\n","module":"OpenGL","slots":{}}}},"Filesystem":{"AsyncRequest":{"AsyncRequest":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Filesystem\n","module":"AsyncRequest","description":"Used for doing asynchronous file i\/o. When this addon is loaded, it will override\nthe File proto's readToBufferLength, readBufferOfLength and write methods to \nautomatically use AsyncRequests. \n<p>\nNote: This addon is only needed for async file requests - all socket ops are already\nasynchronous in Io.\n","slots":{"isDone":"\tReturns true if the request is done, false otherwise.\n","setDescriptor(aDescriptorNumber)":"\tSets the descriptor for the receiver. Returns self.\n","descriptor":"\tReturns the descriptor for the request.\n","numberOfBytes":"\tReturns the number of bytes associated with the request.\n","copyBufferto(aSeq)":"\tCopies the request buffer's data to aSeq.\n\tReturns nil on error or self otherwise.\n","read(aSeq, numberOfBytes)":"\tSubmits an async read request. Returns nil on error, self otherwise.\n","error":"\tReturns sequence containing the last error or nil otherwise.\n","cancel":"\tCancels the request. Returns nil on error or self otherwise.\n","position":"\tReturns a Number for the position of the descriptor.\n","write(fileOffset, aSeq, bufferOffset, numberOfBytesToWrite)":"\tSubmits an async write request. Returns nil on error, self otherwise.\n","sync":"\tWaits for the request to complete. Returns nil on error or self otherwise.\n"}}}},"Databases":{"TagDB":{"TagDB":{"copyright":"Steve Dekorte, 2007\n","license":"BSD revised\n","category":"Databases\n","module":"TagDB","description":"Binding for <a href=http:\/\/www.dekorte.com\/projects\/opensource\/tagdb\/>tagdb<\/a> - a tagging database usefull for flickr-like tag searches.\n<p>\nExample use:\n<pre>\ntdb := TagDB clone\n\ntdb setPath(\"test\")\ntdb open\n\nwriteln(\"size = \", tdb size)\ntdb atKeyPutTags(\"f430 for sale\", list(\"red\", \"ferrari\"))\ntdb atKeyPutTags(\"lotus esprit\", list(\"lotus\", \"esprit\"))\nwriteln(\"size = \", tdb size)\nkeys := tdb keysForTags(list(\"lotus\"))\nwriteln(\"keys = \", tdb symbolForId(keys at(0)))\ntdb close\ntdb delete\n<\/pre>\n","slots":{"allUniqueTagIds":"\tReturns a list of all unique tag ids.\n","uniqueTagNames":"Returns a list of all unique tag names.\n","keysForTags(aTagNameList)":"\tReturns list of keys whose tags contain all of the tags in aTagNameList.\n","close":"\tClose the tagdb. Returns self.\n","symbolForId(aNumber)":"\tReturns the TagDB symbol for aNumber.\n","atKeyPutTags(key, tagNameList)":"\tSets the tags for key to those in tagNameList. Returns self.\n","idForSymbol(aSeq)":"\tReturns the TagDB id Number for the symbol specified by aSeq.\n","setPath(aPath)":"\tSets the path to the tag database. Returns self.\n","removeKey(aKey)":"\tRemoves the specified key if it is present. Returns self.\n","tagsAtKey(key)":"\tReturns the tags for the specified key.\n","open":"\tOpen the tagdb. Returns self.\n","delete":"\tDeletes all keys in the database.\n","size":"\tReturns number of keys in the database.\n","keyAtIndex(indexNumber)":"\tReturns the key at the specified index of nil if the index is out of range.\n"}}},"DBI":{"DBI":{"copyright":"Jeremy Cowgar, 2006\n","license":"BSD revised\n","category":"Databases\n","module":"DBI","description":"An object for wrapping libdbi to allow Io access to\na multitude of database systems transparently.\n","slots":{"version":"Return string version of libdbi being used.\n","drivers":"\tGet a list of drivers and its associated information:\n\n\t<ol>\n\t\t<li>name<\/li>\n\t\t<li>description<\/li>\n\t\t<li>filename<\/li>\n\t\t<li>version<\/li>\n\t\t<li>date compiled<\/li>\n\t\t<li>maintainer<\/li>\n\t\t<li>url<\/li>\n\t<\/ol>\n","init":"Initialize the DBI environment with the default driver path.\n","initWithDriversPath":"\tInitialize the DBI environment with the specified libdbi driver path.\n","with(driverName)":" Get a new connection with the given driver.\n"}},"DBIConn":{"copyright":"Jeremy Cowgar 2006\n","license":"BSD revised\n","category":"Databases\n","module":"DBI","description":"An object that represents a DBI Connection.\n","slots":{"option(key)":" Retrieve an option value for the connection.\n","optionClear(key)":" Clear a specific option associated with the connection.\n","close":"Close the connection to the database.\n","execute(sql_query)":"\tPerform a database query that expects no results. \n\tReturns the number of rows affected.\n","ping":"\tPing the database to see if it's alive. \n\tWill return true if it is, otherwise false.\n","sequenceNext([name])":"\tReturn the next sequence that will be used during an INSERT query.\n","queryOne([object], sql)":"\tPerform a query and return the first\n\tresult.\n\n\tIf [object] is supplied, the object is populated with the contents of the\n\tresult, the result is marked done and the object is returned.\n","query(sql_query)":"\tPerform a database query returning a DBIResult object.\n","sequenceLast([name])":"\tReturn the last inserted sequence value.\n","driver":"Return database driver name.\n","optionPut(key,value)":" Add an option key, value pair to the connection.\n","optionsClear":"Clear all options associated with the connection\n","quote(value)":"\tQuote a string value according to the database server's specifications.\n","options":"Retrieve an option list of the connection.\n","connect":"Connect to the database server.\n"}},"DBIRecord":{"copyrigth":"Jeremy Cowgar, 2006\n","license":"BSD revised\n","category":"Databases\n","module":"DBI","description":"A DBI Record. When utilizing `foreach' or `populate' methods\nof a DBIResult object, you can pass an optional Object cloned from DBIRecord.\nThis object will be populated with the row contents making it possible to\nwrite objects that represent your SQL results. A simple example would be:\n\n<pre>\nPerson := DBIRecord clone do (fullName := method(firstName..\" \"..lastName))\nq := conn query(\"SELECT id, firstName, lastName FROM people\")\nq foreach(Person, p, writeln(\"Name = \", p fullName))\n<\/pre>\n\nAs you can see, fullName was not in the SQL query, however, a dynamic method\nin your Person class.\n\nDBIRecord in and of itself provides no real functionality. It simply acts\nas an Object and stores the values from the SQL query into a Map. You can\naccess the field information:\n\n<pre>\no := r populate(Person)\no firstName            \/\/ would retrieve the firstName value of the SQL query\no setFirstName(\"John\") \/\/ would update the object's firstName value to be John\n<\/pre>\n\nDo not confuse the above example as updating the actual database. The call\nto setFirstName <i>only<\/i> updates the objects representation of firstName.\n","slots":{"with(aMap)":" Returns a new DBIRecord instance for the given value map.\n","forward":"Private method that implements getting and setting values.\n"}},"DBIResult":{"copyright":"Jeremy Cowgar, 2006\n","license":"BSD revised\n","category":"Databases\n","module":"DBI","description":"A DBI Result created by a call to DBIConn query.\n","slots":{"at(index_or_name)":"\t Returns the contents of the given field. \n\t The parameter can be a field index or a field name.\n","last":"Move the cursor to the last record.\n","fields":"Returns a list of field names in the result.\n","next":"Move the cursor to the next record.\n","foreach([Object], value, message)":"Loops over the records in the result starting at either the first result \n(if the cursor has never been moved) or its current location if moved. i.e.\n\n<pre>\nr := conn query(\"SELECT * FROM people\")\nr foreach(r, r at(1))\n<\/pre>\n\nThe above would start at the first row, however, you can move around in the\nresult set and then foreach would pickup where you left off, for instance, say\nyou wanted to skip the first three rows:\n\n<pre>\nr := conn query(\"SELECT * FROM people\")\nr seek(4)\nr foreach(r, r at (1))\n<\/pre>\n\nThe above would start at the record #4, not at the beginning.\n\nThe optional Object parameter would cause a decendent of DBIRecord to be\npopulate instead of the index being set. This allows for advanced\nfunctionality. Please see `DBIRecord' for further information and an example.\n","position":"Return the current row's position (or index).\n","seek(row_number)":" Move the cursor to the nth record.\n","first":"Move the cursor to the first record.\n","populate(object)":"\tPopulates a decendent of DBIRecord with the current record's contents. \n\tSee `DBIRecord' for further explanation and an example.\n","previous":"Move the cursor to the previous record.\n","size":"Returns the number of rows available.\n","done":"\tClose and free the result. This <b>must<\/b> be called on\neach result. Failure to do so will cause memory leaks and open queries with\nthe database server.\n"}}},"Obsidian":{"PObject":{"category":"Databases\n","module":"Obsidian","slots":{}},"Obsidian":{"credits":"In collaboration with Rich Collins\n","copyright":"Steve Dekorte 2008\n","license":"BSD revised\n","category":"Databases\n","module":"Obsidian","description":"A double key\/value database with cursors on first key. Basis for PDB.\n","slots":{"delete":"Removes the persistence database file set via setPath.\n","close":"Closes the persistence database file.\n","onAt":"Return the value associated with slotName of stored object whose ppid is objId.\n"}},"ObsidianClient":{"category":"Databases\n","module":"Obsidian","slots":{}},"ObsidianServer":{"copyright":"Steve Dekorte 2008\n","license":"BSD revised\n","category":"Databases\n","module":"Obsidian","description":"\nA network interface for Obsidian.\n\n<h4>Starting a Server<\/h4>\n\n<pre>\noServer := ObsidianServer clone\noServer localObject setName(\"foo\") open\noServer start\n<\/pre>\n\n<h4>Example Client Code<\/h4>\n\n<pre>\nclient := MDOConnection clone setHost(\"127.0.0.1\") setPort(8000) connect\nclient onAtPut(\"1\", \"aKey\", \"aSlot\")\nclient onAtPut(\"1\", \"cKey\", \"cSlot\")\nclient onAtPut(\"1\", \"bKey\", \"bSlot\")\nclient first(\"1\", 5) println\na := client onAt(\"1\", \"aKey\")\nwriteln(\"a = \", a)\nb := client onAt(\"1\", \"bKey\")\nwriteln(\"b = \", b)\nclient close\n<\/pre>\n\nThe messages accepted by the Obsidian server include:\n\n<pre>\nonAtPut(id, key, value)\nonAt(id, key)\nonRemoveAt(id, key)\nonFirst(id, count)\nonLast(id, count)\nonAfter(id, key, count)\nonBefore(id, key, count)\n<\/pre>\n","slots":{}},"PMap":{"category":"Databases\n","module":"Obsidian","description":"PMap stores persistent data in a Map-like fashion and lazily loads\navailable slots from the PDB backing store. Values stored or loaded are cached\ninto local object slots.\n","slots":{"removeSlot":"Marks a value for removal.\n","objectsForKeys":"Returns a list of values for each key in the list given. Keys beginning with an\nunderscore (\"_\") are returned verbatim.\n","at(slotName)":"Tries to obtain a value for slot slotName from a local slot of that name,\nor tries to load it from the PDB if the local slot does not exist. When all else fails, returns nil.\n<p>\nIf slotName begins with an underscore (\"_\"), returns the id of the slot from PDB instead of the value.\n","init":"Initialize a new PMap and automatically add it as a persistent object to PDB.\n","persistSlots":"Cleans up dirty slots by committing them to PDB.\n","removeAt":"Marks a value for removal.\n","shouldPersistByDefault":"PDB boolean flag indicating whether this object should be considered for persistence\nwhen persistence has not been specifically requested by calling ppid() or PDB addObjectToPersist.\nAlways true by default for PMap.\n","atPut(slotName, value)":" Records value in the slot named slotName.\n","slotCount":"Returns the number of slots committed to PDB.\n","persist":"Commits the PMap's slots to PDB.\n","createIfAbsent":"Creates a slot with a new PMap clone if not already present.\n"}},"PDB":{"credits":"Steve Dekorte & Rich Collins\n","module":"Obsidian","slots":{"objectAtPpid":"Return the object associated in the database with a ppid.\n","sync":"Immediately persist data for all objects marked dirty by Collector whose \nshouldPersistByDefault is true, or that have specifically requested to be\npersisted since the last sync via addObjectToPersist.\n","addObjectToPersist":"Register an object to be persisted in the next PDB sync.\n","close":"Close the persistence database.\n","root":"Return the root PMap object used to store and retrieve persistent objects and their slots.\n","show":"Print to standard output a listing of all objects and IDs stored in PDB.\n","collectGarbage":"Remove from PDB all objects not accessible via the root object.\n","reopen":"Sync, close and reopen the PDB store.\n","newId":"Generate a new PDB id number for use as a persistent object's ppid.\n"},"copyright":"Steve Dekorte 2008\n","license":"BSD revised\n","category":"Databases\n","proto":"Obsidian\n","description":"An arbitrary graph database with support for on-disk garbage collection. Example use:\n\n<h4>Setup<\/h4>\n\n<pre>\nPDB open\nPDB root atPut(\"users\", PMap clone)\nPDB sync\nPDB close\n<\/pre>\n\nPMap is a Map\/Dictionary whose keys are lazily loaded from the database. \nPDB root is the root PMap in the database and the root object used for PDB's garbage collector. \nPDB sync needs to be called to write any changes to the database.\n\n<h4>Defining a Persistent Object<\/h4>\n\n<pre>\nUser := Object clone pSlots(name, email)\n<\/pre>\n\nThe pSlots(), declares which slots on the object should be persisted. \nThe List, Date, Sequence and Number primitives already know how to persist themselves.\n\n<h4>Inserting a Persistent Object<\/h4>\n\n<pre>\nPDB open \nuser := User clone setName(\"steve\") setEmail(\"steve@foo.com\")\nPDB root users atPut(\"steve\", user)\nPDB sync\nPDB close\n<\/pre>\n\n<h4>Accessing a Persistent Object<\/h4>\n\n<pre>\nuser := PDB root users at(\"steve\")\nwriteln(\"user name = \", user name, \" email = \", user email)\n<\/pre>\n\n<h4>Updating a Persistent Object<\/h4>\n\n<pre>\nuser setEmail(\"steve@newDomain.com\")\nPDB sync \n<\/pre>\n\nPDB sync will scan all persistent objects in the vm and save any with changes to their persistent slots. \nIf the object was already in the database, only its updated slots will be written.\n\n<h4>Removing an entry in a PMap<\/h4>\n\n<pre>\nPDB root users removeAt(\"steve\")\n<\/pre>\n\n<h4>Removing a persistent object<\/h4>\n\nThis is never done explicitly, instead calling:\n\n<pre>\nPDB collectGarbage\n<\/pre>\n\nWill remove all objects unreachable by the reference graph from the root PMap.\n\n<p>\nNotes: Currently, PDB is a singleton.\n"}},"SqlDatabase":{"SqlDatabase":{"category":"Databases\n","module":"SqlDatabase","slots":{}}},"Memcached":{"Memcached":{"credits":"Aleksey Yeschenko, 2009\n","license":"BSD revised\n","Aleksey":"Yeschenko, 2009\n","category":"Databases\n","module":"Memcached","description":"<a href=\"http:\/\/www.danga.com\/memcached\/\">memcached<\/a> is a high-performance,\ndistributed memory object caching system, generic in nature,\nbut intended for use in speeding up dynamic web applications\nby alleviating database load. Memcached is an Io client library for memcached,\nbased on C <a href=\"http:\/\/tangent.org\/552\/libmemcached.html\">libmemcached<\/a>.\n","slots":{"flushAll([expiration])":"Asks memcached to invalidate all existing items immediately (by default)\nor after the expiration specified.\nAlways returns true.\n","set(key, value[, expiration])":"Asks memcached to store the value identified by the key.\nReturns true on success, otherwise raises an exception.\n","atIfAbsentPut(key, value[, expiration])":"\tIf a value is present at the specified key, its value is returned.\n\tOtherwise, inserts the new value and returns it.\n","delete(key[, time])":"Asks memcached to delete an item with the given key.\ntime is the amount of time in seconds (or Unix time until which)\nthe client wishes the server to refuse \"add\" and \"replace\" commands\nwith this key.\nReturns true on success, false if there is no item with the given key.\nOtherwise raises an exception.\n","get(key)":"Asks memcached to retrieve data corresponding to the key.\nRaises \"NOT FOUND\" if the data is not there.\n","atPut(key, value[, expiration])":"\tAsks memcached to store the value identified by the key.\n\tSame as Memcached set, but returns self.\n","removeAt(key)":"\tAsks memcached to remove value with a given key. Returns self.\n","decr([offset])":"Asks memcached to decrement data for some item in place. The data for the item is\ntreated as decimal representation of a 64-bit unsigned integer. If the\ncurrent data value does not conform to such a representation, the\ncommands behave as if the value were 0.\nDefault offset is 1.\nReturns the new value.\n","prepend(key, value)":"Asks memcached to add this value to an existing key before existing value.\nReturns true on success, otherwise raises an exception.\nvalue should be a Sequence.\nSupported by memcached 1.2.4+\n","incr([offset])":"Asks memcached to increment data for some item in place. The data for the item is\ntreated as decimal representation of a 64-bit unsigned integer. If the\ncurrent data value does not conform to such a representation, the\ncommands behave as if the value were 0.\nDefault offset is 1.\nReturns the new value.\n","getMulti(keys)":"Asks memcached to retrieve data corresponding to the list of keys.\nReturns a Map with the results.\nIf some of the keys appearing in a retrieval request are not sent back\nby the server in the item list this means that the server does not\nhold items with such keys\n","replace(key, value[, expiration])":"Asks memcached to store the value identified by the key,\nbut only if the server *does* already hold data for this key.\nReturns true on success, false if there is already data for this key.\nOtherwise raises an exception.\n","at(key, optionalDefaultValue)":"\tAsks memcached to retrieve data corresponding to the key.\n\tReturns nil if the data is not there (or if the data *is* nil).\n","append(key, value)":"Asks memcached to add this value to an existing key after existing value.\nReturns true on success, otherwise raises an exception.\nvalue should be a Sequence.\nSupported by memcached 1.2.4+\n","stats":"Returns a Map with servers' statistics. Keys are server addresses,\nvalues are maps with actual stats.\n","with(servers)":"\tReturns a new instance of Memcached.\n\tAccepts a Sequence or a List of server addresses.\n","add(key, value[, expiration])":"Asks memcached to store the value identified by the key,\nbut only if the server *doesn't* already hold data for this key.\nReturns true on success, false in case of a collision.\nOtherwise raises an exception.\n","addServer(address)":"Adds a memcached server. address is a \"host:port\" string, e.g., \"127.0.0.1:11211\"\nReturns self.\n"}}},"QDBM":{"QDBM":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Databases\n","module":"QDBM","description":"An ordered key\/value database that supports transactions and arbitrary kay and value sizes.\n","slots":{"close":"\tCloses the database.\n","cursorKey":"\tReturns current cursor key or nil.\n","cursorRemove":"\tRemoves the current cursor postion. Returns self.\n","open(path)":"\tOpens the database.\n","abort":"\tAbort transaction. Returns self\n","commit":"\tCommit transaction. Returns self\n","sync":"\tSyncs the database. Returns self\n","cursorJumpBackward(key)":"\tMove cursor to previous record around key. Returns self\n","cursorFirst":"\tMove cursor to first record. Returns self\n","cursorPut(value)":"\tSets the value at the current cursor postion. Returns self.\n","size":"\tReturns number of records in database. Returns self\n","sizeAt(keySymbol)":"\tReturns the size of the value at the given key or nil if there is no such key.\n","cursorJumpForward(key)":"\tMove cursor to next record around key. Returns self\n","optimize":"\tOptimizes the database. Returns self\n","cursorLast":"\tMove cursor to last record. Returns self\n","atPut(keySymbol, valueSequence)":"\tSets the value of valueSequence with the key keySymbol. Returns self.\n","name":"\tReturns the name of the database.\n","cursorValue":"\tReturns current cursor value or nil.\n","cursorPrevious":"\tMove cursor to previous record. Returns true if there is another key, \n\tor false if there is no previous record.\n","atRemove(keySymbol)":"\tRemoves the specified key. Returns self\n","begin":"\tBegin transaction. Returns self\n","cursorNext":"\tMove cursor to next record. Returns true if there is another key, \n\tor false if there is no next record.\n","at(keySymbol)":"\tReturns a Sequence for the value at the given key or nil if there is no such key.\n"}}},"SQLite":{"SQLite":{"copyright":"\tSteve Dekorte, 2004\n","license":"\tBSD revised\n","category":"\tDatabases\n","module":"SQLite","description":"SQLite provides a embedded simple and fast (2x faster than PostgreSQL or MySQL) SQL database. See http:\/\/www.hwaci.com\/sw\/sqlite\/ for details. It's SQL command set is described at http:\/\/www.hwaci.com\/sw\/sqlite\/lang.html. SQLite was written by Dr. Richard Hipp who offers consulting services for custom modifications and support of SQLite. Example:\n<pre>\t\ndb := SQLite clone\ndb setPath(\"myDatabase.sqlite\")\ndb open\ndb exec(\"CREATE TABLE Dbm (key, value)\")\ndb exec(\"CREATE INDEX DbmIndex ON Dbm (key)\")\ndb exec(\"INSERT INTO Dbm ('key', 'value') VALUES ('a', '123')\")\ndb exec(\"INSERT INTO Dbm ('key', 'value') VALUES ('a', 'efg')\")\nrows := db exec(\"SELECT key, value FROM Dbm WHERE key='a'\")\ndb exec(\"DELETE FROM Dbm WHERE key='a'\")\nrows := db exec(\"SELECT key, value FROM Dbm WHERE key='a'\")\ndb close\n<\/pre>\n","slots":{"columnNamesOfTable(tableName)":"\tReturns a list containing the names of all columns in the specified table.\n","error":"\tResults a string containing the current error. \n\tIf there is no error, Nil is returned.\n","escapeString(aString)":"\tReturns a translated version of aString by making two \n\tcopies of every single-quote (') character. This has the effect \n\tof escaping the end-of-string meaning of single-quote within a string literal.\n","close":"\tCloses the database if it is open. Returns self. \n\tIf the database is open when the open is garbage collected, \n\tit will be automatically closed.\n","path":"\tReturns the path to the database file.\n","setPath(aSeq)":"\tSets the path to the database file. Returns self.\n","debugOff":"\tTurns off debugging.\n","timeoutSeconds":"\tReturns the number of seconds to wait before timing out an open call. \n\tIf the number is 0, an open call will never timeout.\n","exec(aString)":"\tOpens the database if it is not already open and executes\n\taString as an sql command. Results a List of Map objects or Nil if\n\tthere was an error. Each map holds the contents of a row.\n\tThe key\/value pairs of the maps being column name\/column value\n\tpairs for a row. \")\n","changes":"\tReturns the number of rows that were changed by the most \n\trecent SQL statement. Or Nil if the database is closed.\n","viewNames":"\tReturns a list containing the names of all views in the database.\n","version":"\tResults a string the version of SQLite being used.\n","tableNames":"\tReturns a list containing the names of all tables in the database.\n","setTimeoutSeconds(aNumber)":"\tSets the open timeout to aNumber. If aNumber is 0, an open \n\tcall will never timeout. Returns self.\n","debugOn":"\tTurns on debugging.\n","open(optionalPathString)":"\tOpens the database.Returns self on success or nil upon failure.\n\tIf the databse is locked, \"yield\" will be called until it is \n\taccessable or timeoutSeconds has expired.\n","lastInsertRowId":"\tReturns the number with the row id of the last row inserted.\n","isOpen":"\tReturns true if the database is open, false otherwise.\n"}}},"SkipDB":{"SkipDBM":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Databases\n","module":"SkipDB","description":"SkipDB is a skip-list based key-value database. SkipDBM manages any number of skipdbs within the same file. \nThe root skipdb can be accessed using the root method.\n","slots":{"beginTransaction":"\tBegin a transaction. Returns self.\n","open":"\tOpens the dbm. Returns self.\n","commitTransaction":"\tCommit a transaction. Returns self.\n","root":"\tReturns the root SkipDB.\n","compact":"\tCompacts the database. Returns self.\n","delete":"\tDeletes the db. Returns self.\n","at(pidNumber)":"\tReturns the SkipDB at the specified persistent ID or nil if it is not found.\n","setPath(aString)":"\tSets the path to the dbm folder. Returns self.\n","close":"\tCloses the dbm.\n","path":"\tReturns the path to the dbm. Returns self.\n"}},"SkipDBCursor":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Databases\n","module":"SkipDB","description":"An iterator object for a SkipDB.\n","slots":{"last":"\tMove cursor to last item. Returns self.\n","key":"\tReturns the current cursor key, or nil if the cursor is out of range.\n","next":"\tMove cursor to next item. Returns self.\n","goto(aKey)":"\tMove cursor to the specified key or nearest preceeding key. Returns self\n","first":"\tMove cursor to first item. Returns self.\n","value":"\tReturns the current cursor key, or nil if the cursor is out of range.\n","previous":"\tMove cursor to previous item. Returns self.\n"}},"SkipDB":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Databases\n","module":"SkipDB","description":"An ordered key\/value database implemented using a skiplist data structure.\n","slots":{"cursor":"\tReturns a new cursor to enumerate the receiver.\n","atRemove(keySymbol)":"\tRemoves the specified key. Returns self\n","size":"\tReturns the number of keys in the receiver.\n","at(keySymbol)":"\tReturns a Sequence for the value at the given key or nil if there is no such key.\n","headerPid":"\tReturns the headerPid number.\n","atPut(keySymbol, valueSequence)":"\tSets the value of valueSequence with the key keySymbol. Returns self.\n"}}},"Postgres":{"Postgres":{"category":"Databases\n","module":"Postgres","slots":{}}},"MySQL":{"MySQL":{"copyright":"Min-hee Hong, 2007\n","license":"MIT License\n","category":"Databases\n","module":"MySQL","description":"<a href=\"http:\/\/www.mysql.com\/\">MySQL<\/a> is a fast, multi-threaded,\nmulti-user SQL database server. IoMySQL is a MySQL binding for Io,\nby <a href=\"http:\/\/dahlia.pe.kr\/\">Min-hee Hong<\/a>.\n\n<pre><code>\nmy := MySQL establish(&quot;localhost&quot;, &quot;user&quot;, &quot;password&quot;, &quot;database&quot;)\n\n# Get rows by Map\nmy queryThenMap(&quot;SELECT * FROM rel&quot;) foreach(at(&quot;col&quot;) println)\n# Get rows by List\nmy query(&quot;SELECT * FROM rel&quot;) foreach(at(0) println)\n\nmy close\n<\/code><\/pre>\n","slots":{"connected":"\tReturns true if connected to the database, false otherwise.\n","establish":"\tEstablish a connection to a MySQL database.\n","lastInsertRowId":"\tReturns the value generated for an AUTO_INCREMENT column by the previous INSERT or UPDATE statement.\n","connect(host, user, password, database, port, unixSocket, useSSL)":"\tConnect to a MySQL database.\n","close":"\tCloses a previously opened connection.\n","query(aQueryString)":"\tPerform a SQL query and return a list of results.\n\t<pre>\n\tdb query(\"SELECT * FROM accounts\") foreach(println)\n\t<\/pre>\n"}}},"TokyoCabinet":{"TokyoCabinetPrefixCursor":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Databases\n","module":"TokyoCabinet","description":"A database cursor.\n","slots":{"last":"\tMove cursor to last record. Returns self\n","next":"\tMove cursor to next record. Returns true if there is another key, \n\tor false if there is no next record.\n","close":"\tCloses the database.\n","put(value)":"\tSets the value at the current cursor postion. Returns self.\n","first":"\tMove cursor to first record. Returns self\n","jump(key)":"\tMove cursor to record before key. Returns self\n","remove":"\tRemoves the current cursor postion. Returns self.\n","key":"\tReturns current cursor key or nil.\n","value":"\tReturns current cursor value or nil.\n","previous":"\tMove cursor to previous record. Returns true if there is another key, \n\tor false if there is no previous record.\n"}},"TokyoCabinet":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Databases\n","module":"TokyoCabinet","description":"An ordered key\/value database that supports transactions and arbitrary key and value sizes.\n","slots":{"optimize":"\tOptimizes the database. Returns self\n","transactionalAtPut(key, value)":" Transactionally insert the given key and value. Returns self.\n","close":"\tCloses the database.\n","path":"Returns the path of the database file.\n","atPut(keySymbol, valueSequence)":"\tSets the value of valueSequence with the key keySymbol. Returns self.\n","sizeAt(keySymbol)":"\tReturns the size of the value at the given key or nil if there is no such key.\n","prefixCursor":"\tReturns a new prefix cursor object.\n","setPath(aPath)":" Sets the path of the database file. Returns self.\n","open(path)":"\tOpens the database.\n","transactionalRemoveAt(key)":" Transactionally remove the given key. Returns self.\n","abort":"\tAbort transaction. Returns self\n","cursor":"\tReturns a new cursor object.\n","commit":"\tCommit transaction. Returns self\n","sync":"\tSyncs the database. Returns self\n","compareType":"Returns the compare type function name used.\n","atRemove(keySymbol)":"\tRemoves the specified key. Returns self\n","setCompareType(name)":"\tSets the compare type function used to compare keys in the database. Valid compare types include:\n\t\"lexical\", \"decimal\", \"int32\", \"int64\" and \"path\". Returns self.\n","begin":"\tBegin transaction. Returns self\n","atApple(keySymbol, valueSequence)":"\tAppends valueSequence to the current value at keySymbol. Returns self.\n","size":"\tReturns number of records in the database. Returns self\n","at(keySymbol)":"\tReturns a Sequence for the value at the given key or nil if there is no such key.\n"}},"TokyoCabinetCursor":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Databases\n","module":"TokyoCabinet","description":"A database cursor.\n","slots":{"last":"\tMove cursor to last record. Returns self\n","next":"\tMove cursor to next record. Returns true if there is another key, \n\tor false if there is no next record.\n","close":"\tCloses the database.\n","put(value)":"\tSets the value at the current cursor postion. Returns self.\n","first":"\tMove cursor to first record. Returns self\n","jump(key)":"\tMove cursor to record before key. Returns self\n","remove":"\tRemoves the current cursor postion. Returns self.\n","key":"\tReturns current cursor key or nil.\n","value":"\tReturns current cursor value or nil.\n","previous":"\tMove cursor to previous record. Returns true if there is another key, \n\tor false if there is no previous record.\n"}}},"SQLite3":{"SQLite3":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"\tDatabases\n","module":"SQLite3","description":"\tSQLite provides a embedded simple and fast \n\t(2x faster than PostgreSQL or MySQL) SQL database. \n\tSee http:\/\/www.hwaci.com\/sw\/sqlite\/ for details. \n\tIt's SQL command set is described \n\tat http:\/\/www.hwaci.com\/sw\/sqlite\/lang.html. \n\tSQLite was written by Dr. Richard Hipp who offers consulting \n\tservices for custom modifications and support of SQLite. Example:\n\t<p>\n<pre>\t\ndb := SQLite clone\ndb setPath(\"myDatabase.sqlite\")\ndb open\ndb exec(\"CREATE TABLE Dbm (key, value)\")\ndb exec(\"CREATE INDEX DbmIndex ON Dbm (key)\")\ndb exec(\"INSERT INTO Dbm ('key', 'value') VALUES ('a', '123')\")\ndb exec(\"INSERT INTO Dbm ('key', 'value') VALUES ('a', 'efg')\")\nrows := db exec(\"SELECT key, value FROM Dbm WHERE key='a'\")\ndb exec(\"DELETE FROM Dbm WHERE key='a'\")\nrows := db exec(\"SELECT key, value FROM Dbm WHERE key='a'\")\ndb close\n<\/pre>\n","slots":{"setTimeoutSeconds(aNumber)":"\tSets the open timeout to aNumber. If aNumber is 0, an open\n\tcall will never timeout. Returns self.\n","error":"\tResults a string containing the current error. If there is no error, Nil is returned.\n","escapeString(aString)":"\tReturns a translated version of aString by making two copies of \n\tevery single-quote (') character. This has the effect of escaping the \n\tend-of-string meaning of single-quote within a string literal.\n","close":"\tCloses the database if it is open. Returns self. If the database is open when the open is garbage collected, it will be automatically closed.\n","debugOn":"\tTurns on debugging.\n","timeoutSeconds":"\tReturns the number of seconds to wait before timing out an\n\topen call. If the number is 0, an open call will never timeout.\n","exec(aString)":"\tOpens the database if it is not already open and executes\n\taString as an sql command. Results a List of Map objects or Nil if\n\tthere was an error. Each map holds the contents of a row.\n\tThe key\/value pairs of the maps being column name\/column value\n\tpairs for a row.\n","path":"\tReturns the path to the database file.\n","version":"\tResults a string the version of SQLite being used.\n","changes":"\tReturns the number of rows that were changed by the most\n\trecent SQL statement. Or Nil if the database is closed.\n","tableNames":"\tReturns a list containing the names of all tables in the database.\n","debugOff":"\tTurns off debugging.\n","viewNames":"\tReturns a list containing the names of all\n\tviews in the database.\n","setPath":"\tSets the path to the database file. Returns self.\n","open(optionalPathString)":"\tOpens the database. If there is an optionalPathString argument,\n\tthe path is set to it's value before opening the database. If path is \"\" or \":memory:\"\n\ta database will be created in-memory, otherwise the file specified by path is opened.\n\tReturns self or Nil upon failure.\n\n\tIf the databse is locked, \"yield\" will be called until it is accessable or\n\ttimeoutSeconds has expired. \"\"\n","lastInsertRowId":"\tReturns the number with the row id of the last row inserted.\n","columnNamesOfTable(tableName)":"\tReturns a list containing the names of all columns in the specified table.\n","isOpen":"\tReturns true if the database is open, false otherwise.\n"}}}},"Bridges":{"CFFI":{"CFFI":{"copyright":"Trevor Fancher, 2006\n","license":"New BSD license\n","category":"Bridges\n","module":"CFFI","slots":{}},"CFFIPointer":{"copyright":"2006 Trevor Fancher. All rights reserved.\n","license":"BSD revised\n","category":"Bridges\n","module":"CFFI","description":"An Io interface to C\n","slots":{}}},"Python":{"Python":{"copyrigth":"Aslak Gronflaten, 2006\n","license":"BSD revised\n","module":"Python","category":"Bridges\n","credit":"Based on code by Steve Dekorte\n","description":"This object provides access the world of python.\n","slots":{}}},"ObjcBridge":{"ObjcBridge":{"copyright":"2003, Steve Dekorte\n","license":"Revised BSD\n","category":"Bridges\n","module":"ObjcBridge","slots":{"classNamed(aSeq)":" Returns a proxy to the ObjC class with the specified name or nil if no match is found.\n","main":"Calls NSApplicationMain().\n","debug":"On Turns debugging off. Returns self\n","autoLookupClassNamesOn":"Removes the ObjC forward method from the Lobby. Returns self.\n"}}}},"Server":{"User":{"User":{"credits":"Windows code by Mike Austin\n","copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Server\n","module":"User","description":"\tThis object provides access to the local operating system's information \n\tabout the current user.\n","slots":{"homeDirectory":"\tReturns the current user's home directory as a Directory object.\n","name":"\tReturns the current user's name.\n"}}},"Syslog":{"Syslog":{"copyright":"\tJeremy Tregunna, 2005\n","license":"\tRevised BSD Revised\n","category":"Server\n","module":"Syslog","description":"Provides access to a Unix system's system logger.\n<p>\n<pre>\nlogger = Syslog clone do(\n\tidentity(\"SyslogTest\")\n\tfacility(facilityMap at(\"LOG_USER\"))\n\toptions(List append(optionsMap at(\"LOG_PID\"), optionsMap at(\"LOG_CONS\")))\n\tpriority(priorityMap at(\"LOG_INFO\"))\n\topen(facility, options)\n\tmask(List append(maskMap at(\"LOG_PRIMASK\")))\n\tlog(priority, \"*** Merely a test ***\")\n\tclose\n)\n<\/pre>\t\n\n<p>\nNote: This is partially tested. Please let me know of any problems you happen to stumble across, or if it could be better. --Jeremy Tregunna\n<p>\n","slots":{"reopen(aFacility, someOptions, optionalIdentity)":"\tReopens an already open log session. This is useful if you wish to \n\tchange the facility you are logging to, the options you are logging \n\twith, or the identity of the session. Takes the same options as the open slot.\n","options(optionalOptions)":"\tIf optionalOptions is specified, it should represent a list of the logging \n\toptions you can find in the optionsMap slot. All the values in the supplied \n\taList will be OR'd together when you call the open or reopen slots. \n\tReturns the list of options if optionalFacility is omitted.\n","identity(optionalIdentity)":"\tIf optionalIdentity is specified, provides an identity for all of the messages you will be sending to the syslog daemon. Returns the identity.\n","close":"\tCloses a log that has previously been opened for writing.\n","mask(optionalMask)":"\tIf optionalMask is specified, optionalMask is a list which contains \n\tany one or more values stored in the maskMap hash that will be OR'd \n\ttogether, to provide the proper mask. Returns the logging mask (as a List).\n","open(aPriority, someOptions, optionalIdentity)":"\tOpens the syslog for writing. optionalIdentity need not be entered \n\tand will default to the name of the distribution of Io you are running \n\tor if you have embedded Io into your application and set \n\tLobby distribution = \"foo\", it will be set to \"foo\".\n","maskMap":"\tContains keys\/value pairs which represent numbers that specify the \n\tlogging mask. These values may be any one (or more) of the following:\n\t<p>\n\t<ul>\n\t<li>LOG_PRIMASK<\/li>\n\t<li>LOG_FACMASK<\/li>\n\t<\/ul>\n","facility(optionalFacility)":"\tSpecifies the logging facility, which can be one of any of the values \n\tfound in the facilityMap map. If optionalFacility is omitted, returns \n\tthe currently set facility.\n","optionsMap":"\tA map containing key\/value pairs holding all available options. These include:\n\t<p>\n\t<ul>\n\t<li>LOG_PID<\/li>\n\t<li>LOG_CONS<\/li>\n\t<li>LOG_ODELAY<\/li>\n\t<li>LOG_NDELAY<\/li>\n\t<li>LOG_NOWAIT<\/li>\n\t<li>LOG_PERROR<\/li>\n\t<\/ul>\n","facilityMap":"\tContains the following keys, which represent numbers that can be used when opening a log:\n\t<p>\n\t<ul>\n\t <li>LOG_KERN<\/li>\n\t <li>LOG_USER<\/li>\n\t <li>LOG_MAIL<\/li>\n\t <li>LOG_DAEMON<\/li>\n\t <li>LOG_AUTH<\/li>\n\t <li>LOG_SYSLOG<\/li>\n\t <li>LOG_LPR<\/li>\n\t <li>LOG_NEWS<\/li>\n\t <li>LOG_UUCP<\/li>\n\t <li>LOG_CRON<\/li>\n\t <li>LOG_AUTHPRIV<\/li>\n\t <li>LOG_FTP<\/li>\n\t <li>LOG_RESERVED0<\/li>\n\t <li>LOG_RESERVED1<\/li>\n\t <li>LOG_RESERVED2<\/li>\n\t <li>LOG_RESERVED3<\/li>\n\t <li>LOG_LOCAL0<\/li>\n\t <li>LOG_LOCAL1<\/li>\n\t <li>LOG_LOCAL2<\/li>\n\t <li>LOG_LOCAL3<\/li>\n\t <li>LOG_LOCAL4<\/li>\n\t <li>LOG_LOCAL5<\/li>\n\t <li>LOG_LOCAL6<\/li>\n\t <li>LOG_LOCAL7<\/li>\n\t<\/ul>\n","priority(optionalPriority)":"\tIf optionalPriority is specified, sets the value, and returns it. \n\tIf no value is specified, will return the previously stored value if \n\tone has been set previously.\n","priorityMap":"\tContains key\/value pairs for logging priorities for use when calling the log() method. These include:\n\t<p>\n\t<ul>\n\t<li>LOG_EMERG<\/li>\n\t<li>LOG_ALERT<\/li>\n\t<li>LOG_CRIT<\/li>\n\t<li>LOG_ERR<\/li>\n\t<li>LOG_WARNING<\/li>\n\t<li>LOG_NOTICE<\/li>\n\t<li>LOG_INFO<\/li>\n\t<li>LOG_DEBUG<\/li>\n\t<\/ul>\n","isOpen":"\tReturns self if the log is opened for writing. Otherwise, returns Nil.\n","log":"\tWrites the supplied data to the log. Requires 2 arguments:\n\t<p>\n\t<ul>\n\t<li>Logging Priority<\/li>\n\t<li>Message to log<\/li>\n\t<\/ul>\n"}}},"ReadLine":{"ReadLine":{"copyright":"Jonaa Eschenburg, 2007\n","license":"BSD revised\n","category":"Server\n","module":"ReadLine","description":"Binding to GNU readline.\n","slots":{}}},"NullAddon":{"NullAddon":{"copyright":"Samuel A. Falvo II, 2007\n","license":"BSD revised\n","category":"Server\n","module":"NullAddon","description":"A do-nothing addon for Io, primarily intended to serve as\na skeleton for writing your own addons, without having to\nrewrite all the boilerplate yourself. It implements only\none method, hello, which does the obvious job of greeting the world.\n","slots":{}}},"Curses":{"Curses":{"credits":"Original version by Edwin Zacharias. getCh method by Scott Dunlop.\n","copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Server\n","module":"Curses","description":"Curses allows writing and reading at arbitrary positions on the terminal. You have to call init to set the terminal to curses mode and end to end curses mode. The terminal is not updated until refresh is called. It is a bad idea to use the standard io's read and write methods when the terminal is in curses mode. The Curses primitive was written by Edwin Zacharias.\n<BR><BR>\nHere's an example that prints Hello at column 5 and row 7;\n<p>\n<pre>\nCurses init\nCurses move(5, 7) print(\\\"Hello\\\")\nCurses refresh\nCurses end\n<\/pre>\n","slots":{"setBackgroundCyan":"\tSets the background color to cyan.\n","setBackgroundGreen":"\tSets the background color to green.\n","hasColors":"\tReturns true if the terminal supports color, false otherwise.\n","width":"\tReturns a Number containing the width of the current screen.\n","setForegroundMagenta":"\tSets the foreground color to magenta.\n","getCh":"\tReads a single-byte character from the terminal associated with the\n\tcurrent or specified window. Returns a Number containing the byte.\n","setBackgroundMagenta":"\tSets the background color to magenta.\n","end":"\tEnds curses mode. This should be called before standard io's read\n\tand write methods are used. Returs self.\n","input(n)":"\tReturns user input up to a return, or a maximun of n characters.\n","writeCharacter(aCharacter)":"\tPrints the aCharacter to the current position on the terminal,\n\toverwriting existing text on the terminal. Returns self.\n","noEcho":"\tDoes not echo user input to terminal. Returns self.\n","cBreak(aString)":"\tDisables line buffering and erase\/kill character-processing.\n\tcBreak should be on for most purposes. Returns self.\n","height":"\tReturns a Number containing the height of the current screen.\n","setForegroundYellow":"\tSets the foreground color to yellow.\n","refresh":"\tCopies the current buffer to the screen. This must be called to make\n\tchanges to the screen. Returns self.\n","get(n)":"\tReturns n characters from the terminal. n is optional and defaults to 1.\n","scroll(num)":"    Scrolls up num lines.\n    num is optional and defaults to 1. Returns self.\n","setForegroundCyan":"\tSets the foreground color to cyan.\n","setBackgroundBlack":"\tSets the background color to black.\n","echo":"\tEchoes user input to terminal. Returns self.\n","move(x, y)":"\tMoves the cursor to column x and row y on the terminal.\n\t(0, 0) is at the top-left of the terminal. Returns self.\n\t- Be careful if you are used to the C implementation of Curses\n\t- as the coordinates are the other way around. Here they are like\n\t- graphical XY coordinates, whereas in C Curses the rational is\n\t- more like typing text. You go down on the line you want and then\n\t- you move horizontally.\n","setForegroundBlack":"\tSets the foreground color to black.\n","setBackgroundBlue":"\tSets the background color to blue.\n","begin":"\tSets the terminal to curses mode.\n\tThis should be called before any other curses methods.\n\tReturns self.\n","x":"\tReturns the cursor x position.\n","setForegroundRed":"\tSets the foreground color to red.\n","setForegroundBlue":"\tSets the foreground color to blue.\n","y":"\tReturns the cursor y position.\n","setBackgroundWhite":"\tSets the background color to white.\n","nodelay(aBoolean)":"\tEnables or disables block during read.\n\tIf aNumber is zero, nodelay is set to be false, otherwise it is set to be true.\n","setScrollingRegion(top, bottom)":"    Sets the scrolling region; top and bottom are the line numbers of the top\n    and button margin. Returns self.\n","scrollok(aBoolean)":"    Enables \/ Disables automatic scrolling. Return self.\n","insert(aString)":"\tInserts the string at the current position on the terminal,\n\tpushing existing text to the right. Returns self.\n","print(aString)":"\tPrints the string to the current position on the terminal,\n\toverwriting existing text on the terminal. Returns self.\n","setBackgroundRed":"\tSets the background color to red.\n","noCBreak":"\tAllows line buffering and erase\/kill character-processing.\n\tcBreak should be on for most purposes. Returns self.\n","setForegroundGreen":"\tSets the foreground color to green.\n","setBackgroundYellow":"\tSets the background color to yellow.\n","clear":"\tClears the terminal. Nicer than erase. Returns self.\n","delete(n)":"\tDeletes n characters at the current position. Text to the right is shifted left.\n\tn is optional and defaults to 1. Returns self.\n","clearToEndOfLine":"\tClears the text from the cursor to the end of the line. Returns self.\n","setForegroundWhite":"\tSets the foreground color to white.\n"}}},"EditLine":{"EditLine":{"copyright":"Jonathan Wright, 2007\n","license":"BSD revised\n","category":"Server\n","module":"EditLine","description":"Binding to libedit (BSD version of readline).\n","slots":{}}},"SystemCall":{"SystemCall":{"license":"BSD revised\n","category":"Server\n","module":"SystemCall","description":"A binding for \"callsystem - system() on steorids\"\n\n<UL>\n<LI> asynchonous running of a child process\n<LI> setup of the environment\n<LI> substitution of environment variables\n<LI> connect all 3 standard streams to pipes, null devices, or files\n<LI> pathname handling\n<\/UL>\n\nExample use;\n<pre>\t\nsc = SystemCall clone\n<\/pre>\n","slots":{"asyncRun(command, argList, envMap)":" Run the system call.\n"}}}},"Networking":{"Beanstalk":{"Beanstalk":{"credits":"Aleksey Yeschenko, 2009. Default arguments and some other things taken from beanstalk-client-ruby by Keith Rarick.\n","license":"BSD revised\n","Aleksey":"Yeschenko, 2009\n","category":"Networking\n","module":"Beanstalk","description":"beanstalkd is a fast, distributed, in-memory workqueue service. See http:\/\/xph.us\/software\/beanstalkd\/\n<br \/>An example from http:\/\/xph.us\/software\/beanstalkd\/:\n<br \/>First, have one process put a job into the queue:\n<pre>\nproducer := Beanstalk clone connect(\"127.0.0.1:11300\")\nproducer put(\"hello\")\n<\/pre>\n\nThen start another process to take jobs out of the queue and run them:\n<pre>\nworker := Beanstalk clone connect(\"127.0.0.1:11300\")\nloop(\n\tjob := worker reserve\n\tjob body println # prints \"hello\"\n\tjob delete\n)\n<\/pre>\nSee Beanstalk.io code and protocol description (http:\/\/github.com\/kr\/beanstalkd\/tree\/master\/doc\/protocol.txt) for details.\nBoth are short and easy to read.\n\n<br \/>Stat commands depend on <a href=\"http:\/\/github.com\/why\/syck\/tree\/a4f241be5d247853aea6127d02dbdedd8a1dd477\/ext\/io\">YAML<\/a>.\n","slots":{"bury(id, pri)":" Puts a job into the \"buried\" state\n","connect(address)":" Connects to a beanstalk server. address is a \"host:port\" string, e.g., \"127.0.0.1:11300\"\n","touch(id)":" Allows a worker to request more time to work on a job.\n","release(id)":" Puts a reserved job back into the ready queue\n","put(body, pri, delay, ttr)":"\tInserts a job into the queue.\n\t<br \/>pri - priority, an integer < 2**32. Jobs with smaller priority values will be\n\tscheduled before jobs with larger priorities. The most urgent priority is 0;\n\tthe least urgent priority is 4294967295.\n\t<br \/>delay - an integer number of seconds to wait before putting the job in\n\tthe ready queue. The job will be in the \"delayed\" state during this time.\n\t<br \/>ttr - time to run, an integer number of seconds to allow a worker to run this job.\n","delete(id)":" Removes a job with a given id from the server, entirely\n","reserve(timeout)":" Returns and reserves a job (waits until one becomes available if necessary)\n"}}},"Twitter":{"TwitterFollowersCursor":{"category":"Networking\n","module":"Twitter","description":"Inherits from TwitterFriendsFollowersCursor. requestType is \"asFollowerIds\".\n","slots":{}},"TwitterResponse":{"category":"Networking\n","module":"Twitter","slots":{"results":"Returns response results.\n","body":"Returns request to which this is the response.\n","rateLimitRemaining":"Returns the rate limit remaining.\n","rateLimitExpiration":"Returns the rate limit expiration.\n"}},"TwitterSearch":{"category":"Networking\n","module":"Twitter","slots":{"query":"Returns the search query.\n","results":"Returns the results for the current page.\n","sinceUpdateId":"Returns the current page number of search results.\n","perPage":"Returns the results per page.\n","setPerPage(aSeq)":" Sets the results per page. Returns self.\n","cursor":"Returns the TwitterSearchCursor for the first page.\n","setQuery(aSeq)":" Sets the query. Returns self.\n"}},"TwitterSearchCursor":{"next":"Moves the index to the next result and returns it.\n","results":"Returns the list of results.\n","module":"Twitter","search":"Returns the search string.\n","Returns":"the current result or nil if there are no more results.\n","slots":{},"category":"Networking\n","index":"Index of cursor pointer.\n","fetchNext":"Fetches the next page of results. Returns self.\n"},"TwitterFriendsCursor":{"category":"Networking\n","module":"Twitter","description":"Inherits from TwitterFriendsFollowersCursor. requestType is \"asFriendIds\".\n","slots":{}},"TwitterAccountProfile":{"category":"Networking\n","module":"Twitter","description":"Object representing a twitter account profile.\n","slots":{}},"TwitterAccount":{"category":"Networking\n","module":"Twitter","description":"Object representing a twitter account.\n","slots":{"update":"Fetch the latest basic profile settings from twitter.\n","homeTimeline":"Returns the home timeline tweets for this account\n","consumerKey":"Returns the OAuth consumerKey.\n","updateBackgroundImage":"Fetch the latest background image settings from twitter.\n","consumerSecret":"Returns the OAuth consumerSecret.\n","requestOAuthAccess":"\t\tSets the token and tokenSecret using CURL + Oauth oob.\n\t\tconsumerKey, consumerSecret, username and password must be set.  Returns self\n","userExists(aScreenName)":" Returns true if the specified user exists, false otherwise.\n","token":"Returns the OAuth token.\n","request":"Returns a new TwitterRequest object for this account.\n","mentions":"Returns mentions for this account.\n","password":"Returns the account password.\n","follow(aScreenName)":" Follow the user with the specified screen name. Returns results of the request.\n","screenName":"Returns the account screenName.\n","setToken(aToken)":" Sets the OAuth token.  Returns self.\n","setAccessTokenSecret(aTokenSecret)":" Sets the OAuth token secret.  Returns self.\n","account":"Returns account associated with this profile.\n","sidebarFillColor":"Returns the sidebarFillColor set in the twitter profile.\n","show":"Returns a Map containing attributes related to the Twitter user associated with this account\n","showUserWithId(anId)":" Returns a Map containing attributes related to the Twitter user associated with anId\n","userTimeline":"Returns the user timeline tweets for this account\n","retweet(tweetId)":" Retweets the tweet with tweetId\n","isSuspended(aScreenName)":" Returns true if the specified screenName is a suspended account, false otherwise.\n","updateRateLimits":"Updates the rate limits. Returns self.\n","unfollowId(userId)":" Unfollow the user with the specified screen id. Returns self.\n","publicTimeline":"Returns the public timeline tweets for this account\n","unfollow(aScreenName)":" Unfollow the user with the specified screen name. Returns self.\n","twitterIdForScreenName(aScreenName)":" Returns twitter id for the specified screenName.\n","location":"Returns the geographical location set in the twitter profile.\n","friendsCursor":"Returns a new TwitterFriendsCursor instance for this account.\n","isLimited":"Returns true if the account's rate limit is exceeded, false otherwise.\n","tilesBackgroundImage":"Returns the tilesBackgroundImage set in the twitter profile.\n","profile":"Returns the account Profile object.\n","hasFriend(aScreenName)":" Returns true if the account has the specified friend, false otherwise.\n","hasFollower(aScreenName)":" Returns true if the account has the specified follower, false otherwise.\n","updateColors":"Fetch the latest profile color settings from twitter.\n","url":"Returns the url to the twitter profile.\n","rateLimitExpiration":"Returns the account rateLimitExpiration.\n","accessTokenSecret":"Returns the OAuth token secret.\n","resultsFor(aRequest)":" Returns results for the request.\n","followersCursor":"Returns a new TwitterFollowersCursor instance for this account.\n","setAccount(anAccount)":" Sets the account associated with this profile. Returns self.\n","sidebarBorderColor":"Returns the sidebarBorderColor set in the twitter profile.\n","followId(userId)":" Follow the user with the specified id. Returns results of the request.\n","showUser(aScreenName)":" Returns a Map containing attributes related to the Twitter user associated with aScreenName\n","setConsumerSecret(aKey)":" Sets the OAuth consumerSecret.  Returns self.\n","setProfile(aProfile)":" Sets the account profile. Returns self.\n","imageFile":"Returns the imageFile set in the twitter profile.\n","setConsumerKey(aKey)":" Sets the OAuth consumerKey.  Returns self.\n","setScreenName(aSeq)":" Sets the account screenName. Returns self.\n","backgroundColor":"Returns the backgroundColor set in the twitter profile.\n","updateImage":"Fetch the latest image settings from twitter.\n","textColor":"Returns the textColor set in the twitter profile.\n","updateStatus(messageText, tweetId)":" Updates the status message and returns the results of the request.\n","name":"Returns the name associated with the profile.\n","description":"Returns the description set in the twitter profile.\n","setRateLimitExpiration(aNumber)":" Sets the account rateLimitExpiration. Returns self.\n","hasProtectedUpdates":"Returns true if the account has protected updates, false otherwise.\n","rateLimitRemaining":"Returns the account rateLimitRemaining.\n","setName(aSeq)":" Sets the name associated with the profile. Returns self.\n","linkColor":"Returns the linkColor set in the twitter profile.\n","backgroundImageFile":"Returns the backgroundImageFile set in the twitter profile.\n","setPassword(aSeq)":" Sets the account password. Returns self.\n","setRateLimitRemaining(aNumber)":" Sets the account rateLimitRemaining. Returns self.\n","deleteStatus(tweetId)":" Deletes the specified tweet and returns the results of the request.\n"}},"TwitterException":{"category":"Networking\n","module":"Twitter","slots":{"isBlocked":"Returns isBlocked attribute.\n","wasntFriend":"Returns wasntFriend attribute.\n","isNotFound":"Returns isNotFound attribute.\n","isFollowedSelf":"Returns isFollowedSelf attribute.\n","userIsMissing":"Returns userIsMissing attribute.\n","isBlockedOrSuspendedOrProtected":"Returns isBlockedOrSuspendedOrProtected attribute.\n","isFollowLimit":"Returns isFollowLimit attribute.\n","isNotAuthorized":"Returns isNotAuthorized attribute.\n","isSuspended":"Returns isSuspended attribute.\n","isRateLimited":"Returns isRateLimited attribute.\n","isForbidden":"Returns isForbidden attribute.\n","isBadRequest":"Returns isBadRequest attribute.\n","isStatusDuplicate":"Returns isStatusDuplicate attribute.\n","isUnknown":"Returns isUnknown attribute.\n","isAlreadyFollowing":"Returns isAlreadyFollowing attribute.\n","isInternalError":"Returns isInternalError attribute.\n","isDown":"Returns isDown attribute.\n","isOverloaded":"Returns isOverloaded attribute.\n"}},"TwitterRequest":{"category":"Networking\n","module":"Twitter","description":"Represents a Twitter API request and contains its results.\n","slots":{"delegate":"Delegate for request callbacks.\n","httpMethod":"\"get\"\n","execute":"Sends the request. Returns the response object.\n","host":"\"api.twitter.com\"\n","response":"This slot holds a TwitterResponse object for this request.\n","account":"Returns the account to pull the Oauth tokens from\n","path":"Request path.\n"}}},"SecureSocket":{"Certificate":{"copyright":"Joe Osborn, 2007\n","license":"BSD revised\n","category":"Networking\n","module":"SecureSocket","description":"Read-only interface to SSL X509 certificates.\n","slots":{"version":"Returns the version.\n","attributes":"Returns the attributes.\n","issuerName":"Returns the issuerName.\n","serialNumber":"Returns the serialNumber.\n","subjectName":"Returns the subjectName.\n","extensions":"Returns the extensions.\n","notAfter":"Returns the notAfter value.\n","notBefore":"Returns the notBefore value.\n"}},"SecureSocket":{"license":"BSD revised\n","dependsOn":"Socket\n","category":"Networking\n","module":"SecureSocket","slots":{"ValidationFail":"Returns ValidationFail attribute as a number.\n","asyncUdpServerRead":"?\n","asyncConnectBIO":"Performs asyncConnectBIO.\n","asyncStreamRead":"Read available data and return it.\n","getSocketWriteLowWaterMark":"Returns WriteLowWaterMark attribute.\n","setSocketReadBufferSize(numberOfBytes)":" Sets read buffer size. Returns self.\n","setSocketWriteLowWaterMark(numberOfBytes)":"  Sets write low water mark. Returns self.\n","asyncConnectSSL":"Performs asyncConnectSSL.\n","wantsWrite":"Returns IoSecureSocket_wantsWrite attribute.\n","asyncAccept":"Accept a connection asynchronously.\n","setSocketWriteBufferSize(numberOfBytes)":"  Sets write buffer size. Returns self.\n","isOpen":"Returns true if socket is open, false otherwise.\n","rawCertificate":"Returns rawCertificate.\n","getSocketReadLowWaterMark":"Returns ReadLowWaterMark attribute.\n","wantsRead":"Returns wantsRead attribute.\n","supportsDTLS":"Returns true if server supports DTLS, false otherwise.\n","rawPeerCertificate":"Returns rawPeerCertificate.\n","descriptorId":"Returns descriptorId.\n","asyncWrite(aSeq)":" Writes aSeq to the socket. Returns self.\n","ValidationOkay":"Returns ValidationOkay attribute as a number.\n","shutdown":"close the socket connection. Returns self.\n","isDatagram":"Returns isDatagram attribute.\n","setSocketReadLowWaterMark(numberOfBytes)":" Sets read low water mark. Returns self.\n","rawValidate":"Performs rawValidate.\n","rbioReady":"Returns rbioReady attribute.\n","asyncUdpRead":"?\n","isConnected":"Returns true if socket is connected, false otherwise.\n"}},"SecureClient":{"copyright":"Joe Osborn, 2007\n","license":"BSD revised\n","dependsOn":"Client\n","category":"Networking\n","module":"SecureSocket","description":"Interface to secure network communication. \nA SecureClient is a wrapper on an OpenSSL SSL_CTX object\nand supports both TLSv1 and DTLSv1.\n","slots":{"setCRLFile(aPath)":" Sets the CRL file. Returns self.\n","useTLS":"Returns useTLS value.\n","useDTLS":"Returns useDTLS value.\n","setKeyFile(aPath)":" Sets the key file. Returns self.\n","setCertFile(aPath)":" Sets the Certificate file. Returns self.\n","connectionToServer":"Returns connectionToServer.\n","setCAFile(aPath)":" Sets the CA file. Returns self.\n"}},"SecureServer":{"copyright":"Joe Osborn, 2007\n","license":"BSD revised\n","dependsOn":"Server\n","category":"Networking\n","module":"SecureSocket","description":"Interface to secure network communication. \nA SecureServer is a wrapper on an OpenSSL SSL_CTX object\nand supports both TLSv1 and DTLSv1.\nExample:\n\n<pre>\n\/\/...\n<\/pre>\n","slots":{"dtlsWrap":"Returns dtlsWrap value.\n","setKeyFile(path)":" Sets the key file. Returns self.\n","setPort(aNumber)":" Sets the port on which the server will listen  for connections. Returns self.\n","useTLS":"Returns useTLS value.\n","udpRecvIP":"Returns udpRecvIP value.\n","port":"Returns the port on which the server will listen for connections.\n","supportsDTLS":"Returns true if server supports DTLS, false otherwise.\n","setCRLFile(path)":" Sets the CRL file. Returns self.\n","setRequiresClientCertificate(aBool)":" Sets the requires client certificate attribute. Returns self.\n","stop":"Stops the server if it is running. Returns self.\n","useDTLS":"Returns useDTLS value.\n","dispatchUdp":"Returns dispatchUdp value.\n","setCertFile(path)":" Sets the certificate file. Returns self.\n","setHost(hostName)":" Sets the hostName. Returns self.\n","setCAFile(path)":" Sets the CA file. Returns self.\n","tlsWrap":"Returns tlsWrap value.\n"}}},"DistributedObjects":{"DOServer":{"category":"Networking\n","module":"DistributedObjects","description":"An experimental distributed objects server. Example;\n<pre>\nTest := Object clone\nTest test := method(v, \n\twrite(\"got test '\", v, \"'\\n\")\n\treturn List clone append(1)\n)\n\ndoServer := DOServer clone\ndoServer setRootObject(Test clone)\ndoServer setPort(8456)\ndoServer start\n<\/pre>\n","slots":{"setRootObject(anObject)":" Sets the root object which incoming messages will be sent to.\n"}},"DOProxy":{"category":"Networking\n","module":"DistributedObjects","slots":{}},"MDOServer":{"category":"Networking\n","module":"DistributedObjects","description":"A Minimal Distributed Objects server. Example;\n<pre>\nDateServer := Object clone do(\n\tacceptedMessageNames := list(\"currentDate\")\n\tcurrentDate := method(Date clone asNumber)\n)\n\nmdoServer := MDOServer clone \nmdoServer setHost(\"127.0.0.1\")  setPort(8123) \nmdoServer setLocalObject(DateServer clone)\nmdoServer start\n<\/pre>\n","slots":{}},"MDOConnection":{"category":"Networking\n","module":"DistributedObjects","description":"A Minimal Distributed Objects connection. Example;\n<pre>\ndateServerCon := MDOConnection clone setHost(\"127.0.0.1\") setPort(8123) connect\nwriteln(\"date from date server: \", Date fromNumber(dateServerCon currentDate))\ndateServerCon close\n<\/pre>\n\nSee the docs for MDOServer for the DateServer code.\n<p>\nA MDOConnection will pause calling coroutines until the response is received. \nMutliple requests can be sent before a single request returns if they are sent \nfrom separate coroutines.\n","slots":{}},"DOConnection":{"category":"Networking\n","module":"DistributedObjects","description":"The DOConnection object is useful for communicating with remote servers in a way that makes it look just like the sending of local messages. Proxies are automatically created on either side for passed objects, with the exception of strings and numbers, which are passed by value. Example:\n<pre>\ncon := DOConnection clone setHost(\"127.0.0.1\") setPort(8456) connect\nresult := con serverObject test(1)\nwriteln(result)\nr := result at(0)\nwriteln(r)\nr := result at(1)\nwriteln(r)\n<\/pre>\n\nImplementation Notes:\n<p>\n\nThe format of the Distributed Objects message is a list of NullCharacter\nterminated strings in one of these two formats:\n<p>\nSend message format:\n\n<pre>\ns NullCharacter targetId NullCharacter messageName NullCharacter argCount NullCharacter argType NullCharacter argValue NullCharacter (next arg type and value, etc)\n<\/pre>\n\nReply message format:\n\n<pre>\nr NullCharacter argType NullCharacter argvalue NullCharacter\n<\/pre>\n\nIf the argument is not a String, Number or nil then:\nIf it is local to the sender, the type is RemoteObject.\nIf it is a proxy to a remote object, the type is LocalObject.\n\nThis isn't optimized yet.\n","slots":{"setPort(portNumber)":" Sets the port number to connect to. Returns self.\n","setHost(ipString)":" Sets the host ip to connect to. Returns self or an Error, if one occurs.\n","serverObject":"\tA handle to the remote DOServer's root object. Returns result from server or an Error, if one occurs.\n","port":"Returns the port.\n","host":"Returns the host ip.\n","close":"Close the connection, if it is open. Returns self.\n","connect":"Connect to the remote DOServer. Returns self or an Error, if one occurs.\n"}}},"Volcano":{"VolcanoServer":{"copyright":"Rich Collins 2009\n","license":"BSD revised\n","category":"Networking\n","module":"Volcano","description":"A simplified version of HttpServer\n","slots":{}}},"GoogleSearch":{"GoogleSearch":{"category":"Networking\n","module":"GoogleSearch","description":"Object for performing web searches via Google.\nExample:\n<pre>\nGoogleSearch clone setSearchTerm(\"iolanguage\") find links foreach(println)\nwhile(Coroutine yieldingCoros size > 1, yield)\n<\/pre>\n","slots":{"links":"Returns the list of link results.\n","find":"Runs the search.\n","maxPages":"Returns the max number of pages to fetch results from.\n","setMaxPages(aNumber)":" Sets the max number of pages to fetch results from. Returns self.\n"}},"GooglePage":{"category":"Networking\n","module":"GoogleSearch","description":"Object representing one page of search results.\n","slots":{"links":"Returns the list of link results.\n","pageNumber":"Returns the current page number of results.\n","setSearchTerm(aSeq)":" Sets the search term. Returns self.\n","find":"Runs the search.\n","searchTerm":"Returns the search term.\n"}}},"CGI":{"CGI":{"license":"BSD revised\n","module":"CGI","Steve":"Dekorte, 2004\n","category":"Networking\n","description":"CGI supports accessing CGI parameters passed in environment variables or standard input by a web servers like Apache. Example use:\n<pre>\n#!.\/ioServer\n\ncgi = CGI clone\n\nredirect = cgi getParameters at(\"redirurl\")\nif (redirect and redirect != \"\",\n\tredirect clipAfterStartOfSeq(\"\\r\")\n\tredirect clipAfterStartOfSeq(\"\\n\")\n\tcgi redirect(redirect)\n\tSystem exit(0)\n )\n\ncgi header(\"Content-type\", \"text\/html\")\n\ncgi write(\"&lt;html&gt;&lt;head&gt;&lt;title&gt;test&lt;\/title&gt;&lt;body&gt;\")\ncgi write(\"GET Parameters:\")\ncgi getParameters foreach(k, v,\n\tcgi write(k .. \" = \" .. v .. \",\"))\n)\n\ncgi write(\"POST Parameters:\")\ncgi postParameters foreach(k, v,\n\tcgi write(k .. \" = \" .. v .. \",\"))\n)\n\ncgi write(\"COOKIES:\")\ncgi cookies foreach(k, v,\n\tcgi write(k .. \" = \" .. v .. \",\")\n)\n<\/pre>\n","slots":{"requestParameter(name)":" Lazy developer's helper funtion. Retrieves a value from GET or POST, POST first\n","redirect(url)":" Send a location: and redirect the user.  May only be called before write() is called.  It is left to the caller to stop any further processing.\n","cookies":"Returns a Map of cookies provided by the client\n","getParameters":"Parses the QUERY_STRING environment variable and returns a Map containing key\/value query value pairs.  For testing, a QUERY_STRING can be passed to standard in, one line will be read\n","encodeUrlParam(aString)":" Returns a URL encoded version of aString.\n","isInWebScript":"Checks to see if this is being called within a CGI request or from the command-line (testing).  Simply checks for System getEnvironmentVariable(\"GATEWAY_INTERFACE\")\n","setCookie(name, value, expiresDate, domain, path, secureBool)":"\tSets a cookie, keep in mind this will not be available in cookies() until they next visit to the site.  \n\tParameters other than name and value are optional.\n","remoteHost":"REMOTE_HOST from web server - User's host (often blank)\n","pathTranslated":"PATH_TRANSLATED from web server\n","maxPostSizeExceeded":"Returns true if the POST data exceeds a set maxPostSize\n","postData":"The raw post data sent to the script.  Only set if getEnvironmentVariable(\"REQUEST_METHOD\") asLowercase == \"post\".\n","maxPostSize":"Maximum size in bytes, to process from user submitted data.  Data greater than this will result in a nil postData slot\n","httpHeader(name)":" Fetch a header supplied by the client, such as 'referer'\n","queryString":"QUERY_STRING from web server\n","header(name, value, sendMultiple)":"\tAdd a header to the output, may only be called before write() is called.  \n\tOne of each header will be sent unless sendMultiple is true\n","pathInfo":"PATH_INFO from web server\n","remoteAddress":"REMOTE_ADDR from web server - User's IP\n","requestMethod":"GET, POST, PUT, etc\n","contentLength":"CONTENT_LENGTH from web server - Size of POST Data\n","postParameters":"Parses the POST data, multipart and urlencoded.  Returns a map of submitted variables.\nFor uploaded files, an Object is returned with these slots:\n<pre>\nfileName\ncontent (raw content of file as Sequence)\ncontentType\ncontentEncoding\nsize (in characters\/bytes)\nasString (pretty string of name, type, size)\n<\/pre>\n","scriptName":"SCRIPT_NAME from web server\n","status(statusCode)":"\tNumeric status code to send to the client.  \n\tNormally, the server will figure this out on its own, but this allows handling 404s and such.\n","contentType":"CONTENT_TYPE from web server\n","write(string, [string...])":" Send content for the body of the response\n","decodeUrlParam(aString)":" Returns a URL decoded version of aString.\n"}}},"HttpClient":{"HCResponseParser":{"copyright":"Rich Collins, 2010\n","license":"BSD revised\n","category":"Networking\n","module":"HttpClient","description":"Handles parsing response received during an HCConnection\n","slots":{}},"HCRequest":{"copyright":"Rich Collins, 2010\n","license":"BSD revised\n","category":"Networking\n","module":"HttpClient","description":"State describing an HTTP request to be sent by an HCConnection\n","slots":{"headerAt(name)":" Returns the value for header with name\n","connection":"Clone HCConnect and set its state based on this HCRequest\n","port":"The port connect to when sending this request\n","resource":"The resource to request\n","httpMethod":"The HTTP method to be sent\n","setHeader(name, value)":" Sets header with name to value\n","host":"The host to send this request to\n","hasHeader(name)":" Returns true if this request has a header with name\n","with(aUrl)":" Clones HCResponse and sets its state based on aUrl (HCUrl)\n"}},"HCResponse":{"copyright":"Rich Collins, 2010\n","license":"BSD revised\n","category":"Networking\n","module":"HttpClient","description":"Stores the result of sending an HCRequest using an HCConnection\n","slots":{"headerAt(name)":" First header value associated with name\n","headersAt(name)":" Header values associated with name\n","statusDescription":"Descriptive status code ex: OK\n","statusCode":"Numeric status code.  ex: 200\n"}},"HCUrl":{"description A replacement for URL that delegates fetching requests to HCConnection":"<pre>\nHCUrl with(\"http:\/\/www.apple.com\/\") get println\nHCUrl with(\"http:\/\/www.apple.com\/\") getResponse statusCode println\n<\/pre>\n","module":"HttpClient","copyright":"Rich Collins, 2010\n","license":"BSD revised\n","category":"Networking\n","slots":{"port":"Returns url's port\n","get":"Creates an HCConnection based on this url, sends a request and returns the content of the response\n","with(urlSeq)":" Returns a clone of HCUrl with its state set by parsing urlSeq\n","getResponse":"Creates an HCConnection based on this url, sends a request and returns the response\n","url":"Returns url's host\n"}},"HCConnection":{"copyright":"Rich Collins, 2010\n","license":"BSD revised\n","category":"Networking\n","module":"HttpClient","description":"Sends an HCRequest using the HTTP protcol and stores the response in an HCResponse\n","slots":{"sendRequest":"Send the request and set the response\n","request":"An HCRequest describing the HTTP request to be sent\n","response":"An HCResponse describing the response received from the remote host\n"}}},"Loudmouth":{"LoudmouthMessage":{"category":"Networking\n","module":"Loudmouth","description":"LoudmouthMessage provides [[SGML]] interface with few convience methods for manipulation of XMPP messages.\n","slots":{"sendVia(loudmouthConnection)":" Converts message to sequence and sends it via the provided [[Loudmouth]] object. It updates <code>from<\/code> property and returns <code>true<\/code> if message is sent.\n","asString":"Converts XML to Sequence.\n","setTo(jid)":" Sets message receiver to defined JID. JID can be both an [[Sequence]] or a [[JID]] object. Returns <code>self<\/code>.\n","plainBody":"Returns value of message's body node with XHTML markup.\n","xmppType":"Returns value of <code>type<\/code> attribute of message node.\n","setFrom(jid)":" Sets sender's JID. Returns <code>self<\/code>.\n","setXmppType(type)":" Sets value of <code>type<\/code> attribute.\n","body":"Returns value message's body node. If both XHTML and plain versions are available, XHTML version will be returned.\n","from":"Returns sender's JID.\n","with(source)":" Creates new [[LoudmouthMessage]] based on <code>source<\/code>, which should be valid XML ([[Sequence]]).\n","to":"Returns [[JID]] of receiver.\n"}},"XmppChatMessage":{"category":"Networking\n","module":"Loudmouth","description":"A convience object for creating XMPP messages with chat type.\n","slots":{"create":"Creates a new [[LoudmouthMessage]] of chat <code>type<\/code> and random <code>id<\/code> value.\n"}},"JID":{"category":"Networking\n","module":"Loudmouth","description":"Object for representing JIDs.\n<pre><code>\nj := JID with(\"cow@moo.com\/Alpes\")\nj username == \"cow\"\nj host == \"moo.com\"\nj resource == \"Alpes\"\nj asString == \"cow@moo.com\/Alpes\"<\/code><\/pre>\n","slots":{"asString":"Converts JID to string with all available parts included.\n","resource":"Returns defined resource.\n","username":"Extracts username from JID.\n","host":"Extracts host's address from JID.\n","with(jid)":" Extracts all parts of a provided <code>Sequence<\/code> and returns new <code>JID<\/code> clone.\n"}},"Loudmouth":{"category":"Networking\n","module":"Loudmouth","description":"<a href=\"http:\/\/groups.google.com\/group\/loudmouth-dev\/\">Loudmouth<\/a> is an async XMPP library written in C.\n\nExample usage:\n<code><pre>\nacc := Loudmouth with(\"user@server.com\", \"super password\") do(\n  handleConnect = method(\n    \"Connected!\" println)\n\n  handleMessage = method(msg\n    \"#{msg from} > #{msg plainBody}\" println\n    body :=  msg plainBody\n\n    if(body indexOf(\"#\") == 0,\n      body = doString(body) asString)\n\n    # This way you can manipulate\n    # XML nodes with SGML addon\n    XmppChatMessage create\\\n      setPlainBody(body)\\\n      setTo(msg from)\\\n      sendVia(self)\n\n    # or simply send the message (must be a Sequence)\n    # (this is obviously faster)\n    #self send(msg from, body))\n)\n\nacc connect\n# Any Io code after this line won't be executed\n# (unless called as Loudmouth callback or run in separate thread)\nLoudmouth startMainLoop\n\n<\/pre><\/code>\n","slots":{"handleDisconnect":"Slot called upon closing the connection with the server.\n","sendRaw(body)":" Sends raw text over XMPP stream. Returns <code>true<\/code> if no errors occur.\n","setPresence(presence[, statusMessage])":" Sets availability\/presence and status message.\n","setStatusMessage(statusMessage)":" Sets status message.\n","registerAccount(server, username, password)":" Registers a new account at XMPP server. Returns <code>true<\/code> or <code>false<\/code>.\n","handleAuthenticated":"Slot called upon successful authentication.\n","handleConnectFailure":"Slot called when server is not reachable.\n","isSslSupported":"","disconnect":"Disconnects from server and returns <code>true<\/code> if it succeeds.\n","status":"Returns status connection. Possible return values are:\n<ul>\n  <li><code>Loudmouth types CLOSED<\/code><\/li>\n  <li><code>Loudmouth types OPENING<\/code><\/li>\n  <li><code>Loudmouth types OPEN<\/code><\/li>\n  <li><code>Loudmouth types AUTHENTICATING<\/code><\/li>\n  <li><code>Loudmouth types AUTHENTICATED<\/code><\/li>\n<\/ul>\n","stopMainLoop":"","connect":"Connects to the server. Returns <code>self<\/code>.\n","handleConnect":"Slot called once connection is established.\n","handleMessage(xmppMessage)":" Slot called when a message arrives via XMPP stream. <code>xmppMessage<\/code> is a <code>LoudmouthMessage<\/code> object.\n","handleSslFailure":"Slot called if SSL-related problems arrive. Method should return <code>true<\/code> if it wishes to make a connection without SSL, <code>false<\/code> otherwise.\n","send(toJid, message)":" Sends a message (<code>Sequence<\/code>) to provided JID (<code>Sequence<\/code>). Returns <code>true<\/code> or <code>false<\/code>.\n","types":"  <p>Object containing status codes and message types.<\/p>\n  <pre><code>\n  Loudmouth with(\"username@server.com\", \"password\") do(\n    handleConnect = method(\n      self setPresence(Loudmouth types AVAILABLE), \"Drinking lemonade...\")\n  )\n  <\/code><\/pre>\n","with(jid, password)":" Creates a new Loudmouth clone with server details provided in <code>jid<\/code>.\n","handleAuthenticationFailure":"Slot called if username\/password combinaton is wrong.\n","startMainLoop":"Starts GMainLoop. Should be called after a connection is established with the server.\n","isConnected":""}}},"Socket":{"DNSQuery":{"category":"Networking\n","module":"Socket","description":"An object representing an individual DNS query.\n","slots":{"addCoro(aCoro)":" Private method that adds a coro to coros.\n","coros":"\t\tList of coroutines paused waiting for this query.\n\t\tThese coros will be resumed when the query completes.\n","resumeCoros":"Resumes all the paused coros. <font color=red>Should this use resumeLater instead?<\/font>\n","hostName":"The host name which the query will request an IP for.\n","waitOn":"Pauses the calling coroutine until the query is completed.\n","setHostName(aSeq)":" Sets the host name for the query.\n"}},"URL":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Networking\n","module":"Socket","description The URL object is usefull for fetching web pages and parsing URLs. Example;":"<pre>\npage := URL clone setURL(\\\"http:\/\/www.google.com\/\\\") fetch\n<\/pre>\n","slots":{"headerBreaks":"Private method to connect to the host and write the header.\n","unescapeString(aString)":"\tReturns a new String that is aString with the URL escape codes replaced by the appropriate characters.\n","processHttpResponse(optionalProgressBlock)":" Private method that processes http response.\n","referer":"Returns the referer String or nil if not set.\n","setURL(urlString)":"\tSets the url string and parses into the protocol, host, port path, and query slots. Returns self.\n","escapeString(aString)":"\tReturns a new String that is aString with the appropriate characters replaced by their URL escape codes.\n","setReferer(aString)":" Sets the referer. Returns self.\n","requestHeader":"\tReturns a Sequence containing the request header that will be sent.\n","fetchRaw":"Fetch and return the entire response. Note: This may have problems for some request times.\n","test":"Private test method.\n","openOnDesktop":"Opens the URL in the local default browser. Supports OSX, Windows and (perhaps) other Unixes.\n","setResponseHeaderString(headerString)":" Private method that parses the responseHeaders.\n","fetchToFile(aFile)":"\tFetch the url and save the result to the specified File object. \n\tSaving is done as the data is read, which helps minimize memory usage. \n\tReturns self on success or nil on error.\n","fetch":"Fetches the url and returns the result as a Sequence. Returns an Error, if one occurs.\n","fetchWithProgress(progressBlock)":"\tSame as fetch, but with each read, progressBlock is called with the readBuffer \n\tand the content size as parameters.\n","setRequest(requestString)":" Private method to set the url request.\n","post(parameters, headers)":"\tSends an HTTP post message. If parameters is a Map, its key\/value pairs are \n\tsend as the post parameters. If parameters is a Sequence or String, it is sent directly.\n\tAny headers in the headers map are sent with the request.\n\tReturns a sequence containing the response on success or an Error, if one occurs.\n","stopFetch":"\tStops the fetch, if there is one. Returns self.\n","parse":"Private method to parse the url.\n","with(urlString)":" Returns a new URL instance for the url in the urlString.\n","clear":"Private method to clear the URL's parsed attributes.\n","fetchHttp(optionalProgressBlock)":" Private method that fetches an http url.\n","url":"Returns url string.\n"}},"ReadEvent":{"category":"Networking\n","module":"Socket","description":"Object for read events.\n","slots":{}},"Server":{"category":"Networking\n","module":"Socket","description":"The Server object provides a simple interface for running a server. \nYou just need to set the port and define a handleSocket method. Here's an example of an echo server:\n\n<pre>\nEcho := Object clone\nEcho handleSocketFromServer := method(aSocket, aServer,\n  write(\"[Got echo connection from \", aSocket host, \"]\\n\")\n  while(aSocket isOpen,\n   if(aSocket read, aSocket write(aSocket readBuffer asString))\n   aSocket readBuffer empty\n  )\n  write(\"[Closed \", aSocket host, \"]\\n\")\n)\n\nwrite(\"[Starting echo server on port 8456]\\n\")\nserver := Server clone setPort(8456)\nserver handleSocket := method(aSocket,\n  Echo clone @handleSocketFromServer(aSocket, self)\n)\nserver start\n<\/pre>\n\n<b>Notes<\/b><p>\n\nIo's use of lightweight threading and select for dealing with sockets makes for \nservers that are much more efficient (both memory and cpu wise) than those written \nwith kernel threads and socket polling.\n","slots":{"setPort(aNumber)":" Sets the port on which the server will listen  for connections. Returns self.\n","handleSocket(aSocket)":"\tThis method is called when the server accepts a new socket. The new socket is passed as the argument.\n\tOverride this method in your own server subclass. The default implementation raises an exception.\n","port":"Returns the port on which the server will listen for connections.\n","stop":"Stops the server if it is running. Returns self.\n","setHost(hostName)":" Sets the hostName. Returns self.\n","start":"\tStarts the server. This method will not return until server is stopped, \n\tso you may want to send the start message as an asynchronous message. \n\tReturns self or an Error, if one occurs.\n","setPath(path)":" Sets the path (for Unix Domain sockets) on which the server will listen  for connections. Returns self.\n"}},"WriteEvent":{"category":"Networking\n","module":"Socket","description":"Object for write events.\n","slots":{}},"Event":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Networking\n","module":"Socket","description":"Networking Event.\n","slots":{"handleEvent(timeout)":"","category":"Networking\n","waitOnOrExcept(timeout)":" Same as waitOn() but an exception is raised if a timeout occurs. Returns self.\n"}},"EvConnection":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Networking\n","module":"Socket","description":"Networking Event.\n","slots":{}},"SignalEvent":{"category":"Networking\n","module":"Socket","description":"Object for signal events.\n","slots":{}},"IPAddress":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Networking\n","module":"Socket","description":"Object representation of an Internet Protocol Address.\n","slots":{"setHostName(hostName)":"\tTranslates hostName to an IP using asynchronous DNS and \n\tsets the host attribute. Returns self.\n"}},"TimerEvent":{"category":"Networking\n","module":"Socket","description":"Object for timer events.\n","slots":{}},"DNSServer":{"category":"Networking\n","module":"Socket","description":"An object representing a DNSServer which DNS requests can be sent to.\n","slots":{"host":"The host name (usually an IP) for the DNSServer.\n","ipForHostName(hostName, timeout)":"\tSends a request to the DNS server, waits for a response and returns it. Will try 3 times if there are timeouts.\n\tReturns the IP (as a Sequence) if successful, raises an exception otherwise.\n","setHost(aSeq)":" Sets the host name for the DNSServer.\n"}},"Host":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Networking\n","module":"Socket","slots":{"address":"\tReturns the IP address. A DNS lookup is done in the background if the \n\taddress is not already known. Returns an error on lookup failure.\n","name":"Returns name.\n","setName(aString)":" Set's the host name. Return self.\n"}},"EventManager":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Networking\n","module":"Socket","description":"\tObject for libevent (kqueue\/epoll\/poll\/select) library. \n\tUsefull for getting notifications for descriptor (a socket or file) events.\n\tEvents include read (the descriptor has unread data or timeout) and write (the descriptor wrote some data or timeout).\n\tAlso, timer and signal events are supported.\n","slots":{"run":"Runs the EventManger loop. Does not return. Private - should only be called by resumeIfNeeded.\n"}},"EvRequest":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Networking\n","module":"Socket","description":"Networking Event.\n","slots":{}},"Socket":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Networking\n","module":"Socket","description":"Interface to network communication.\nSockets will auto yield to other coroutines while waiting on a request.\nAll blocking operations use the timeout settings of the socket.\nReads are appended to the socket's read buffer which can \nbe accessed using the readBuffer method.\n\nExample:\n\n<pre>\t\nsocket := Socket clone setHost(\"www.yahoo.com\") setPort(80) connect\nif(socket error) then( write(socket error, \"\\n\"); exit)\n\nsocket write(\"GET \/\\n\\n\")\n\nwhile(socket read, Nop)\nif(socket error) then(write(socket error, \"\\n\"); exit)\n\nwrite(\"read \", socket readBuffer length, \" bytes\\n\")\n<\/pre>\n","slots":{"setPath(unixDomainPath)":" Sets the Unix Domain socket path for the socket. Returns self.\n","setHost(hostNameOrIpString)":" Sets the host for the socket. Returns self on success, an Error object otherwise.\n","readBytes(numBytes)":"\tReads the socket until its readBuffer is numBytes long, then returns a Sequence\n\tcontaining the first numBytes of readBuffer's contents and clips that section from the readBuffer.\n","setHost(hostName)":"Translates hostName to an IP using asynchronous DNS and sets \nthe host attribute. Returns self.\n","acceptTimeout":"Returns the length of time in seconds for accept timeouts on the socket.\n","errorNumber":"Returns the socket error number for the last error.\n","setBytesPerRead(numberOfBytes)":" Sets number of bytes to read per read call. Returns self.\n","streamRead(numberOfBytes)":"\tReads numberOfBytes from the socket into the socket's readBuffer. \n\tReturns self when all bytes are read or an Error object on error.\n","writeMessage(aSeq)":"\tWrites a 4 byte uint32 in network byte order containing the size of aSeq. \n\tThen writes the bytes in aSeq and returns self.\n","getSocketWriteLowWaterMark":"\tReturns the write low water mark for the socket on success or nil on error.\n","isValid":"Returns true if the socket is in valid state, closes the socket and returns false otherwise.\n","writeFromBuffer(optionalProgressBlock)":"\tWrites the contents of the socket's writeBuffer to the socket. \n\tIf optionalProgressBlock is supplied, it is periodically called with the number of bytes written as an argument.\n\tReturns self on success or an Error object on error.\n","port":"Returns the port number for the socket.\n","fromFd(descriptorId, addressFamily)":" Creates a new Socket with the low-level file descriptor (fd) set to descriptorId and it's address family (AF_INET or AF_UNIX) set to addressFamily.\n","asyncStreamRead(aSeq, readSize)":"\tReads up to readSize number of bytes into aSeq if data is available. \n\tReturns self immediately if successful. Returns an error object on Error. Returns nil if the socket is disconnected.\n","asyncUdpRead(ipAddress, aSeq, readSize)":"\tReads up to readSize number of bytes from ipAddress into aSeq if data is available. \n\tReturns self immediately if successful. Returns an error object on Error. Returns nil if the socket is disconnected.\n","readUntilSeq(aSequence)":"\tReads the socket until its readBuffer contains aSequence, then returns a Sequence\n\tcontaining the readBuffer's contents up to (but not including) aSequence and clips that section from the readBuffer.\n","setAddress(addressObject)":" Sets the address (IPAddress or UnixPath) for the socket. Returns self. For IP sockets the setHost() method should generally be used to set the host instead of this method. For Unix Domain sockets use the setPath() method.\n","setBytesPerWrite(numberOfBytes)":" Sets number of bytes to write per write call. Returns self.\n","setConnectTimeout(seconds)":" Sets the length of time in seconds for connect timeouts on the socket. Returns self.\n","host":"Returns the host for the socket.\n","descriptorId":"Returns the socket's file descriptor id as a Number.\n","asyncListen":"Listens to the socket and returns self immediately or an Error object on error.\n","getSocketReadLowWaterMark":"\tReturns the read low water mark for the socket on success or nil on error.\n","udpRead(address, numBytes)":"\tWaits for and reads numBytes of udp data from the specified address (IPAddress or UnixPath) into the socket's readBuffer.\n\tReturns self on success or an Error object on error.\n","isOpen":"Returns true if the socket is open, false otherwise.\n","setReadTimeout(seconds)":" Sets the length of time in seconds for read timeouts on the socket. Returns self.\n","appendToWriteBuffer(aSequence)":"\tAppends aSequence to the write buffer if it is non-nil. Returns self.\n","readListMessage":"A shortcut for List fromEncodedList(socket readMessage).\n","setNoDelay":"\tSets the socket to be no-delay. Returns self on success or nil on error.\n","asyncBind":"Binds the socket and returns self immediately or an Error object on error.\n","streamReadWhileOpen":"\tReads the stream into the socket's readBuffer until it closes.\n\tReturns self on success or an Error object on error.\n","setWriteTimeout(seconds)":" Sets the length of time in seconds for write timeouts on the socket. Returns self.\n","address":"Returns the address (IPAddress or UnixPath) object for the socket.\n","writeListMessage(aList)":" A shortcut for writeMessage(aList asEncodedList).\n","connect":"Connects to the socket's host. Returns self on success or an Error object on error.\n","close":"Closes the socket and returns self. Returns nil on error.\n","streamReadNextChunk(optionalProgressBlock)":"\tWaits for incoming data on the socket and when found, reads any available data and returns self. \n\tReturns self on success or an Error object on error or timeout.\n","asyncStreamOpen":"Submits an async request to open the socket in stream mode and returns self immediately or an Error object on error.\n","path":"Returns the U for the socket.\n","asyncStreamWrite(aSeq, start, writeSize)":"\tWrites the slice of aSeq from start to start + writeSize to the socket.\n\tReturns self immediately if successful, otherwise closes the socket. \n\tReturns an error object on Error. \n\tReturns nil if the socket is disconnected.\n","setSocketReadBufferSize(numberOfBytes)":" Sets the read buffer size for the socket. Returns self on success or nil on error.\n","readMessage":"\tEmpties the readBuffer and reads a 4 byte uint32 in network byte order. \n\tThis number is the number of bytes in the message payload which are \n\tthen read into the socket's readBuffer. The readBuffer is returned.\n","setSocketWriteLowWaterMark(numberOfBytes)":"\tSets the write low water mark for the socket. Returns self on success or nil on error.\n","asyncConnect(addressObject)":" Connects to the given Address and returns self or an Error object on error.\n","isStream":"Returns true if the socket is a stream, false otherwise.\n","udpReadNextChunk(address)":"\tWaits to receive UDP data from the specified address (IPAddress or UnixPath). \n\tAs soon as any data is available, it reads all of it into the socket's readBuffer.\n\tReturns self on success or an Error object on error.\n","errorDescription":"Returns a description of the last error on the socket as a string.\n","setAcceptTimeout(seconds)":" Sets the length of time in seconds for accept timeouts on the socket. Returns self.\n","setSocketWriteBufferSize(numberOfBytes)":" Sets the write buffer size for the socket. Returns self on success or nil on error.\n","serverWaitForConnection":"\tWaits for a connection or timeout. When a connection is received, this method returns the connection socket. \n\tAn Error object is returned on timeour or error.\n","bytesPerRead":"Returns number of bytes to read per read call.\n","setPort(portNumber)":" Sets the port number for the socket, returns self.\n","asyncUdpOpen":"Submits an async request to open the socket in UDP mode and returns self immediately or an Error object on error.\n","streamOpen":"Opens the socket in stream mode. Returns self.\n","writeTimeout":"Returns the length of time in seconds for write timeouts on the socket.\n","readTimeout":"Returns the length of time in seconds for read timeouts on the socket.\n","udpOpen":"Opens the socket in UDP (connectionless) mode. Returns self.\n","bytesPerWrite":"Returns number of bytes to write per write call.\n","udpWrite":"Same as asyncUdpWrite.\n","setSocketReadLowWaterMark(numberOfBytes)":"\tSets the read low water mark for the socket. Returns self on success or nil on error.\n","streamWrite(buffer, optionalProgressBlock)":"\tWrites buffer to the socket. \n\tIf optionalProgressBlock is supplied, it is periodically called with the number of bytes written as an argument.\n\tReturns self on success or an Error object on error.\n","serverOpen":"\tOpens the socket as a stream, binds it to its address and calls asyncListen to prepare the socket to accept connections.\n\tReturns self on success or an Error object on error.\n","connectTimeout":"Returns the length of time in seconds for connect timeouts on the socket.\n","asyncAccept(addressObject)":" Immediately returns a socket for a connection if one is available or nil otherwise. Returns an Error object on error.\n","asyncUdpWrite(ipAddress, aSeq, startIndex, readSize)":"\tWrites readsize bytes from aSeq starting at startIndex to ipAddress. \n\tReturns self immediately if successful. Returns an error object on Error. Returns nil if the socket is disconnected.\n"}},"DNS":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Networking\n","module":"Socket","description":"Utility methods related to Domain Name Service lookups.\n","slots":{"hostNameAndIPforDNSResponsePacket(dnsResponsePacketSeq)":"Dissasembles the given dnsResponsePacketSeq and returns a list object containing\nthe hostName and IP or an error string on error.\n","dnsQueryPacketForHostName(hostNameSeq)":"Assembles a DNS query packet for the given host name and returns it in a Sequence.\n","localNameServersIPs":"Returns a list of local name server IPs as a list of Sequences. Works on OSX, Unix, Windows.\n"}}},"NetworkAdapter":{"NetworkAdapter":{"copyright":"Rich Collins, 2007\n","license":"BSD revised\n","category":"Networking\n","module":"NetworkAdapter","description":"Interface to network adapter functionality.\n","slots":{"macAddress":"\tReturns the MAC address for the primary network adapter in a Hex string.\n"}}}},"Encryption":{"Blowfish":{"Blowfish":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Encryption\n","module":"Blowfish","description":"The Blowfish object can be used to do encryption and decryption using \nthe <a href=http:\/\/en.wikipedia.org\/wiki\/Blowfish_(cipher)>Blowfish<\/a> keyed, symmetric block cipher.\n<p>\nExample encryption and decription;\n\n<pre>\t\nkey := \"secret\"\ndata := \"this is a message\"\n\nencryptedData := Blowfish clone setKey(key) encrypt(data)\ndecryptedData := Blowfish clone setKey(key) decrypt(encryptedData)\n<\/pre>\t\n\nOr using the stream API:\n<pre>\t\nkey := \"secret\"\ndata := \"this is a message\"\n\ncipher = Blowfish clone\ncipher setIsEncrypting(true)\ncipher setKey(key)\ncipher beginProcessing\ncipher inputBuffer appendSeq(data)\ncipher process\ncipher endProcess\nencryptedData := cipher outputBuffer\n\ncipher = Blowfish clone\ncipher setIsEncrypting(false)\ncipher setKey(key)\ncipher beginProcessing\ncipher inputBuffer appendSeq(encryptedData)\ncipher process\ncipher endProcess\ndecryptedData := cipher outputBuffer\n<\/pre>\n","slots":{"decrypt(aSequence)":" Returns an decrypted version of aSequence.\n","inputBuffer":"Returns the input buffer.\n","encrypt(aSequence)":" Returns an encrypted version of aSequence.\n","setIsEncrypting(aBool)":"\tIf aBool is true, encrypting mode is on, otherwise, decrypting mode is on.\n","process":"\tProcess the inputBuffer and appends the result to the outputBuffer.\n\tThe processed inputBuffer is emptied except for the spare \n\tbytes at the end which don't fit into a cipher block.\n","beginProcessing":"\tSets the key from the key slot and initializes the cipher.\n","outputBuffer":"Returns the output buffer.\n","endProcessing":"\tFinish processing remaining bytes of inputBuffer.\n"}}}},"Compression":{"Zlib":{"ZlibDecoder":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Compression\n","module":"Zlib","description":"For <a href=http:\/\/en.wikipedia.org\/wiki\/Zlib>Zlib<\/a> uncompression.\nExample use;\n<pre>\t\nz = ZlibDecoder clone\nz beginProcessing\nz inputBuffer appendSeq(inputData)\nz process\nz endProcess\nresult := z outputBuffer \n<\/pre>\n","slots":{"process":"\tProcess the inputBuffer and appends the result to the outputBuffer.\n\tThe processed inputBuffer is empties except for the spare bytes at the end which don't fit into a cipher block.\n","inputBuffer":"The input buffer for decoding.\n","endProcessing":"\tFinish processing remaining bytes of inputBuffer.\n","outputBuffer":"The output buffer for decoding.\n","beginProcessing":"\tInitializes the algorithm.\n"}},"ZlibEncoder":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Compression\n","module":"Zlib","description":"For <a href=http:\/\/en.wikipedia.org\/wiki\/Zlib>Zlib<\/a> compression.\nExample use:\n<p>\n<pre>\t\nz = ZlibEncoder clone\nz beginProcessing\nz inputBuffer appendSeq(\"this is a message\")\nz process\nz endProcess\nresult := z outputBuffer\n<\/pre>\n","slots":{"process":"\tProcess the inputBuffer and appends the result to the outputBuffer.\n\tThe processed inputBuffer is empties except for the spare bytes at \n\tthe end which don't fit into a cipher block.\n","inputBuffer":"The input buffer for decoding.\n","endProcessing":"\tFinish processing remaining bytes of inputBuffer.\n","outputBuffer":"The output buffer for decoding.\n","beginProcessing":"\tInitializes the algorithm.\n"}},"Zlib":{"category":"Compression\n","module":"Zlib","description":"The Zlib object can be used to compress and uncompress data using the \n<a href=http:\/\/en.wikipedia.org\/wiki\/Zlib>zlib<\/a> \nlossless data compression algorithm.\n<p>\nExample use;\n<pre>\ncompressedData := Zlib compress(uncompressedData)\nuncompressedData := Zlib uncompress(compressedData)\n<\/pre>\n","slots":{"uncompress(aSeq)":" Returns a uncompressed version of aSeq.\n","compress(aSeq)":" Returns a compressed version of aSeq.\n"}}},"LZO":{"LZOEncoder":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Compression\n","module":"LZO","description":"The LZOEncoder object can be used to compress  data using the \n<a href=http:\/\/en.wikipedia.org\/wiki\/Lempel-Ziv-Oberhumer> Lempel-Ziv-Oberhumer (LZO)<\/a> \nlossless data compression algorithm.\n<p>\nExample use;\n<pre>\t\nz = LZOEncoder clone\nz beginProcessing\nz inputBuffer appendSeq(\"this is a message\")\nz process\nz endProcess\nresult := z outputBuffer \n<\/pre>\n","slots":{"process":"\tProcess the inputBuffer and appends the result to the outputBuffer.\n\tThe processed inputBuffer is emptied except for the spare bytes at \n\tthe end which don't fit into a cipher block.\n","endProcessing":"\tFinish processing remaining bytes of inputBuffer.\n","beginProcessing":"\tInitializes the algorithm.\n"}},"LZO":{"category":"Compression\n","module":"LZO","description":"The LZO object can be used to compress and uncompress data using the \n<a href=http:\/\/en.wikipedia.org\/wiki\/Lempel-Ziv-Oberhumer> Lempel-Ziv-Oberhumer (LZO)<\/a> \nlossless data compression algorithm.\n<p>\nExample use;\n<pre>\ncompressedData := LZO compress(uncompressedData)\nuncompressedData := LZO uncompress(compressedData)\n<\/pre>\n","slots":{"uncompress(aSeq)":" Returns a uncompressed version of aSeq.\n","compress(aSeq)":" Returns a compressed version of aSeq.\n"}},"LZODecoder":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Compression\n","module":"LZO","description":"The LZO object can be used to  uncompress data using the \n<a href=http:\/\/en.wikipedia.org\/wiki\/Lempel-Ziv-Oberhumer> Lempel-Ziv-Oberhumer (LZO)<\/a> \nlossless data compression algorithm.\n<p>\nExample use;\n<pre>\t\nz = LZODecoder clone\nz beginProcessing\nz inputBuffer appendSeq(\"this is a message\")\nz process\nz endProcess\nresult := z outputBuffer \n<\/pre>\n","slots":{"process":"\tProcess the inputBuffer and appends the result to the outputBuffer.\n\tThe processed inputBuffer is emptied except for the spare bytes at \n\tthe end which don't fit into a cipher block.\n","endProcessing":"\tFinish processing remaining bytes of inputBuffer.\n","beginProcessing":"\tInitializes the algorithm.\n"}}}},"Core":{"NotificationCenter":{"Notification":{"category":"Core\n","module":"NotificationCenter","slots":{"post":"Posts the notification to the NotificationCenter.\n","sender":"Returns the sender of the notification.\n","setSender(anObject)":" Sets the sender of the Notification. Returns self.\n","setName(anObject)":" Sets the name of the Notification. Returns self.\n","name":"Returns the name of the notification.\n"}},"NotificationCenter":{"category":"Core\n","module":"NotificationCenter","description":"\nAn NotificationCenter similar to the one found in Apple's FoundationKit.\n<p>\nExample use:\n<pre>\n\/\/ in listener\nlistener := NotificationListener clone setTarget(self) setName(\"FeedDownloadedFile\") start\n\n\/\/ in sender\nNotification clone setSender(self) setName(\"FeedDownloadedFile\") post\n\n\/\/ note: notifications can also be reused, and any extra data can be added in it's slots\n\n\/\/ to stop listening\nlistener stop\n<\/pre>\n","slots":{"postNotification(aNotification)":"Sends aNotification to be handled by listeners. Returns self.  \nImplementation:\n<pre>\nlisteners foreach(handleNotification(n))\n<\/pre>\n","listeners":"Returns list of NotificationListeners.\n","addListener(aNotificationListener)":" Removes aNotificationListener from listeners list. Returns self.\n"}},"NotificationListener":{"category":"Core\n","module":"NotificationCenter","slots":{"setAction(messageName)":" Sets the name of the message that is sent to the target when a matching notification is found. Returns self.\n","name":"Returns the message name that the listener wants to receive messages for.\n","setName(aSeq)":" Sets the message name that the listener wants to receive messages for. Returns self.\n","action":"Returns the name of the message that is sent to the target when a matching notification is found.\n","handleNotification(aNotification)":"Checks to see if aNotification matches the listener criteria and if so, sends it to the target. Implementation:\n<pre>\nif((name == nil or name == n name) and(sender == nil or sender == n sender),\n\ttarget perform(action, n)\n)\n<\/pre>\n","setSender(anObject)":" Sets the sender that the listener wants to receive messages from. Returns self.\n","setTarget(anObject)":" Sets the target that the receiver sends matching messages to. Returns self.\n","start":"Removes the receiver to the NotificationCenter set of listeners. Returns self.\n","sender":"Returns the sender that the listener wants to receive messages from.\n","target":"Returns the target that the receiver sends matching messages to.\n"}}},"Range":{"Range":{"copyright":"Jeremy Tregunna, 2006\n","license":"BSD\n","category":"Core\n","module":"Range","description":"Simple datastructure representing the items at and between two specific points.\n","slots":{"previous":"\tSets the current item in the range to the previous item in the range, \n\tand returns a boolean value indicating whether it is not at the beginning of the range.\n","last":"\tMoves the current cursor to the end of the range, and returns it.\n","toBy(endingPoint, incrementValue)":" Convenience constructor that returns a cursor object representing the range of numbers from the receiver to the 'endingPoint' parameter. Increments over each item in that range by the 'incrementValue' parameter.\n","levenshtein(other)":" Returns the levenshtein distance to other.\n","toBy(endpoint, increment)":" Convenience constructor that returns a range of sequences from the receiver to the endpoint argument. Increments over each item in that range by the value of the increment parameter. The increment parameter must be positive.\n","first":"\tMoves the current cursor to the beginning of the range, and returns it.\n","rewind":"\tSets the current item and the index to the values the receiver started out with.\n","map(optionalIndex, value, message)":"\tReturns a new list which contains the result of the 'body' for every element \n\tstepped over in the range, from the starting point to the ending point inclusive. \n\tThis method can operate several ways; these include: \n\t(1) Takes one argument, the message tree to be executed during each iteration; (2) \n\tTakes two arguments, the first argument is the name of the current value being \n\titerated over, and the second is the message tree to be executed during each \n\titeration; (3) Takes three arguments: the first is the current index within the \n\trange, the second is the name of the current value being iterated over, and the \n\tthird is the message tree to be executed during each iteration. \n\tFor example:\n<pre>\n# First method (operating on numbers)\n1 to(10) map(*2) # multiply each value by two\n# Second method (operating on numbers)\n1 to(10) map(v, \"#{v}\" interpolate) # returns string representation of each value as list\n# Third method (operating on numbers)\n1 to(10) map(i, v, i*v) #  multiply each value by index\n<\/pre>\n","indexOf(aValue)":" Calculates each value, checking to see if it matches the aValue parameter. If so, return the position within the range. NOTE: This method rewinds the range before searching. If you need to revert back to your original position, make a duplicate of the range, and use indexOf on it instead.\n","at(position)":" Rewinds the range, skips forward until we're at the supplied position then returns the value at that position. Raises an exception if the position is out of bounds.\n","to(endpoint)":" Convenience constructor that returns a range of sequences from the receiver to the endpoint argument. Increments over each item in that range by 1.\n","foreach(optionalIndex, value, message)":"\tIterates over each item beginning with the starting point, and finishing at \n\tthe ending point inclusive. This method can operate several ways; these include: \n\t(1) Takes one argument, the message tree to be executed during each iteration; (2) \n\tTakes two arguments, the first argument is the name of the current value being \n\titerated over, and the second is the message tree to be executed during each \n\titeration; (3) Takes three arguments: the first is the current index within the \n\trange, the second is the name of the current value being iterated over, and the \n\tthird is the message tree to be executed during each iteration. \n\tFor example:\n<pre>\n\/\/ First method (operating on numbers)\n1 to(10) foreach(\"iterating\" print) \/\/ prints \"iterating\" 10 times\n\/\/ Second method (operating on numbers)\n1 to(10) foreach(v, v print) \/\/ prints each value\n\/\/ Third method (operating on numbers)\n1 to(10) foreach(i, v, writeln(i .. \": \" .. v)) \/\/ prints \"index: value\"\n<\/pre>\n","asList":"Returns a list containing all the items within and including the ranges starting and ending points.\n","value":"\tReturns the value of the current item in the range.\n","index":"Returns the current index number starting from zero and extending \noutward up to the maximum number of items in the range.\n","next":"\t\tSets the current item in the range to the next item in the range, \n\t\tand returns a boolean value indicating whether it is not at the end of the range.\n","slice(start, end, [by])":" Returns a list containing the values from the Range starting at the start parameter, ending at the end parameter, and optionally incremented by the by parameter.\n","select":"Operates the same as 'List select'\n","contains":"Returns a boolean value if the range contains the argument.\n","nextInSequence(skipVal)":" Returns the next item in the sequence.  The optional skipVal parameter allows you to skip ahead skipVal places.\n","setRange(start, end, increment)":"\tHas several modes of operation. First, if only two parameters are specified, \n\tthe increment value is set to 1 by default, while the first parameter represents\n\tthe point to start from, and the second parameter represents the point to end at. \n\tIf the second parameter is smaller than the first, the range will operate backwards. \n\tIf the third parameter is specified, a custom iteration value will be used instead of 1.\n","to":"Convenience constructor that returns a cursor object representing the range of numbers from the receiver to the 'endingPoint' parameter. Increments over each item in that range by 1.\n"}}},"Flux":{"Message":{"copyright":"\tSteve Dekorte; Jonathan Wright, 2002, 2006\n","license":"\tBSD revised\n","category":"Core\n","module":"Core","description":"A Message object encapsulates the action of a message send. \nBlocks are composed of a Message and its children.\n<p>\nTerminology\n<pre>\nExample:\n  Io> msg := message(A B(C D); E F)\n  ==> A B(C D); E F\n  \nIn the above example:\n  msg name            =>  A\n  msg next            =>  B(C D); E F\n  msg next arguments  =>  list(C D)\n  msg next next name  =>  ;\n  msg next next next  =>  E F\n<\/pre>\nImportant: Modifying the message tree of a block currently in use may cause\na crash if a garbage collection cycle occurs. If the implementation were\nchanged to retain every called message, this could be avoided.\nBut the cost to performance seems to outweigh the need to cover this case for now.\n","slots":{"previous":"\tReturns the previous message in the message chain or Nil if there is no previous message.\n","setLineNumber(aNumber)":"\tSets the line number of the message. Returns self.\n","appendCachedArg(aValue)":"\tAdds aValue to the argument list of receiver as a cachedResult.\n","code":"\tReturns a String containing a decompiled code representation of the receiver.\n","asSimpleString":"Returns one-line string representation up to 40 characters long.\n","fluxSource":" The directory of Flux where Flux.io is located. This directory is added to the Importer searchPaths.\n","setPrevious(aMessageOrNil)":"\tSets the previous message in the message chain to a deep copy of\n\taMessage or it removes the previous message if aMessage is Nil.\n","lastBeforeEndOfLine":"\tReturns the last message in the chain before the EndOfLine or nil.\n","doInContext(anObject, locals)":"\tEvaluates the receiver in the context of anObject. Optional <tt>locals<\/tt> \n\tobject is used as message sender. <tt>anObject<\/tt> is used as sender otherwise.\n","fromString(aString)":"\tReturns a new Message object for the compiled(but not executed)\n\tresult of aString.\n","characterNumber":"\tReturns the message character number. The character number is typically\n\tthe beginning character index in the source text from which the message was read.\n","argCount":"Returns the number of arguments this message has. A faster way to do, msg arguments size. Examples,\n<pre>\t\nIo> message(a(1,2,3)) argCount\n==> 3\n\nIo> message(a) argCount\n==> 0\n<\/pre>\n","clone":"\tReturns a Message that is a deep copy of the receiver.\n","lineNumber":"\tReturns the line number of the message. The character number\n\tis typically the line number in the source text from which the message was read.\n","argAt(indexNumber)":"\tReturns Message object for the specified argument or Nil if none exists.\n","asMessageWithEvaluatedArgs(optionalContext)":"\tReturns a copy of receiver with arguments evaluated in the context of sender if\n\toptionalContext is nil.\n","hasCachedResult":"\tReturns true if there is a cached result. Nil is a valid cached result.\n","label":"\tReturns the message label. The label is typically set to the\n\tname of the file from which the source code for the message was read.\n","appendArg(aMessage)":"Adds aMessage to the argument list of receiver. Examples:\n<pre>\t\nIo> message(a) appendArg(message(b))\n==> a(b)\n\nIo> message(a(1,2)) appendArg(message(3))\n==> a(1, 2, 3)\n<\/pre>\n","evaluatedArgs":"\tReturns a List containing the argument messages evaluated in the context.\n","cachedResult":"\tReturns the cached result of the Message or Nil if there is none.\n","arguments":"\tReturns a list of the message objects that act as the\n\treceiver's arguments. Modifying this list will not alter the actual\n\tlist of arguments. Use the arguments_() method to do that.\n","asString":"\tSame as code().\n","setCachedResult(anObject)":"\tSets the cached result of the message. Returns self.\n","removeCachedResult":"\tRemoves the cached result of the Message.\n","last":"\tReturns the last message in the chain.\n","setCachedArgs(listOfValues)":" Appends evaluated arguments to a message. Returns self.\n","setCharacterNumber(aNumber)":"\tSets the character number of the message. Returns self.\n","isEndOfLine":"\tReturns true if the message marks the end of the line. A ';' message.\n","codeOfLength(n)":"\t\tSame as <tt>Message code<\/tt>, but returns first <tt>n<\/tt> characters only.\n","nextIgnoreEndOfLines":"\tReturns the next message in the message chain which is not an \n\tEndOfLine or nil if there is no next message.\n","name":"\tReturns the name of the receiver.\n","description":"Returns a string containing a short description of the method.\n","asStackEntry":"Returns a string containing message name, file and line.\n","setLabel(aString)":"\tSets the label of the message and its children. Returns self.\n","next":"\tReturns the next message in the message chain or nil if there is no next message.\n","setArguments(aListOfMessages)":"\tSets the arguments of the receiver to deep copies of\n\tthose contained in aListOfMessages.  Returns self.\n","setNext(aMessageOrNil)":"\tSets the next message in the message chain to a deep copy of\n\taMessage or it removes the next message if aMessage is nil.\n","union(other) Creates a union of the receiver and the other parameter.":"\tReturns a new message object with the receivers message as the first argument of the returned message, \n\tand the other parameter's arguments as each successive argument to the new message.\n\t<br\/>\n\t<pre>\n  Io> message(a) union(message(b))\n  ==> [unnamed](a, b)\n  <\/pre>\n","argsEvaluatedIn(anObject)":"\tReturns a List containing the argument messages evaluated in the\n\tcontext of anObject.\n","fluxPath":" The directory where the .io files for the Flux views are located. This directory is added to the Importer searchPaths.\n","setName(aString)":"\tSets the name of the receiver. Returns self.\n"}}},"Core":{"Coroutine":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Core\n","module":"Core","description":"Coroutine is an primitive for Io's lightweight cooperative C-stack based threads.\n","slots":{"setRunLocals":"","freeStack":"\tFrees all the internal data from the receiver's stack. Returns self.\n","stackSize":"Stack size allocated for each new coroutine. Coroutines will automatically chain themselves as need if more stack space is required.\n","setException":"","result":"The result set when the coroutine ends.\n","runMessage":"The message to send to the runTarget when the coroutine starts.\n","setParentCoroutine(aCoro)":" Sets the parent coroutine. Returns self.\n","ignoredCoroutineMethodNames":"List of methods to ignore when building a <tt>callStack<\/tt>.\n","setInException(aBool)":" Set the inException status. Returns self.\n","callStack":"Returns a list of Call objects.\n","label":"A label slot useful for debugging purposes.\n","runLocals":"The locals object in whose context the coroutine will send its run message.\n","run":"\tRuns receiver and returns self.\n","setRunMessage":"","setLabel(aLabel)":" Sets the comment label for the Coro. Return self.\n","raiseException":"Sets exception in the receiver and resumes parent coroutine.\n","setRunTarget(anObject)":"","setMessageDebugging(aBoolean)":"\tTurns on message level debugging for this coro. When on, this\n\tcoro will send a vmWillSendMessage message to the Debugger object before\n\teach message send and pause itself. See the Debugger object documentation\n\tfor more information.\n","pause":"\t\tRemoves current coroutine from the yieldingCoros queue and\n\t\tyields to another coro. <tt>System exit<\/tt> is executed if no coros left.\n\t\t<br\/>\n\t\tYou can resume a coroutine using either <tt>resume<\/tt> or <tt>resumeLater<\/tt> message.\n","yieldCurrentAndResumeSelf":"Yields to a receiver.\n","inException":"Set to true when processing an exception in the coroutine.\n","showStack":"Writes backTraceString to STDOUT.\n","currentCoroutine":"\tReturns currently running coroutine in Io state.\n","resumeParentCoroutine":"Pauses current coroutine and resumes parent.\n","exception":"Returns the current exception or nil if there is none.\n","isCurrent":"\tReturns true if the receiver is currently running coroutine.\n","isYielding":"Returns true if the receiver is yielding (not paused or running).\n","main":"[Seems to be obsolete!] Executes runMessage, resumes parent coroutine.\n","debugWriteln":"See <tt>Object debugWriteln<\/tt>.\n","resume":"\tYields to the receiver. Runs the receiver if it is not running yet. \n\tReturns self.\n","setStackSize(aNumber)":" Sets the stack size in bytes to allocate for new Coros. Returns self.\n","ioStack":"\tReturns List of values on this coroutine's stack.\n","resumeLater":"\t\tPromotes receiver to the top of the yieldingCoros queue, but not yielding to it.\n\t\tWhen current coroutine yields, receiver will resume.\n","yieldingCoros":"Reference to Scheduler yieldingCoros.\n","implementation":"\tReturns coroutine implementation type: \"fibers\", \"ucontext\" or \"setjmp\"\n","runTarget":"The object which the coroutine will send a message to when it starts.\n","setResult":"","yield":"\t\tYields to another coroutine in the yieldingCoros queue.\n\t\tDoes nothing if yieldingCoros is empty.\n","typeId":"Returns <type>_<uniqueHexId> string.\n","showYielding":"Prints a list of yielding coroutines to STDOUT.\n","pauseCurrentAndResumeSelf":"Pauses current coroutine and yields to a receiver.\n","backTraceString":"Returns a formatted callStack output along with exception info (if any). In case of CGI script, wraps output with &lt;code&gt; tag.\n","parentCoroutine":"Returns the parent coroutine this one was chained from or nil if it wasn't chained. When a Coroutine ends, it will attempt to resume its parent.\n"}},"Scheduler":{"category":"Core\n","module":"Core","description":"Io's coroutine scheduler.\n","slots":{"yieldingCoros":"The List of yielding Coroutine objects.\n","timers":"The List of active timers.\n","setYieldingCoros(aListOfCoros)":" Sets the list of yielding Coroutine objects.\n","currentCoroutine":"Returns the currently running coroutine.\n","setTimers(aListOfTimers)":" Sets the list of active timers.\n"}},"Message":{"copyright":"\tSteve Dekorte; Jonathan Wright, 2002, 2006\n","license":"\tBSD revised\n","category":"Core\n","module":"Core","description":"A Message object encapsulates the action of a message send. \nBlocks are composed of a Message and its children.\n<p>\nTerminology\n<pre>\nExample:\n  Io> msg := message(A B(C D); E F)\n  ==> A B(C D); E F\n  \nIn the above example:\n  msg name            =>  A\n  msg next            =>  B(C D); E F\n  msg next arguments  =>  list(C D)\n  msg next next name  =>  ;\n  msg next next next  =>  E F\n<\/pre>\nImportant: Modifying the message tree of a block currently in use may cause\na crash if a garbage collection cycle occurs. If the implementation were\nchanged to retain every called message, this could be avoided.\nBut the cost to performance seems to outweigh the need to cover this case for now.\n","slots":{"previous":"\tReturns the previous message in the message chain or Nil if there is no previous message.\n","setLineNumber(aNumber)":"\tSets the line number of the message. Returns self.\n","appendCachedArg(aValue)":"\tAdds aValue to the argument list of receiver as a cachedResult.\n","code":"\tReturns a String containing a decompiled code representation of the receiver.\n","asSimpleString":"Returns one-line string representation up to 40 characters long.\n","fluxSource":" The directory of Flux where Flux.io is located. This directory is added to the Importer searchPaths.\n","setPrevious(aMessageOrNil)":"\tSets the previous message in the message chain to a deep copy of\n\taMessage or it removes the previous message if aMessage is Nil.\n","lastBeforeEndOfLine":"\tReturns the last message in the chain before the EndOfLine or nil.\n","doInContext(anObject, locals)":"\tEvaluates the receiver in the context of anObject. Optional <tt>locals<\/tt> \n\tobject is used as message sender. <tt>anObject<\/tt> is used as sender otherwise.\n","fromString(aString)":"\tReturns a new Message object for the compiled(but not executed)\n\tresult of aString.\n","characterNumber":"\tReturns the message character number. The character number is typically\n\tthe beginning character index in the source text from which the message was read.\n","argCount":"Returns the number of arguments this message has. A faster way to do, msg arguments size. Examples,\n<pre>\t\nIo> message(a(1,2,3)) argCount\n==> 3\n\nIo> message(a) argCount\n==> 0\n<\/pre>\n","clone":"\tReturns a Message that is a deep copy of the receiver.\n","lineNumber":"\tReturns the line number of the message. The character number\n\tis typically the line number in the source text from which the message was read.\n","argAt(indexNumber)":"\tReturns Message object for the specified argument or Nil if none exists.\n","asMessageWithEvaluatedArgs(optionalContext)":"\tReturns a copy of receiver with arguments evaluated in the context of sender if\n\toptionalContext is nil.\n","hasCachedResult":"\tReturns true if there is a cached result. Nil is a valid cached result.\n","label":"\tReturns the message label. The label is typically set to the\n\tname of the file from which the source code for the message was read.\n","appendArg(aMessage)":"Adds aMessage to the argument list of receiver. Examples:\n<pre>\t\nIo> message(a) appendArg(message(b))\n==> a(b)\n\nIo> message(a(1,2)) appendArg(message(3))\n==> a(1, 2, 3)\n<\/pre>\n","evaluatedArgs":"\tReturns a List containing the argument messages evaluated in the context.\n","cachedResult":"\tReturns the cached result of the Message or Nil if there is none.\n","arguments":"\tReturns a list of the message objects that act as the\n\treceiver's arguments. Modifying this list will not alter the actual\n\tlist of arguments. Use the arguments_() method to do that.\n","asString":"\tSame as code().\n","setCachedResult(anObject)":"\tSets the cached result of the message. Returns self.\n","removeCachedResult":"\tRemoves the cached result of the Message.\n","last":"\tReturns the last message in the chain.\n","setCachedArgs(listOfValues)":" Appends evaluated arguments to a message. Returns self.\n","setCharacterNumber(aNumber)":"\tSets the character number of the message. Returns self.\n","isEndOfLine":"\tReturns true if the message marks the end of the line. A ';' message.\n","codeOfLength(n)":"\t\tSame as <tt>Message code<\/tt>, but returns first <tt>n<\/tt> characters only.\n","nextIgnoreEndOfLines":"\tReturns the next message in the message chain which is not an \n\tEndOfLine or nil if there is no next message.\n","name":"\tReturns the name of the receiver.\n","description":"Returns a string containing a short description of the method.\n","asStackEntry":"Returns a string containing message name, file and line.\n","setLabel(aString)":"\tSets the label of the message and its children. Returns self.\n","next":"\tReturns the next message in the message chain or nil if there is no next message.\n","setArguments(aListOfMessages)":"\tSets the arguments of the receiver to deep copies of\n\tthose contained in aListOfMessages.  Returns self.\n","setNext(aMessageOrNil)":"\tSets the next message in the message chain to a deep copy of\n\taMessage or it removes the next message if aMessage is nil.\n","union(other) Creates a union of the receiver and the other parameter.":"\tReturns a new message object with the receivers message as the first argument of the returned message, \n\tand the other parameter's arguments as each successive argument to the new message.\n\t<br\/>\n\t<pre>\n  Io> message(a) union(message(b))\n  ==> [unnamed](a, b)\n  <\/pre>\n","argsEvaluatedIn(anObject)":"\tReturns a List containing the argument messages evaluated in the\n\tcontext of anObject.\n","fluxPath":" The directory where the .io files for the Flux views are located. This directory is added to the Importer searchPaths.\n","setName(aString)":"\tSets the name of the receiver. Returns self.\n"}},"Collector":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Core\n","module":"Core","description":"A singleton containing methods related to Io's garbage collector. \nIo currently uses a incremental, non-moving, generational \ncollector based on the tri-color (black\/gray\/white) \nalgorithm with a write-barrier.\n<p>\nEvery N number of object allocs, the collector will walk \nsome of the objects marked as gray, marking their connected \nwhite objects as gray and turning themselves black. \nEvery M allocs, it will pause for a sweep where it makes sure \nall grays are marked black and io_frees all whites.\n<p>\nIf the sweepsPerGeneration is set to zero, it will immediately mark \nall blacks as white again and mark the root objects as gray. Otherwise, \nit will wait until the sweepsPerGeneration count is reached to do this. \nBy adjusting the allocsPerSweep and sweepsPerGeneration appropriately, the \ncollector can be tuned efficiently for various usage cases. \n\nGenerally, the more objects in your heap, the larger you'll want this number.\n","slots":{"setDebug(aBool)":"\tTurns on\/off printing of collector debugging messages. Returns self.\n","setMarksPerAlloc(aNumber)":"\tSets the number of incremental collector marks per object \n\tallocation (can be fractional). Returns self.\n","maxAllocatedBytes":"\tReturns the maximum number of bytes allocated by the collector.\n","cleanAllObjects":"\tSets all objects as clean. Returns self.\n","collect":"\tRuns garbage collector. Returns the number of items collected.\n","dirtyObjects":"\tReturns a List containing all dirty objects known to the collector.\n","allocatedStep":"\tReturn the allocation step value as a Number.\n","showStats":"\tPrints the collector's stats to standard output.\n","marksPerAlloc":"\tReturn the number of allocations per collector mark pass.\n","allObjects":"\tReturns a List containing all objects known to the collector.\n","resetMaxAllocatedBytes":"\tResets maximum number of bytes allocated by the collector. Returns self.\n","objectWithUniqueId(aNumber)":"\tReturns an object whose uniqueId is aNumber or nil if no match is found. \n\tWarning: This lookup currently scans all objects, so it is not efficient, \n\tthough it should handle thousands of lookups per second.\n","timeUsed":"\tReturn the time used so far by the collector in seconds.\n","setAllocatedStep(aNumber)":"\tSets the allocatedStep (can have a fractional component, \n\tbut must be larger than 1). A collector sweep is forced when the \n\tnumber of allocated objects exceeds the allocatedSweepLevel. \n\tAfter a sweep, the allocatedSweepLevel is set to the allocated \n\tobject count times the allocatedStep. Returns self.\n"}},"Profiler":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Core\n","module":"Core","description":"Basic support for profiling Io code execution.\n","slots":{"timedObjects":"\tReturns a list of objects found in the system that have profile times.\n","reset":"\tResets the profilerTime on all Block objects in the system.\n"}},"File":{"credits":"Initial version contributed by Miles Egan.\n","copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Core\n","module":"Core","description":"Encapsulates file i\/o. Here's an example of opening a file, \nand reversing its lines:\n<pre>\t\nfile = File clone openForUpdating(\"\/tmp\/test\")\nlines = file readLines reverse\nfile rewind\nlines foreach(i, line, file write(line, \"\\n\"))\nfile close\n<\/pre>\n","slots":{"thisSourceFile":"Returns a File representing the system file in which this Io code exists.\n","readBufferOfLength(aNumber)":"\tReads a Buffer of the specified length and returns it.\n\tReturns Nil if the end of the file has been reached.\n","readStringOfLength(aNumber)":"\tReads a String of the specified length and returns it.\n\tReturns Nil if the end of the file has been reached.\n","standardInput":"\tReturns a new File whose stream is set to the standard input stream.\n","setPosition(aNumber)":"\tSets the file position pointer to the byte specified by aNumber. Returns self.\n","reopen(otherFile, mode)":"\tReopens otherFile and redirects its stream to this file's path using mode.\n\tIf mode is omitted, it is copied from otherFile.\n\tReturns self or raises a File exception on error.\n","moveTo(pathString)":"\tMoves the file specified by the receiver's path to the\n\tnew path pathString. Raises a File doesNotExist exception if the\n\tfile does not exist or a File nameConflict exception if the file\n\tnameString already exists.\n","parentDirectory":"Returns a File for the directory that is the parent directory of this object's path.\n","groupId":"\tReturns a Number containing the group id associated with the file's path.\n","userId":"\tReturns a Number containing the user id associated with the file's path.\n","lastAccessDate":"\tReturns a Date object containing the last date and\n\ttime the file was accessed.\n","readToBufferLength(aBuffer, aNumber)":"\tReads at most aNumber number of items and appends them to aBuffer.\n\tReturns number of items read.\n","standardOutput":"\tReturns a new File whose stream is set to the standard output stream.\n","create":"Creates an empty file at the file's path. Returns self on success, nil on failure.\n","position":"\tReturns the current file pointer byte position as a Number.\n","readToEnd(chunkSize)":" Reads chunkSize bytes (4096 by default) at a time until end of file is reached.  Returns a sequence containing the bytes read from the file.\n","open(optionalPathString)":"\tOpens the file. Creates one if it does not exist.\n\tIf the optionalPathString argument is provided, the path is set to it before\n\topening. Returns self or raises an File exception on error.\n","rewind":"\tSets the file position pointer to the beginning of the file.\n","readLines":"\tReturns list containing all lines in the file.\n","popen":"\tOpen the file as a pipe. Return self.\n\n\tClosing a popen'ed file sets exitStatus or termSignal\n\tto reflect the status or cause of the child processes' termination.\n","exitStatus":"System's close status (after file close).\n","isAtEnd":"\tReturns true if the file is at its end. Otherwise returns false.\n","streamReadSize":"Size of stream buffer used for streaming operations\n","openForAppending(optionalPathString)":"\tSets the file mode to append (writing to the end of the file)\n\tand calls open(optionalPathString).\n","termSignal":"Pipe's terminating signal (after file close opened via popen).\n","isSocket":"\tReturns true if the receiver's file descriptor is a Socket, false otherwise.\n","isOpen":"\tReturns self if the file is open. Otherwise returns Nil.\n","readLine":"\tReads the next line of the file and returns it as a\n\tstring without the return character. Returns Nil if the \n\tend of the file has been reached.\n","temporaryFile":"\tReturns a new File object with an open temporary file. The file is\n\tautomatically deleted when the returned File object is closed or garbage collected.\n","with(aPath)":" Returns a new instance with the provided path.\n","isRegularFile":"\tReturns true if the receiver's file descriptor is a regular file, false otherwise.\n","descriptor":"\tReturns the file's descriptor as a number.\n","truncateToSize(numberOfBytes)":"\tTruncates the file's size to the numberOfBytes. Returns self.\n","isDirectory":"\tReturns true if the receiver's path points to a directory, false otherwise.\n","setStreamDestination(aBuffer)":" Set the buffer to be used for future stream operations.\n","streamDestination":"The buffer object to be used for future stream operations.\n","openForUpdating(optionalPathString)":"\tSets the file mode to update (reading and writing) and calls\n\topen(optionalPathString). This will not delete the file if it already exists.\n\tUse the remove method first if you need to delete an existing file before opening a new one.\n","mode":"\tReturns the open mode of the file(either read, update or append).\n","copyToPathWithoutYielding(destinationPath)":" Copies the file to the specified path without yielding.\n","close":"\tCloses the receiver if open, otherwise does nothing. Returns self.\n\n\tWhen the file was opened via popen, sets either exitStatus or\n\ttermSignal to the exit status on normal exit, or the signal causing\n\tabnormal termination.\n","foreachLine(optionalLineNumber, line, message)":"\tFor each line, set index to the line number of the line\nand line and execute aMessage.\nExample usage:\n<pre>\t\naFile foreachLine(i, v, writeln(\"Line \", i, \": \", v))\naFile foreach(v, writeln(\"Line: \", v))\n<\/pre>\n","stat":"\tUpdates the receiver's meta info cache.\n","lastInfoChangeDate":"\tReturns a Date object containing the last date and\n\ttime the file's meta info was changed.\n","write(aSequence1, aSequence2, ...)":"\tWrites the arguments to the receiver file. Returns self.\n","standardError":"\tReturns a new File whose stream is set to the standard error stream.\n","atPut(positionNumber, byteNumber)":"\tWrites the byte value of byteNumber to the file position\n\tpositionNumber. Returns self.\n","path":"\tReturns the file path of the receiver.\n","positionAtEnd":"\tSets the file position pointer to the end of the file.\n","setContents(aSeq)":" Replaces the contents for the file with aSeq. Returns self.\n","contents":"\tReturns contents of the file as a mutable Sequence of bytes.\n","name":"\tReturns the last path component of the file path.\n","lastDataChangeDate":"\tReturns a Date object containing the last date and\n\ttime the file's contents were changed.\n","baseName":"Returns File's name without an extension (returned Sequence consists of all characters up to final period [\".\"] character).\n","streamTo(aBuffer)":" Perform streamed reading to given buffer. The buffer will be appended with chunks of size streamReadSize until EOF. The final chunk may be less than streamReadSize.\n","size":"\tReturns the file size in bytes.\n","isPipe":"\tReturns true if the receiver is a pipe, false otherwise.\n","protectionMode":"\tReturns a Number containing the protection mode\n\tassociated with the file's path.\n","openForReading(optionalPathString)":"\tSets the file mode to read (reading only) and calls open(optionalPathString).\n","remove":"\tRemoves the file specified by the receiver's path.\n\tRaises an error if the file exists but is not removed. Returns self.\n","statSize":"\tReturns the file's size in bytes as a Number.\n","streamToWithoutYielding(aBuffer)":" Perform streamed reading to given buffer without yielding between reads.\n","at(aNumber)":"\tReturns a Number containing the byte at the specified\n\tbyte index or Nil if the index is out of bounds.\n","setPath(aString)":"\tSets the file path of the receiver to pathString.\n\tThe default path is an empty string. Returns self.\n","containingDirectory":"Deprecated. See parentDirectory.\n","isUserExecutable":"\tReturns true if the receiver is user group executable, false otherwise.\n","flush":"\tForces any buffered data to be written to disk. Returns self.\n","copyToPath(destinationPath)":" Copies the file to the specified path.\n","exists(optionalPath)":"\tReturns true if the file path exists, and false otherwise.\n\tIf optionalPath string is provided, it tests the existance of that path instead.\n","appendToContents(aSeq)":" Appends to the contents of the file with aSeq. Returns self.\n","foreach(optionalIndex, value, message)":"\tFor each byte, set index to the index of the byte\nand value to the number containing the byte value and execute aMessage.\nExample usage:\n<p>\n<pre>\t\naFile foreach(i, v, writeln(\"byte at \", i, \" is \", v))\naFile foreach(v, writeln(\"byte \", v))\n<\/pre>\n","asBuffer":"\tOpens the receiver in read only mode, reads the whole\n\tcontents of the file into a buffer object, closes the file and returns the buffer.\n","startStreaming":"Begin streamed read to stream destination set by setStreamDestination(aBuffer).\n","isLink":"\tReturns true if the receiver's path points to a link, false otherwise.\n"}},"CFunction":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Core\n","module":"Core","description":"A container for a pointer to a C function binding. \nCFunction's can only be defined from the C side and act \nlike blocks in that when placed in a slot, are called when the \nslot is activated. The for, if, while and clone methods of the Lobby \nare examples of CFunctions. CFunctions are useful for implementing \nmethods that require the speed of C or binding to a C library.\n","slots":{"typeName":"\tReturns the owning type of the CFunction or nil if the CFunction can be called on any object.\n","asString":"Same as asSimpleString.\n","performOn(target, blockLocals, optionalMessage, optionalContext)":"\tActivates the CFunctions with the supplied settings.\n","id":"\tReturns a number containing a unique id for the receiver's internal C function.\n","==(anObject)":"\tReturns self if the argument is a CFunction with the same internal C function pointer.\n","name":"Returns the CFunction name in the form CFunction_Pointer.\n","asSimpleString":"Returns the CFunction name.\n","uniqueName":"\tReturns the name given to the CFunction.\n"}},"Number":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Core\n","module":"Core","description":"A container for a double (a 64bit floating point number on most platforms).\n","slots":{"%(aNumber)":"\tReturns the receiver modulus aNumber.\n","isControlCharacter":"\tReturns true if \n\treceiver is a control character value\n\t, false otherwise.\n","constants":"Object containing number constants e, inf, nan and pi.\n","px":"Calls [[ClutterUnits withPx]].\n","justSerialized(stream)":" Writes the receiver's code into the stream.\n","integerMax":"\tReturns the maximum integer value.\n","ceil":"\tReturns the a number with the receiver's value rounded up to\n\tthe nearest integer if its fractional component is greater than 0.\n","log10":"\tReturns the base 10 logarithm of the receiver.\n","^(aNumber)":"\tReturns the bitwise xor with the receiver (both numbers are converted to longs for the operation).\n","&(aNumber)":"\tReturns a new number with the bitwise AND of the receiver and aNumber.\n","asUint32Buffer":"\tReturns a Sequence containing a 4 byte representation of the uint32 value of the receiver.\n","cos":"\tReturns the cosine of the receiver.\n","abs":"\tReturns a number with the absolute value of the receiver.\n","isNan":"\tReturns true if the receiver is not a number. Otherwise returns false.\n","isGraph":"\tReturns true if \n\tthe receiver is a printing character value except space\n\t, false otherwise.\n","sin":"\tReturns the sine of the receiver.\n","asUppercase":"\tReturns a new Number containing a upper case version of the receiver.\n","isEven":"\tReturns true if \n\tinteger form of the receiver is even\n\t, false otherwise.\n","toggle":"\tReturns 1 if the receiver is 0. Returns 0 otherwise.\n","em":"Calls [[ClutterUnits withEm]].\n","mm":"Calls [[ClutterUnits withMm]].\n","atan":"\tReturns a number with the arc tangent of the receiver.\n","isPunctuation":"\tReturns true if \n\tthe receiver is a punctuation character value\n\t, false otherwise.\n","isPrint":"\tReturns true if \n\tthe receiver is a printing character value, including space\n\t, false otherwise.\n","floatMin":"\tReturns the minimum float value.\n","bitwiseAnd(aNumber)":"\tReturns a new number with the bitwise AND of the receiver and aNumber.\n","*(aNumber)":"\tReturns a new number that is the product of the receiver and aNumber.\n","permutations(size)":" Returns the permutations where the receiver is the number of different objects and size is the number to be arranged.\n","isSpace":"\tReturns true if \n\tthe receiver is a space, formfeed, newline carriage return, tab or vertical tab character value\n\t, false otherwise.\n","isHexDigit":"\tReturns true if \n\tthe receiver is a hexadecimal character value\n\t, false otherwise.\n","min(aNumber)":"\tReturns the lesser of the receiver and aNumber.\n","toBase(base)":" Returns the number in another base. 42 toBase(2) -> \"101010\"\n","inf":"Returns a not-a-number constant.\n","-(aNumber)":"\tReturns a new number that is the difference of the receiver and aNumber.\n","between(aNumber1, aNumber2)":"\tReturns true if the receiver's value is between or\n\tequal to aNumber1 and aNumber2, otherwise returns false.\n","nan":"Returns a infinity constant.\n","round":"\tReturns a number with the receiver's value rounded up to\n\tthe nearest integer if its fraction component is >= .5 or rounded up to the nearest integer otherwise.\n","longMax":"\tReturns the maximum long value.\n","negate":"\tReturns new number that is negated version of the receiver.\n","mod(aNumber)":"\tReturns the receiver modulus aNumber.\n","|(aNumber)":"\tReturns a new number with the bitwise OR of the receiver and aNumber.\n","asLowercase":"\tReturns a new Number containing a lower case version of the receiver.\n","clip(aNumber1, aNumber2)":"\tReturns self if the receiver is between aNumber1 and aNumber2.\n\tReturns aNumber1 if it is less than aNumber1. Returns aNumber2 if it is greater than aNumber2.\n","pi":"Returns the constant pi.\n","<<(aNumber)":"\tShifts the bits of the receiver left by the number of places specified by aNumber.\n","doubleMin":"\tReturns the minimum double precision float value.\n","atan2(aNumber)":"\tReturns a number with the arc tangent of y\/x where y is the receiver and x is aNumber.\n","shortMax":"\tReturns the maximum short value.\n","floor":"\tReturns a number with the receiver's value rounded\n\tdown to the nearest integer if its fractional component is not 0.\n","floatMax":"\tReturns the maximum double precision float value.\n","asHex":"Returns the number as hex digits inside a string. 97 asHex -> \"61\"\n","print":"\tPrints the number.\n","asString(optionalIntegerDigits, optionalFactionDigits)":"Returns a string representation of the receiver. For example:\n<pre>\n1234.5678 asString(0, 2)\n<\/pre>\t\nwould return:\n<pre>\n1234.57\n<\/pre>\n","longMin":"\tReturns the minimum long value.\n","shortMin":"\tReturns the minimum short value.\n","pow(aNumber)":"\tReturns the value of the receiver to the aNumber power.\n","factorial":"\tReturns the factorial of the receiver.\n","asOctal":"Returns the number as octal digits inside a string. 436 asOctal -> \"664\"\n","squared":"\tReturns the square of the receiver.\n","asCharacter":"\tReturns a String containing a single character whose\n\tvalue is the value of the first byte of the receiver.\n\tReturns nil if the number has no valid UCS mapping.\n","repeat(optionalIndex, expression)":"\tEvaluates message a number of times that corresponds to the receivers\n\tinteger value. This is significantly faster than a for() or while() loop.\n","unsignedIntMax":"\tReturns the maximum unsigned int value.\n","tan":"\tReturns the tangent of the receiver.\n","isUppercase":"\tReturns true if \n\tthe receiver is a uppercase character value\n\t, false otherwise.\n","cubed":"\tReturns the cube of the receiver.\n","log":"\tReturns the logarithm of the receiver.  The base\n\tis taken as the value of the first argument or the constant e if\n\tthe first argument is omitted.\n","combinations(size)":" Returns the combinations where the receiver is the number of different objects and size is the number to be arranged.\n","toBaseWholeBytes(base)":" Returns the number in another base printing out entire bytes. 42 toBaseWholeBytes(2) -> \"00101010\"\n","e":"Returns the constant e.\n","isInASequenceSet":"Return true if receiver is in one of the Sequence sequenceSets, otherwise false.\n","isDigit":"\tReturns true if \n\treceiver is a numeric digit value\n\t, false otherwise.\n","isOdd":"\tReturns true if \n\tinteger form of the receiver is odd\n\t, false otherwise.\n","acos":"\tReturns a number with the arc cosine of the receiver.\n","asBuffer(optionalNumberOfBytes)":"\tReturns a Buffer containing a the number of bytes specified by\n\toptionalNumberOfBytes (up to the size of a double on the platform) of the receiver.\n\tIf no optionalNumberOfBytes is specified, it is assumed to be the number of bytes\n\tin a double on the host platform.\n","roundDown":"\tReturns a number with the receiver's value rounded down to\n\tthe nearest integer if its fraction component is <= .5 or rounded up the the nearest integer otherwise.\n","+(aNumber)":"\tReturns a new number that is the sum of the receiver and aNumber.\n","bitwiseXor(aNumber)":"\tReturns a new number with the bitwise XOR of the receiver and aNumber.\n","log2":"\tReturns the base 2 logarithm of the receiver.\n","at(bitIndexNumber)":"\tReturns a new Number containing 1 if the receiver cast to a long\n\thas its bit set to 1 at bitIndexNumber. Otherwise returns 0.\n","**(aNumber)":"\tSame as pow(aNumber).\n","bitwiseComplement":"\tReturns a new number with the bitwise complement of the\n\treceiver. (The 0 bits become 1s and the 1 bits become 0s. )\n","isLowercase":"\tReturns true if \n\tthe receiver is a lowercase character value\n\t, false otherwise.\n","bitwiseOr(aNumber)":"\tReturns a new number with the bitwise AND of the receiver and aNumber.\n","unsignedShortMax":"\tReturns the minimum unsigned int value.\n","exp":"\tReturns e to the power of the receiver.\n","isLetter":"\tReturns true if \n\treceiver is a letter character value\n\t, false otherwise.\n","isAlphaNumeric":"\tReturns true if \n\treceiver is an alphanumeric character value\n\t, false otherwise.\n","asNumber":"\tReturns self.\n","sqrt":"\tReturns the square root of the receiver.\n","pt":"Calls [[ClutterUnits withPt]].\n","emForFont(fontname)":" Calls [[ClutterUnits emForFont]].\n",">>(aNumber)":"\tShifts the bits of the receiver right by the number of places specified by aNumber.\n","minMax(low, high)":" Returns a number between or equal to low and high. If the receiver is equal to or between low and high, the receiver is returned. If the receiver is less than low, low is returned. If the receiver is greater than high, high is returned.\n","max(aNumber)":"\tReturns the greater of the receiver and aNumber.\n","asin":"\tReturns a number with the arc sine of the receiver.\n","\/(aNumber)":"\tReturns a new number with the value of the receiver divided by aNumber.\n","asBinary":"Returns the number as binary digits inside a string. 42 asBinary -> \"101010\"\n","unsignedLongMax":"\tReturns the maximum unsigned long value.\n","integerMin":"\tReturns the minimum integer value.\n"}},"Exception":{"category":"Core\n","module":"Core","description":"The Exception proto is used for raising exceptions and instances are used to hold rexception related info.\n\n<p><b>Raise<\/b><p>\n\nAn exception can be raised by calling raise() on an exception proto.\nException raise(\"generic foo exception\")\n\n<p><b>Try and Catch<\/b><p>\n\nTo catch an exception, the try() method of the Object proto is used. try() will catch any exceptions that occur within it and return the caught exception or nil if no exception is caught.\n\n<pre>\ne := try(<doMessage>)\n<\/pre>\n\nTo catch a particular exception, the Exception catch() method can be used. Example:\n\n<pre>\ne := try(\n    \/\/ ...\n)\n\ne catch(Exception,\n    writeln(e coroutine backtraceString)\n)\n<\/pre>\n\nThe first argument to catch indicates which types of exceptions will be caught. catch() returns the exception if it doesn't match and nil if it does.\n\n<p><b>Pass<\/b><p>\n\nTo re-raise an exception caught by try(), use the pass method. This is useful to pass the exception up to the next outer exception handler, usually after all catches failed to match the type of the current exception:\n<pre>\ne := try(\n    \/\/ ...\n)\n\ne catch(Error,\n    \/\/ ...\n) catch(Exception,\n    \/\/ ...\n) pass\n<\/pre>\n\n<p><b>Custom Exceptions<\/b><p>\n\nCustom exception types can be implemented by simply cloning an existing Exception type:\n<pre>\nMyErrorType := Error clone\n<\/pre>\n","slots":{"originalCall":"Returns the call object associated with the exception.\n","caughtMessage":"Returns the message object associated with the exception.\n","error":"Returns the coroutine that the exception occurred in.\n","showStack":"Print the exception and related stack.\n","pass":"Pass the exception up the stack.\n","raise(error, optionalNestedException)":" Raise an exception with the specified error message.\n","catch(exceptionProto)":" Catch an exception with the specified exception prototype.\n","nestedException":"Returns the nestedException if there is one.\n"}},"Object":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Core\n","module":"Core","description":"An Object is a key\/value dictionary with string keys and values of any type.\nThe prototype Object contains a clone slot that is a CFunction that creates new objects.\nWhen cloned, an Object will call its init slot (with no arguments).\n","slots":{"forward":"Called when the receiver is sent a message it doesn't recognize.\nDefault implementation raises an \"Object doesNotRespond\" exception.\nSubclasses can override this method to implement proxies or special error handling.\n<p>\nExample:\n<p>\n<pre>\nmyProxy forward = method(\n\tmessageName := thisMessage name\n\targuments := thisMessage arguments\n\tmyObject doMessage(thisMessage)\n)\n<\/pre>\n","pause":"\tRemoves current coroutine from the yieldingCoros queue and\n\tyields to another coro. Exits if no coros left.\n\t<br\/>\n\tSee Coroutine documentation for more details.\n","actorProcessQueue":"Processes each message in a queue, yielding between each message.\n","continue":"\tSkip the rest of the current loop iteration and start on\n\tthe next, if any.\n","coroDo(code)":"\t\tCreates a new coro to be run in a context of sender and yields to it.\n\t\tReturns a coro.\n","markClean":"Cleans object's slots.\n","setProtos(aList)":"\tReplaces the receiver's protos with a copy of aList. Returns self.\n","ifNonNil(arg)":" Evaluates argument and returns self.\n",">=(expression)":"\tEvaluates argument and returns self if self is greater\n\tthan or equal to it, or Nil if not.\n","(expression)":"\tThe '' method evaluates the argument and returns the result.\n","thisLocalContext":"\tReturns current locals.\n","addTrait":"Takes another object, whose slots will be copied into the receiver. Optionally takes a second argument, a Map object containing string -> string pairs, holding conflicting slot names and names to rename them to. I.e., if you have two objects A and B, both have a slot named foo, you issue A addTrait(B, Map clone atPut(\"foo\", \"newFoo\")) the value of B foo will be placed in A newFoo.\n","persist":"Force immediate persistence of this object with PDB.\n","write(<any number of arguments>)":"\tSends a print message to the evaluated result of each argument. Returns Nil.\n","memorySize":"\tReturn the amount of memory used by the object.\n","updateSlot(slotNameString, valueObject)":"\tSame as setSlot(), but raises an error if the slot does not\n\talready exist in the receiver's slot lookup path.\n","inlineMethod":"  Creates a method which is executed directly in a receiver (no Locals object is created).\n  <br\/>\n  <pre>\n  Io> m := inlineMethod(x := x*2)\n  Io> x := 1\n  ==> 1\n  Io> m\n  ==> 2\n  Io> m\n  ==> 4\n  Io> m\n  ==> 8\n  <\/pre>\n","coroWith(code)":" Returns a new coro to be run in a context of receiver.\n","evalArgAndReturnSelf(expression)":"\tEvaluates the argument and returns the target.\n","compare(anObject)":"\tReturns a number containing the comparison value of the target with anObject.\n",">(expression)":"\tEvaluates argument and returns self if self is greater than it, or Nil if not.\n","relativeDoFile(pathString)":"\t\tEvaluates the File in the context of the receiver. Returns the result. \n\t\tpathString is relative to the file calling doRelativeFile. (Duplicate of doRelativeFile)\n","ifDebug(code)":" Executes code if debugWriteln is not nil.\n","returnIfNonNil":"\tReturns the receiver from the current execution block if it is non nil.\n\tOtherwise returns the receiver locally.\n","slotValues":"\tReturns a list of the values held in the slots of the receiver.\n","doRelativeFile(pathString)":"\t\tEvaluates the File in the context of the receiver. Returns the result. \n\t\tpathString is relative to the file calling doRelativeFile. (Duplicate of relativeDoFile)\n","currentCoro":"Returns the currently running coroutine.\n","raiseIfError":"Does nothing, returns self.\n","debugOff":"Sets debugWriteln to nil. Returns self.\n","shallowCopy":"\tReturns a shallow copy of the receiver.\n","and(arg)":" Evaluates argument and returns the result.\n","self":"\tReturns self.\n","launchFile(pathString)":" Eval file at pathString as if from the command line in its folder.\n","super(aMessage)":"\tSends the message aMessage to the receiver's proto with the context of self. Example:\n\t<pre>\n\tself test(1, 2)   \/\/ performs test(1, 2) on self\n\tsuper(test(1, 2)) \/\/ performs test(1, 2) on self proto but with the context of self\n\t<\/pre>\n","print":"\tPrints a string representation of the object. Returns Nil.\n","contextWithSlot(slotName)":"\tReturns the first context (starting with the receiver and following the lookup path)\n\tthat contains a slot of the specified name or Nil if none is found.\n","..(arg)":" .. is an alias for: method(arg, self asString append(arg asString))\n","-(aNumber)":"\tReturns the negative version of aNumber.\n\tRaises an exception if argument is not a number.\n","clone":"\tReturns a clone of the receiver.\n","removeAllProtos":"\tRemoves all of the receiver's protos. Returns self.\n","persistMetaData":"Force immediate persistence of this object's type data into PDB\n","asString":"Same as <tt>slotSummary<\/tt>.\n","try(code)":"\t\tExecutes particular code in a new coroutine.\n\t\tReturns exception or nil if no exception is caught.\n\t\t<br\/>\n\t\tSee also documentation for Exception catch and pass.\n","coroDoLater(code)":"\t\tReturns a new coro to be run in a context of sender.\n\t\tNew coro is moved to the top of the yieldingCoros queue to be executed\n\t\twhen current coro yields.\n\t\t<br\/>\n\t\tNote: run target is <tt>self<\/tt> (i.e. receiver), not <tt>call sender<\/tt> as in coroDo.\n","or(arg)":" Returns true.\n","doString(aString)":"\tEvaluates the string in the context of the receiver. Returns the result.\n","handleActorException(exception)":"\tCallback for handling exceptions during asynchronous message processing.\n\t<br\/>\n\tDefault value: method(e, e showStack)\n","protos":"\tReturns a copy of the receiver's protos list.\n","getLocalSlot(slotNameString)":"\tReturns the value of the slot named slotNameString\n\t(not looking in the object's protos) or nil if no such slot is found.\n","persistSlots":"Force immediate persistence of this object's dirty slots into PDB.\n","foreachSlot(slotName, slotValue, code)":"  Iterates over all the slots in a receiver. Provides slotValue (non-activated)\n  along with slotName. Code is executed in context of sender. <tt>slotName<\/tt> and <tt>slotValue<\/tt>\n  become visible in the receiver (no Locals created! Maybe, it is not the best decision).\n  <br\/>\n  <pre>\n  Io> thisContext foreachSlot(n, v, n println)\n  Lobby\n  Protos\n  exit\n  forward\n  n\n  v\n  ==> false\n  <\/pre>\n","block(args..., body)":"\tCreates a block and binds it to the sender context (i.e. lexical context).\n\tIn other words, block locals' proto is sender's locals.\n\t<tt>args<\/tt> is a list of formal arguments (can be empty). <br\/>\n\t<tt>body<\/tt> is evaluated in the context of Locals object.<br\/>\n\tSee also <tt>Object method<\/tt>.\n\t<br\/>\n\t<pre>\n\tIo> block(x, x*2) scope == thisContext\n  ==> true\n\t<\/pre>\n","coroFor(code)":"\t\tReturns a new coro to be run in a context of sender.\n","<=(expression)":"\tEvaluates argument and returns self if self is less\n\tthan or equal to it, or Nil if not.\n","==(aValue)":"\tReturns true if receiver and aValue are equal, false otherwise.\n","ifNil(arg)":" Does nothing, returns self.\n","?(aMessage)":"\tdescription: Sends the message aMessage to the receiver if it can respond to it. Example:\n\t<pre>\n\tMyObject test \/\/ performs test\n\tMyObject ?test \/\/ performs test if MyObject has a slot named test\n\t<\/pre>\n\tThe search for the slot only follows the receivers proto chain.\n","do(expression)":"\tEvaluates the message in the context of the receiver. Returns self.\n","method(args..., body)":"\tCreates a method. \n\t<tt>args<\/tt> is a list of formal arguments (can be empty). <br\/>\n\t<tt>body<\/tt> is evaluated in the context of Locals object.<br\/>\n\tLocals' proto is a message receiver (i.e. self).\n\t<br\/>\n\tSlot with a method is <em>activatable<\/em>. Use getSlot(name) to retrieve \n\tmethod object without activating it (i.e. calling).\n\t<br\/>\n\tSee also <tt>Object block<\/tt>.\n","lexicalDo(expression)":"\tEvaluates the message in the context of the receiver.\n\tThe lexical context is added as a proto of the receiver while the argument is evaluated.\n\tReturns self.\n","debugWriteln":"Method for writing debug messages (nil\/writeln by default)\n","setIsActivatable(aValue)":"\tWhen called with a non-Nil aValue, sets the object\n\tto call its activate slot when accessed as a value. Turns this behavior\n\toff if aValue is Nil. Only works on Objects which are not Activatable\n\tPrimitives (such as CFunction or Block). Returns self.\n","@@":"\tSame as Object @, but returns nil instead of FutureProxy.\n\t<br\/>\n\tMight be useful in a command line or as a last expression in a block\/method when\n\tyou don't want to return a future.\n","getSlot(slotNameString)":"\tReturns the value of the slot named slotNameString\n\t(following the lookup path) or nil if no such slot is found.\n","!=(aValue)":"\tReturns true the receiver is not equal to aValue, false otherwise.\n","thisMessage":"\tReturns the calling message (i.e. thisMessage itself, huh).\n","hasProto(anObject)":"\tReturns true if anObject is found in the proto path of the target, false otherwise.\n","<(expression)":"\tEvaluates argument and returns self if self is less or Nil if not.\n","println":"Same as print, but also prints a new line. Returns self.\n","setSlot(slotNameString, valueObject)":"\tSets the slot slotNameString in the receiver to\n\thold valueObject. Returns valueObject.\n","in(aList)":" Same as: aList contains(self)\n","evalArg(expression)":"\tThe '' method evaluates the argument and returns the result.\n","not":"Returns nil.\n","localsUpdateSlot(slotNameString, valueObject)":"\tLocal's version of updateSlot mthod.\n","memorySizeOfState":"\tReturns the number of bytes in the IoState\n\t(this may not include memory allocated by C libraries).\n","prependProto(anObject)":"\tPrepends anObject to the receiver's proto list. Returns self.\n","message(expression)":"\tReturn the message object for the argument or Nil if there is no argument.\n\tNote: returned object is a mutable singleton. Use \"message(foo) clone\" if\n  you wish to modify it.\n","type":"\tReturns a string containing the name of the type of Object (Number, String, etc).\n","argIsActivationRecord":"  Note: seems to be an obsolete method.\n","perform(methodName, <arg1>, <arg2>, ...)":"\tPerforms the method corresponding to methodName with the arguments supplied.\n","yield":"\tYields to another coroutine. Does nothing if yieldingCoros queue is empty.\n\t<br\/>\n\tSee Coroutine documentation for more details.\n","doURL(urlString)":" Fetches the URL and evals it in the context of the receiver.\n","justSerialized(stream)":"  Writes serialized representation to a SerializationStream. Returns stream contents. \n  [This is unintended side effect! Returned value may change in the future.]\n","slotDescriptionMap":"  Returns raw map of slot names and short values' descriptions.\n  See also <tt>Object slotSummary<\/tt>.\n","isIdenticalTo(aValue)":"\tReturns true if the receiver is identical to aValue, false otherwise.\n","NullCharacter":"A sequence with a single zero byte.\n","appendProto(anObject)":"\tAppends anObject to the receiver's proto list. Returns self.\n","stopStatus":"\tReturns the internal IoState->stopStatus.\n","ifError":"Does nothing, returns self.\n","asSimpleString":"Returns <type>_<uniqueHexId> string.\n","ifNilEval(arg)":" Does nothing, returns self.\n","ancestors":"Returns a list of all of the receiver's ancestors as found by recursively following the protos links.\n","hasSlot(name)":"  Returns <tt>true<\/tt> if slot is found somewhere in the inheritance chain \n  (including receiver itself).\n","serialized":"  Returns a serialized representation of the receiver.\n  <br\/>\n  <pre>\n  Io> Object clone do(x:=1) serialized\n  ==> Object clone do(\n  \tx := 1\n  )\n  <\/pre>\n","isTrue":"Returns true.\n","performWithArgList(methodName, argList)":"\tPerforms the method corresponding to methodName with the arguments in the argList.\n","returnIfError":"Does nothing, returns self.\n","localsForward":"\tCFunction used by Locals prototype for forwarding.\n","checkMemory()":"\tAccesses memory in the IoObjectData struct that should be accessible.  Should cause a memory access\n\texception if memory is corrupt.\n","ifNonNilEval(arg)":" Evaluates argument and returns the result.\n","if(<condition>, <trueMessage>, <optionalFalseMessage>)":"\tEvaluates trueMessage if condition evaluates to a non-Nil.\n\tOtherwise evaluates optionalFalseMessage if it is present.\n\tReturns the result of the evaluated message or Nil if none was evaluated.\n","break(optionalReturnValue)":"\tBreak the current loop, if any.\n","setPpid":"PDB extension to set the value returned by ppid.\n","pSlots":"PDB extension to set a list of slots to persist with PDB.\nCreates the specified slots using newSlot and sets them to nil.\n","become(anotherObject)":"\tReplaces receiver with <tt>anotherObject<\/tt> and returns self.\n\tUseful for implementing transparent proxies. See also <tt>FutureProxy<\/tt> and <tt>Object @<\/tt>.\n\t<br\/>\n\tNote: primitives cannot become new values.\n","persistData":"Force immediate persistence of this object's serialized form (using asSerialization)\ninto PDB, if possible.\n","isKindOf(anObject)":" Returns true if anObject is in the receiver's ancestors.\n","serializedSlots(stream)":" Writes all slots to a stream.\n","removeSlot(slotNameString)":"\tRemoves the specified slot (only) in the receiver if it exists. Returns self.\n","setProto(anObject)":"\tSets the first proto of the receiver to anObject, replacing the\n\tcurrent one, if any. Returns self.\n","compact":"\tCompact the memory for the object if possible. Returns self.\n","foreach([name,] value, message)":"For each slot, set name to the slot's\nname and value to the slot's value and execute message. Examples:\n<p>\n<pre>\nmyObject foreach(n, v,\n\twriteln(\"slot \", n, \" = \", v type)\n)\n\nmyObject foreach(v,\n\twriteln(\"slot type \", v type)\n)\n<\/pre>\n","deprecatedWarning(optionalNewName)":"\tPrints a warning message that the current method is deprecated.\n\tIf optionalNewName is supplied, the warning will suggest using that instead.\n\tReturns self.\n","removeProto(anObject)":"\tRemoves anObject from the receiver's proto list if it\n\tis present. Returns self.\n","uniqueId":"\tReturns a Number containing a unique id for the receiver.\n","apropos":"Prints out <tt>Protos Core<\/tt> slot descriptions.\n","unpersist":"PDB extension to populate this object with the data associated with this object's ppid from PDB.\n","setSlotWithType(slotNameString, valueObject)":"\tSets the slot slotNameString in the receiver to\n\thold valueObject and sets the type slot of valueObject\n\tto be slotNameString. Returns valueObject.\n","isNil":"Returns false.\n","hasLocalSlot(slotNameString)":"\tReturns true if the slot exists in the receiver or false otherwise.\n","serializedSlotsWithNames(names, stream)":" Writes selected slots to a stream.\n","isActivatable":"\tReturns true if the receiver is activatable, false otherwise.\n","ownsSlots":"  A debug method.\n","wait(s)":"\tPauses current coroutine for at least <tt>s<\/tt> seconds.\n\t<br\/>\n\tNote: current coroutine may wait much longer than designated number of seconds\n\tdepending on circumstances.\n","list(...)":" Returns a List containing the arguments.\n","slotNames":"\tReturns a list of strings containing the names of the\n\tslots in the receiver (but not in its lookup path).\n","isLaunchScript":"Returns true if the current file was run on the command line. Io's version of Python's __file__ == \"__main__\"\n","shouldPersistByDefault":"PDB boolean flag indicating whether this object should be considered for persistence\nwhen persistence has not been specifically requested by calling ppid() or PDB addObjectToPersist.\nAlways false by default for Object.\n","doFile(pathString)":"\tEvaluates the File in the context of the receiver. Returns the result.\n\tpathString is relative to the current working directory.\n","@":"\tSends asynchronous message to an object, returns a FutureProxy.\n\t<br\/>\n\tCaller coroutine is paused when proxy is accessed (i.e. message is sent)\n\ttill result is ready. Proxy will become an actual result when it is ready.\n\t<br\/>\n\tSee IoGuide for more information.\n\t<br\/>\n\tUsage: obj @someMethod(a, b, c)\n","for(<counter>, <start>, <end>, <do message>)":"\tA for-loop control structure. See the io Programming Guide for a full description.\n","ancestorWithSlot(slotName)":"\tReturns the first ancestor of the receiver that contains\n\ta slot of the specified name or Nil if none is found.\n","uniqueHexId":"  Returns uniqueId in a hexadecimal form (with a \"0x\" prefix)\n  <pre>\n  Io> Object uniqueId\n  ==> 3146784\n  Io> Object uniqueHexId\n  ==> 0x300420\n  <\/pre>\n","actorRun":"Starts actor mode if not started already. Basically, sets actorProcessQueue for later execution.\n","debugOn":"Sets debugWriteln to writeln. Returns self.\n","proto":"\tSame as; method(self protos first)\n","argIsCall(arg)":"\tReturns true if arg is an activation context (i.e. Call object)\n\t<br\/>\n\tNote: this is used internally in one place only (Coroutine callStack).\n\tRefactoring should be considered.\n","writeln(<any number of arguments>)":"\tSame as write() but also writes a return character at the end. Returns Nil.\n","removeAllSlots":"\tRemoves all of the receiver's slots. Returns self.\n","slotSummary":"  Returns a formatted <tt>slotDescriptionMap<\/tt>.\n  <br\/>\n  <pre>\n  Io> slotSummary\n  ==>  Object_0x30c590:\n    Lobby            = Object_0x30c590\n    Protos           = Object_0x30c880\n    exit             = method(...)\n    forward          = method(...)\n  <\/pre>\n","newSlot(slotName, aValue)":"\tCreates a getter and setter for the slot with the name slotName\n\tand sets its default value to aValue. Returns self. For example,\n\tnewSlot(\"foo\", 1) would create slot named foo with the value 1 as well as a setter method setFoo().\n","loop(expression)":"\tKeeps evaluating message until a break.\n","cloneWithoutInit":"\tReturns a clone of the receiver but does not call init.\n","doMessage(aMessage, optionalContext)":"\tEvaluates the message object in the context of the receiver.\n\tReturns the result. optionalContext can be used to specific the locals\n\tcontext in which the message is evaluated.\n","lazySlot(code)":"  Defines a slot with a lazy initialization code. \n  Code is run only once: the first time slot is accessed. \n  Returned value is stored in a regular slot.\n  <br\/>\n  <pre>\n  Io> x := lazySlot(\"Evaluated!\" println; 17)\n  Io> x\n  Evaluated!\n  ==> 17\n  Io> x\n  ==> 17\n  Io> x\n  ==> 17\n  <\/pre>\n  <br\/>\n  Another form is <tt>lazySlot(name, code)<\/tt>:\n  <br\/>\n  <pre>\n  Io> lazySlot(\"x\", \"Evaluated!\" println; 17)\n  Io> x\n  Evaluated!\n  ==> 17\n  Io> x\n  ==> 17\n  Io> x\n  ==> 17\n  <\/pre>\n","isError":"Returns false if not an error.\n","resend":"\tSend the message used to activate the current method to the Object's proto.\n  For example:\n  <pre>\n  Dog := Mammal clone do(\n    init := method(\n  \t  resend\n    )\n  )\n  <\/pre>\n\tCalling Dog init will send an init method to Mammal, but using the Dog's context.\n","ppid":"This PDB extension returns a unique identifier for this object and registers it\nfor persistence with PDB.\n","thisContext":"\tSynonym to self.\n","while(<condition>, expression)":"\tKeeps evaluating message until condition return Nil.\n\tReturns the result of the last message evaluated or Nil if none were evaluated.\n","evalArgAndReturnNil(expression)":"\tEvaluates the argument and returns nil.\n","switch(<key1>, <expression1>, <key2>, <expression2>, ...)":"\tExecute an expression depending on the value of the caller. (This is an equivalent to C switch\/case)\n\t<code>\n\thour := Date hour switch(\n\t\t12, \"midday\",\n\t\t0, \"midnight\",\n\t\t17, \"teatime\",\n\t\tDate hour asString\n\t)\n\t<\/code>\n","compactState":"\tAttempt to compact the memory of the IoState if possible.\n","return(anObject)":"\tReturn anObject from the current execution block.\n"}},"Sandbox":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Core\n","module":"Core","description":"Sandbox can be used to run separate instances of Io within the same process.\n","slots":{"doSandboxString(aString)":"\tEvaluate aString inside the Sandbox.\n","messageCount":"\tReturns a number containing the messageCount limit of the Sandbox.\n","timeLimit":"\tReturns a number containing the time limit of calls made to the Sandbox.\n","setTimeLimit(aDouble)":"\tSets the time limit of the Sandbox.\n","printCallback(string)":" default implementation is; method(string, string print)\n","setMessageCount(anInteger)":"\tSets the messageCount limit of the receiver.\n"}},"Directory":{"credits":"Cygwin code by Mike Austin. WIN32 code by Daniel Vollmer.\n","copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Core\n","module":"Core","description":"The Directory object supports accessing filesystem directories. A note on paths;\nif a path begins with a \"\/\" it's the root,\nif it beings with a \".\/\" it's the launch path,\nif not specified, \".\/\" is assumed.\"\"\")\n","slots":{"walk":"    Recursively walks the current directory, and executes a given callback on\n    each item (either File or Directory) found, excluding \".\" and \"..\".\n<pre>\nIo> Directory walk(println)\nA0_List.io\nA1_OperatorTable.io\n...\nIo> Directory walk(f, if(f name startsWithSeq(\"Directory\"), f println))\nDirectory.io\n<\/pre>\n","filesWithExtension(aString)":"    Returns a list of File objects for the files in the Directory (no directories)\n    with the specified file extension.\n","currentWorkingDirectory":"\tReturns the current working directory path.\n","directoryNamed(aName)":" Returns a Directory object for the specified file name whether or not it exists.\n","localItems":"All subitems excluding '.' and '..'.\n","files":"Returns a list of File objects for the files in the Directory (no directories).\n","recursiveFilesOfTypes(suffixes)":"    Returns a list containing all files in the directory or any subdirectory that\n    has any of the specified suffixes.\n","with(aPath)":" Returns a new instance with the provided path.\n","path":"\tReturns the directory path. The default path is '.'.\n","create":"\tCreate the directory if it doesn't exist. \n\tReturns self on success (or if the directory already exists), nil on failure.\n","ancestorDirectories":"Returns a list of ancestor directories.\n","fileNamed(aName)":" Returns a File object for the specified file name whether it exists or not.\n","createSubdirectory(name)":"\tCreate a subdirectory with the specified name.\n","size":"\tReturns a Number containing the number of file and directory\n\tobjects at the receiver's path.\n","remove":"Removes the directory.\n","items":"\tReturns a list object containing File and Directory objects\n\tfor the files and directories of the receiver's path.\n","createFileNamed(name)":" Deprecated. Returns a new file object in the directory with the specified name.\n","folderNamed(aName)":" Deprecated. Replaced by directoryNamed().\n","parents":"Deprecated. Replaced by ancestorDirectories.\n","parentDirectory":"Returns the parent directory object or nil if there is no parent directory.\n","setCurrentWorkingDirectory(pathString)":"\tSets the current working directory path.\n\tReturns true on success or false on error.\n","setPath(aString)":"\tSets the directory path. Returns self.\n","name":"\tReturns the receiver's last path component.\n","createIfAbsent":"Creates the directory (and any missing ancestor directories) if they don't exist. Returns self.\n","moveTo(aPath)":" Moves the directory to the specified path.\n","folderNamedCreateIfAbsent(name)":" Deprecated. Returns a new Directory object in the directory with the specified name.\n","at(aString)":"\tReturns a File or Directory object matching the name specified\n\tby aString or Nil if no such file or directory exists.\n","directories":"Returns a list of subdirectories in the receiver.\n","folders":"Deprecated. Replaced by directories().\n","exists(optionalPath)":"\tReturns true if the Directory path exists, and false otherwise.\n\tIf optionalPath string is provided, it tests the existence of that path instead.\n","accessibleAncestors":"Returns a list of accessible ancestor directories.\n","isAccessible":"Returns true if the directory can be accessed, false otherwise.\n","fileNames":"Returns a list of strings for the names of the files (no subdirectories) in the directory.\n","accessibleParents":"Deprecated. Replaced by accessibleAncestors.\n"}},"Date":{"credits":"fromString method by Sean Perry\n","copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","description A container for a date and time information.":"","category":"Core\n","module":"Core","slots":{"cpuSecondsToRun(expression)":"\tEvaluates message and returns a Number whose value \n\tis the cpu seconds taken to do the evaluation.\n","copy(aDate)":"\tSets the receiver to be the same date as aDate. Returns self.\n","isValidTime(hour, min, sec)":"\tReturns self if the specified time is valid, otherwise returns Nil. \n\tA negative value will count back; i.e., a value of -5 for the hour, \n\twill count back 5 hours to return a value of 19. No adjustment is \n\tdone for values above 24.\n","+=(aDuration)":"\tAdd aDuration to the receiver. Returns self.\n","secondsSince(aDate)":"\tReturns a number of seconds of between aDate and the receiver.\n","asSerialization":"\tReturns a serialization (sequence) of the date that allows for perfect reconstruction of the timestamp.\n","setMonth(aNumber)":"\tSets the month(1-12) of the receiver. Returns self.\n","now":"\tSets the receiver to the current time. Returns self.\n","secondsSinceNow(aDate)":"\tReturns the number of seconds since aDate.\n","day":"\tReturns a number containing the day of the month of the receiver.\n","print":"\tPrints the receiver. Returns self.\n","secondsToRun(expression)":" Evaluates message and returns a Number whose value is the number of seconds taken to do the evaluation\n","isDaylightSavingsTime":"\tReturns self if Daylight Saving Time is in effect for the receiver, otherwise returns Nil.\n","convertToLocal":"\tConverts self date from a UTC date to the equivalent local date\n","format":"\tReturns the format string for the receiver. The default is \"%Y-%m-%d %H:%M:%S %Z\".\n","asString(optionalFormatString)":"\tReturns a string representation of the receiver using the\nreceivers format. If the optionalFormatString argument is present, the\nreceiver's format is set to it first. Formatting is according to ANSI C\ndate formatting rules.\n<p>\n<pre>\t\n%a abbreviated weekday name (Sun, Mon, etc.)\n%A full weekday name (Sunday, Monday, etc.)\n%b abbreviated month name (Jan, Feb, etc.)\n%B full month name (January, February, etc.)\n%c full date and time string\n%d day of the month as two-digit decimal integer (01-31)\n%H hour as two-digit 24-hour clock decimal integer (00-23)\n%I hour as two-digit 12-hour clock decimal integer (01-12)\n%m month as a two-digit decimal integer (01-12)\n%M minute as a two-digit decimal integer (00-59)\n%p either \"AM\" or \"PM\"\n%S second as a two-digit decimal integer (00-59)\n%U number of week in the year as two-digit decimal integer (00-52)\nwith Sunday considered as first day of the week\n%w weekday as one-digit decimal integer (0-6) with Sunday as 0\n%W number of week in the year as two-digit decimal integer (00-52)\nwith Monday considered as first day of the week\n%x full date string (no time); in the C locale, this is equivalent\nto \"%m\/%d\/%y\".\n%y year without century as two-digit decimal number (00-99)\n%Y year with century as four-digit decimal number\n%Z time zone name (e.g. EST);\nnull string if no time zone can be obtained\n%% stands for '%' character in output string.\n<\/pre>\n","setYear(aNumber)":"\tSets the year of the receiver.\n","second":"\tReturns a number containing the seconds of the minute(0-59) of the receiver. This number may contain fractions of seconds.\n","setMinute(aNumber)":"\tSets the minute of the receiver. Returns self.\n","+(aDuration)":"\tReturn a new Date with the receiver's value plus an amount \n\tof time specified by aDuration object to the receiver.\n","asAtomDate":"Returns the date formatted as a valid atom date (rfc4287) in the system's timezone.\n","fromSerialization":"\tSets the date based on the serialization sequence.  Return self.\n","isDST":"\tReturns true if the Date is set to use DST.  Posix only.\n","setGmtOffset":"\tSet the number of minutes west of GMT for this Date's zone\n","asNumber":"\tReturns the date as seconds since 1970 UTC.\n","setHour(aNumber)":"\tSets the hour of the receiver. Returns self.\n","isPast":"\tReturns true if the receiver is a date in the past.\n","setDay(aNumber)":"\tSets the day of the receiver. Returns self.\n","zone":"\tReturns a string containing the system's time zone code.\n","minute":"\tReturns a number containing the minute of the hour(0-59) of the receiver.\n","fromNumber(aNumber)":"\tSets the receiver to be aNumber seconds since 1970.\n","convertToUTC":"\tConverts self from a local date to the equivalent UTC date\n","today":"\tSet the receiver to the current date, no time information\n\tis included. See `now' for the current date and time.\n","convertToZone(offset, isDST)":"\tConverts self to an equivalent data in a zone with offset (minutes west) and DST (true, false).\n","month":"\tReturns a number containing the month(1-12) of the year of the receiver.\n","gmtOffset":"\tReturns the system's timezone string. E.g., +1300 or -0500.\n","gmtOffsetSeconds":"\tReturns the system's seconds east of UTC.\n","year":"\tReturns a number containing the year of the receiver.\n","-(aDurationOrDate)":"\tReturn a new Date with the receiver's value minus an amount of time specified by aDuration to the receiver. Returns self.\n","-=(aDuration)":"\tSubtract aDuration from the receiver. Returns self.\n","setSecond(aNumber)":"\tSets the second of the receiver. Returns self.\n","isToday":"Returns true if the receiver's date is today's date.\n","asUTC":"\tChanges the timezone of this date to utc\n","clock":"\tReturns a number containing the number of seconds\n\tof processor time since the beginning of the program or -1 if unavailable.\n","hour":"\tReturns a number containing the hour of the day(0-23) of the receiver.\n","fromString(aString, formatString)":"\tSets the receiver to the date specified by aString as parsed according to the given formatString. See the Date asString method for formatting rules. Returns self.\n"}},"DynLib":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Core\n","module":"Core","description":"A DLL Loader by Kentaro A. Kurahone.\n","slots":{"voidCall(functionName, <arg1>, <arg2>, ...)":"\tSame as call but for functions with no return value. Returns nil.\n","freeFuncName":"\tReturns the io_free function name.\n","setFreeFuncName(aString)":"\tSets the io_free function name. Returns self.\n","close":"\tCloses the library. Returns self.\n","setInitFuncName(aString)":"\tSets the initialization function name for the dynamic library. Returns self.\n","open":"\tOpens the dynamic library and returns self or raises a DynLoad.open Error if there is an error.\n","setPath(aString)":"\tSets the path to the dynamic library. Returns self.\n","initFuncName":"\tReturns the initialization function name.\n","call(functionName, <arg1>, <arg2>, ...)":"\tCall's the dll function of the specified name with the arguments provided. \n\tReturns the a Number with the result value.\n","callPluginInit(functionName)":"\tCall's the dll function of the specified name. \n\tReturns the result as a Number or raises an exception on error.\n","isOpen":"\tReturns true if the library is open, or false otherwise.\n","path":"\tReturns the path to the dynamic library.\n"}},"Sequence":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Core\n","module":"Core","description":"A Sequence is a container for a list of data elements. Typically these elements are each 1 byte in size. A Sequence can be either mutable or immutable. When immutable, only the read-only methods can be used.\n<p>\nTerminology\n<ul>\n<li> Buffer: A mutable Sequence of single byte elements, typically in a binary encoding\n<li> Symbol or String: A unique immutable Sequence, typically in a character encoding\n<\/ul>\n","slots":{"bitwiseOr(aSequence)":"Updates the receiver to be the result of a bitwiseOr with aSequence. Returns self.\n","containsSeq(aSequence)":"\tReturns true if the receiver contains the substring\n\taSequence, false otherwise.\n","linePrint":"\tPrints the Sequence and a newline character.\n","asClutterUnit":"Calls [[ClutterUnit withString]].\n","escapeRegexChars":"\t\tReturns a clone of the receiver with all special regular expression characters\n\t\t(\"^\", \"$\", etc) backslashed. Useful if you have a string that contains such characters,\n\t\tbut want it to be treated as a literal string.\n","greaterThanOrEqualTo(aSeq)":"\tReturns true if the receiver is greater than or equal to aSeq, false otherwise.\n","removeOddIndexes":"Removes odd indexes in the receiver.\nFor example, list(1,2,3) removeOddIndexes == list(2). Returns self.\n","pathComponent":"\tReturns a slice of the receiver before the last path separator as a symbol.\n","..(aSequence)":"\tReturns a copy of the receiver with aSequence appended to it.\n","*(aSeq)":"\tMultiplies the values of aSeq to the corresponding values of the receiver \n\treturning a new vector with the result.\n\tOnly works on Sequences whose item type is numeric.\n","urlDecoded":"Returns url decoded version of receiver.\n","bitCount":"Returns the number of bits in the sequence.\n","ceil":"Round each value to smallest integral value not less than x.\nReturns self.\n","uppercase":"\tMakes all characters of the receiver uppercase.\n","log10":"Sets each value of the Sequence to the base 10 log of its value.\nReturns self.\n","alignLeft(width, [padding])":"\tExample:\n\t<p>\n\t<code>\n\tIo> \"abc\" alignLeft(10, \"+\")\n\t==> abc+++++++\n\tIo> \"abc\" alignLeft(10, \"-=\")\n\t==> abc-=-=-=-\n\t<\/code>\n","pack(format, value1, ...)":"\n\tReturns a new Sequence with the values packed in.\n\n\tCodes:\n\t\n\t*: (one at the beginning of the format string) declare format string as BigEndian\n\tB: unsigned byte\n\tb: byte\n\tC: unsigned char\n\tc: char\n\tH: unsigned short\n\th: short\n\tI: unsigned int\n\ti: int\n\tL: unsigned long\n\tl: long\n\tf: float\n\tF: double\n\ts: string\n\n\tA '*' at the begging of the format string indicates native types are to be treated as Big Endiand.\n\t\n\tA number preceding a code declares an array of that type.\n\t\n\tIn the case of 's', the preceding number indicates the size of the string to be packed.\n\tIf the string passed is shorter than size, 0 padding will be used to fill to size. If the\n\tstring passed is longer than size, only size chars will be packed.\n\t\n\tThe difference between b\/B and c\/C is in the values passed to pack. For b\/B pack expects a number.\n\tFor c\/C pack expects a one-char-string (this is the same as '1s' or 's')\n\t\n\tExamples:\n\t\n\ts := Sequence pack(\"IC5s\", 100, \"a\", \"hello\")\n\ts := Sequence pack(\"5c\", \"h\", \"e\", \"l\", \"l\", \"o\")\n\ts := Sequence pack(\"I\", 0x01020304)\n\ts := Sequence pack(\"*I\", 0x01020304)\n","preallocateToSize(aNumber)":"\tIf needed, resize the memory alloced for the receivers\n\tbyte array to be large enough to fit the number of bytes specified by\n\taNumber. This is useful for pio_reallocating the memory so it doesn't\n\tkeep getting allocated as the Sequence is appended to. This operation\n\twill not change the Sequence's length or contents. Returns self.\n","escape":"\tEscape characters in the receiver are replaced with escape codes.\n\tFor example a string containing a single return character would contain the\n\tfollowing 2 characters after being escaped: \"\\n\". Returns self.\n","print":"Prints contents of a sequence.\n","splitNoEmpties(optionalArg1, optionalArg2, ...)":"\t\tReturns a list containing the non-empty sub-sequences of the receiver divided by the given arguments.\n\t\tIf no arguments are given the sequence is split on white space.\n\t\tExamples:\n\t\t<code>\n\t\t\"a   b  c d\" splitNoEmpties => list(\"a\", \"b\", \"c\", \"d\")\n\t\t\"a***b**c*d\" splitNoEmpties(\"*\") => list(\"a\", \"b\", \"c\", \"d\")\n\t\t\"a***b||c,d\" splitNoEmpties(\"*\", \"|\", \",\") => list(\"a\", \"b\", \"c\", \"d\")\n\t\t<\/code>\n","sizeInBytes":"\tReturns the length in bytes of the receiver.\n","asXML":"SGML extension to interpret the Sequence as XML and return an SGML object using SGMLParser elementForString\n","+=(aSeq)":"\tVector addition - adds the values of aSeq to those of the receiver.\n\tOnly works on Sequences whose item type is numeric. Returns self.\n","removeEvenIndexes":"Removes even indexes in the receiver.\nFor example, list(1,2,3) removeEvenIndexes == list(1, 3). Returns self.\n","asSGML":"SGML extension to interpret the Sequence as SGML and return an SGML object using SGMLParser elementForString\n","replaceSeq(aSequence, anotherSequence)":"\tReturns a new Sequence with all occurrences of aSequence\n\treplaced with anotherSequence in the receiver. Returns self.\n","asIoPath":"Returns a Io style path for an OS style path.\n","tanh":"Sets each value of the Sequence to the hyperbolic tangent of its value.\nReturns self.\n","containsAnyCaseSeq(aSequence)":"\tReturns true if the receiver contains the aSequence\n\tregardless of casing, false otherwise.\n","asBinarySignedInteger":"\tReturns a Number with the bytes of the receiver interpreted as a binary signed integer. Endian is same as machine.\n","meanSquare":"Returns the arithmetic mean of the sequence's values after they have been squared.\n","prependSeq(object1, object2, ...)":" Prepends given objects asString in reverse order to the receiver.  Returns self.\")\n","slicesBetween(startSeq, endSeq)":"  Returns a list of slices delimited \n  by <tt>startSeq<\/tt> and <tt>endSeq<\/tt>.\n  <br>\n  <pre>\n  Io> \"<a><b><\/b><\/a>\" slicesBetween(\"<\", \">\")\n  ==> list(\"a\", \"b\", \"\/b\", \"\/a\")\n  <\/pre>\n","alignRight(width, [padding])":"\tExample:\n\t<p>\n\t<code>\n\tIo> \"abc\" alignRight(10, \"-\")\n\t==> -------abc\n\tIo> \"abc\" alignRight(10, \"-=\")\n\t==> -=-=-=-abc\n\t<\/code>\n","dotProduct(aSeq)":"\tReturns a new Sequence containing the dot product of the receiver with aSeq.\n","rstrip(aSequence)":"Strips the characters in\naSequence stripped from the end of the receiver. Example:\n<pre>\t\n\"Cut the tail off\" rstrip(\" afilot\")\n==> \"Cut the\"\n<\/pre>\n","asNumber":"\tReturns the receiver converted to a number.\n\tInitial whitespace is ignored.\n","fromBase(aNumber)":"\tReturns a number with a base 10 representation of the receiver\n\tconverted from the specified base. Only base 2 through 32 are currently supported.\n","duplicateIndexes":"Duplicates all indexes in the receiver.\nFor example, list(1,2,3) duplicateIndexes == list(1,1,2,2,3,3). Returns self.\n","**=(aSeq)":"\tRaises the values of the receiver in the corresponding values of aSeq.\n\tOnly works on Sequences whose item type is numeric. Returns self.\n","asLowercase":"\tReturns a symbol containing the reveiver made lowercase.\n","afterSeq(aSequence)":"\tReturns the slice of the receiver (as a Symbol) after aSequence or\n\tnil if aSequence is not found. If aSequence is empty, the receiver\n\t(or a copy of the receiver if it is mutable) is returned.\n","clear":"Set all values in the sequence to 0. Returns self.\n","clipAfterStartOfSeq(aSequence)":"\tRemoves the contents of the receiver after the beginning of\n\tthe first occurrence of aSequence. Returns true if anything was\n\tremoved, or false otherwise.\n","normalize":"Divides each value of the Sequence by the max value of the sequence.\nReturns self.\n","appendPathSeq(aSeq)":"\tAppends argument to the receiver such that there is one\n\tand only one path separator between the two. Returns self.\n","asClutterColor":"Calls [[ClutterColor with]] with self as an argument.\n","floor":"Round each value to largest integral value not greater than x.\nReturns self.\n","product":"Returns the product of all the sequence's values multipled together.\n","occurrencesOfSeq(aSeq)":"\tReturns count of aSeq in the receiver.\n","asHex":"Returns a hex string for the receiving sequence, e.g., \\\"abc\\\" asHex -> \\\"616263\\\".\")\n","distanceTo(aSeq)":"\tReturns a number with the square root of the sum of the square \n\tof the differences of the items between the sequences.\n","interpolateInPlace(optionalContext)":"\tReplaces all #{expression} with expression evaluated in the optionalContext. \n\tIf optionalContext not given, the current context is used.  Returns self.\n","clipBeforeEndOfSeq(aSequence)":"\tRemoves the contents of the receiver before the end of\n\tthe first occurrence of aSequence. Returns true if anything was\n\tremoved, or false otherwise.\n","asFile":"Returns a new File object with the receiver as its path.\n","withStruct(memberList)":"This method is useful for producing a Sequence containing a raw datastructure with\nthe specified types and values. The memberList format is:\n<p>\nlist(memberType1, memberName1, memberType2, memberName2, ...)\n<p>\nMember types include: \n<pre>\nint8, int16, int32, int64\nuint8, uint16, uint32, uint64\nfloat32, float64 \n<\/pre>\nExample:\n<pre>\npointStructSeq := Sequence withStruct(list(\"float32\", 1.2, \"float32\", 3.5))\n<\/pre>\nThe output pointStructSeq would contain 2 raw 32 bit floats.\n","-(aSeq)":"\tVector subtraction - Subtracts the values of aSeq from the corresponding values of the receiver \n\treturning a new vector with the result.\n\tOnly works on Sequences whose item type is numeric.\n","asMutable":"\tReturns a mutable copy of the receiver.\n","beforeSeq(aSequence)":"\tReturns the slice of the receiver (as a Symbol) before\n\taSequence or self if aSequence is not found.\n","translate(fromChars, toChars)":"\tIn the receiver, the characters in fromChars are replaced with those in the same positions in toChars. Returns self.\n","encoding":"\tReturns the encoding of the elements.\n","asBinaryNumber":"\tReturns a Number containing the first 8 bytes of the\n\treceiver without casting them to a double. Endian is same as machine.\n","toBase(aNumber)":"\tReturns a Sequence containing the receiver (which is\n\tassumed to be a base 10 number) converted to the specified base.\n\tOnly base 8 and 16 are currently supported.\n","asUrl":"Shortcut for HCUrl with(aUrlSeq)\n","tan":"Sets each value of the Sequence to the trigonometric tangent of its value.\nReturns self.\n","isMutable":"\tReturns true if the receiver is a mutable Sequence or false otherwise.\n","isUppercase":"\tReturns self if all the characters in the string are upper case.\n","asStruct(memberList)":"For a sequence that contains the data for a raw memory data structure (as used in C),\nthis method can be used to extract its members into an Object. The memberList argument\nspecifies the layout of the datastructure. Its form is:\n<p>\nlist(memberType1, memberName1, memberType2, memberName2, ...)\n<p>\nMember types include: \n<pre>\nint8, int16, int32, int64\nuint8, uint16, uint32, uint64\nfloat32, float64 \n<\/pre>\nExample:\n<pre>\npointObject := structPointSeq asStruct(list(\"float32\", \"x\", \"float32\", \"y\"))\n<\/pre>\nThe output pointObject would contain x and y slots with Number objects.\n","makeFirstCharacterLowercase":"  Receiver must be mutable (see also asMutable). Returns receiver.\n  <br\/>\n  <pre>\n  Io> \"ABC\" asMutable makeFirstCharacterLowercase\n  ==> aBC\n  <\/pre>\n","repeated(n)":" Returns a new sequence containing the receiver repeated n number of times.\n","asOSPath":"Returns a OS style path for an Io style path.\n","exclusiveSlice(inclusiveStartIndex, exclusiveEndIndex)":"\tReturns a new string containing the subset of the\n\treceiver from the inclusiveStartIndex to the exclusiveEndIndex. The exclusiveEndIndex argument\n\tis optional. If not given, it is assumed to be one beyond the end of the string.\n","**(aSeq)":"\tRaises the values of the receiver in the corresponding values of aSeq \n\treturning a new vector with the result.\n\tOnly works on Sequences whose item type is numeric.\n","itemSize":"\tReturns number of bytes in each element.\n","endsWithSeq(aSequence)":"\tReturns true if the receiver ends with aSequence, false otherwise.\n","findRegex(aRegexOrString, [startIndex])":"\t\tReturns the first match of the given regex in the receiver, after the given start index.\n\t\tIf you don't specify a start index, the search will start at the beginning of the receiver.\n\t\tThe method returns nil if no match is found.\n","splitAt(indexNumber)":"\tReturns a list containing the two parts of the receiver as split at the given index.\n","convertToItemType(aTypeName)":"\tConverts the underlying machine type for the elements, expanding or contracting\n\tthe size of the Sequence as needed. \n\tValid names are uint8, uint16, uint32, uint64, int8, int16, int32, \n\tint64, float32, and float64. Note that 64 bit types are only available \n\ton platforms that support such types. Returns self.\n","asJid":"Converts Sequence to JID object. <pre><code>\"cow@moo.com\/Scandinavia\" asJid<\/code><\/pre>\n","alignLeftInPlace(width, [padding])":" Same as align left but operation is performed on the receiver.\n","matchesRegex(aRegexOrString)":"\t\tReturns true if the receiver matches the given regex, false if not.\n","bitwiseAnd(aSequence)":"Updates the receiver to be the result of a bitwiseAnd with aSequence. Returns self.\n","fromBase64":"\tReturns an immutable, base64 decoded (according to RFC 1421) version of self.\n","slice":"Deprecated method. Use exSlice instead.\n","asin":"Sets each value of the Sequence to the trigonometric arcsine of its value.\nReturns self.\n","betweenSeq(aSequence, anotherSequence)":"\tReturns a new Sequence containing the bytes between the\n\toccurrence of aSequence and anotherSequence in the receiver. \n\tIf aSequence is empty, this method is equivalent to beforeSeq(anotherSequence).\n\tIf anotherSequence is nil, this method is equivalent to afterSeq(aSequence).\n\tnil is returned if no match is found.\n","isLowercase":"\tReturns self if all the characters in the string are lower case.\n","size":"Returns the length in number of items (which may or may not\nbe the number of bytes, depending on the item type) of the receiver. For example:\n<p>\n<pre>\t\n\"abc\" size == 3\n<\/pre>\n","copy(aSequence)":"\tReplaces the bytes of the receiver with a copy of those in aSequence. Returns self.\n","replaceFirstSeq(aSequence, anotherSequence, optionalStartIndex)":"\tReturns a new Sequence with the first occurrence of aSequence\n\treplaced with anotherSequence in the receiver. If optionalStartIndex is\n\tprovided, the search for aSequence begins at that index. Returns self.\n","rangeFill":"Sets the values of the Sequence to their index values.\nReturns self.\n","mean":"Returns the arithmetic mean of the sequence.\n","removeSlice(startIndex, endIndex)":"\tRemoves the items from startIndex to endIndex.\n\tReturns self.\n","makeFirstCharacterUppercase":"  Receiver must be mutable (see also asMutable). Returns receiver.\n  <br\/>\n  <pre>\n  Io> \"abc\" asMutable makeFirstCharacterUppercase\n  ==> Abc\n  <\/pre>\n","cosh":"Sets each value of the Sequence to the hyperbolic cosine of its value.\nReturns self.\n","hash":"Returns a Number containing a hash of the Sequence.\n","removePrefix(aSequence)":"\tIf the receiver begins with aSequence, it is removed. Returns self.\n","foreach(optionalIndex, value, message)":"For each element, set index to the index of the\nelement and value to the element value and execute message. \nExample:\n<pre>\t\naSequence foreach(i, v, writeln(\"value at index \", i, \" is \", v))\naSequence foreach(v, writeln(\"value \", v))\n<\/pre>\n","atInsertSeq(indexNumber, object)":"\tCalls asString on object and inserts the string at position indexNumber. Returns self.\n","asList":"\tReturns the receiver converted to a List containing all elements of the Sequence.\n","asFixedSizeType":"\tReturns a new sequence with the receiver encoded in the \n\tminimal fixed width text encoding that its characters can fit \n\tinto (either, ascii, utf8, utf16 or utf32).\n","removeAt(index)":"\tRemoves the item at index. Returns self.\n","square":"Sets each value of the Sequence to the square of its value.\nReturns self.\n","unescape":"\tEscape codes replaced with escape characters. Returns self.\n","matchesOfRegex(aRegexOrString)":"\t\tReturns a RegexMatches object that enumerates all matches of the given regex in the receiver.\n","replaceMap(aMap)":"\tIn the receiver, the keys of aMap replaced with its values. Returns self.\n","empty":"\tSets all bytes in the receiver to 0x0 and sets\n\tits length to 0. Returns self.\n","removeLast":"\tRemoves the last element from the receiver. Returns self.\n","justSerialized(stream)":" Writes the receiver's code into the stream.\n","Min":"Returns the minimum value in the sequence.\n","\/=(aSeq)":"\tDivides the values of aSeq to the corresponding values of the receiver.\n\tOnly works on Sequences whose item type is numeric. Returns self.\n","removeSeq(aSequence)":"\tRemoves occurrences of aSequence from the receiver.\n","asJson":"Converts to form that could be interpreted as json if it already contains json, e.g. {\"aaa\":\"bbb\"} --> \"{\\\"aaa\\\":\\\"bbb\\\"}\"\n","bitwiseNot(aSequence)":"Updates the receiver to be the result of a bitwiseNot with aSequence. Returns self.\n","asUCS4":"\tReturns a new copy of the receiver converted to UCS4 (fixed character width UTF32) encoding.\n","abs":"Sets each value of the Sequence to its absolute value.\nReturns self.\n","greaterThan(aSeq)":"\tReturns true if the receiver is greater than aSeq, false otherwise.\n","isZero":"\tReturns true if all elements are 0, false otherwise.\n","percentEncoded":"Returns percent encoded version of receiver.\n","lowercase":"\tMakes all the uppercase characters in the receiver lowercase. Returns self.\n","sin":"Sets each value of the Sequence to the trigonometric sine of its value.\nReturns self.\n","asUppercase":"\tReturns a symbol containing the reveiver made uppercase.\n","sort":"Sorts the characters\/numbers in the array. Returns self.\n","itemCopy":"Returns a new sequence containing the items from the receiver.\n","set(aNumber1, aNumber2, ...)":"\tSets the values of the receiver to the sequences of numbers in the arguments.\n\tUnset values will remain unchanged.\n\tReturns self.\n","beginsWithSeq(aSequence)":"\tReturns true if the receiver begins with aSequence, false otherwise.\n","asRegex":"\t\tReturns a new Regex created from the receiver.\n","logicalOr(aSequence)":"Updates the receiver's values to be the result of a logical OR operations with the values of aSequence. Returns self.\n","isSymbol":"\tReturns true if the receiver is a\n\timmutable Sequence (aka, a Symbol) or false otherwise.\n","unpack(optionalStartPosition, format)":"\t\n\tUnpacks self into a list using the format passed in. See Sequence pack.\n\t\n\tReturns a List.\n\n\tExamples:\n\n\ts := Sequence pack(\"IC5s\", 100, \"a\", \"hello\")\n\tl := s unpack(\"IC5s\")\n\n\ts := Sequence pack(\"5c\", \"h\", \"e\", \"l\", \"l\", \"o\")\n\tl := s unpack(\"5c\")\n\n\ts := Sequence pack(\"I\", 0x01020304)\n\tl := s unpack(\"I\")\n\n\ts := Sequence pack(\"*I\", 0x01020304)\n\tl := s unpack(\"*I\")\n\n\tl := \"hello\" unpack(\"5c\")\n","byteAt(byteIndex)":"Returns a Number containing the byte at the byte index value.\n","bitAt(bitIndex)":"Returns a Number containing the bit at the bit index value.\n","clipBeforeSeq(aSequence)":"\tClips receiver before aSequence.\n","findSeq(aSequence, optionalStartIndex)":"\tReturns a number with the first occurrence of aSequence in\n\tthe receiver after the startIndex. If no startIndex is specified,\n\tthe search starts at index 0.\n\tnil is returned if no occurrences are found.\n","setSize(aNumber)":"\tSets the length in bytes of the receiver to aNumber. Return self.\n","cos":"Sets each value of the Sequence to the trigonometric cosine of its value.\nReturns self.\n","alignCenter(width, [padding]) \"\"":"\tExample:\n\t<code>\n\tIo> \"abc\" alignCenter(10, \"-\")\n\t==> ---abc----\n\tIo> \"abc\" alignCenter(10, \"-=\")\n\t==> -=-abc-=-=\n\t<\/code>\n","lessThan(aSeq)":"\tReturns true if the receiver is less than aSeq, false otherwise.\n","lastPathComponent":"\tReturns a string containing the receiver clipped up\n\tto the last path separator.\n","findSeqs(listOfSequences, optionalStartIndex)":"\tReturns an object with two slots - an \\\"index\\\" slot which contains \n\tthe first occurrence of any of the sequences in listOfSequences found \n\tin the receiver after the startIndex, and a \\\"match\\\" slot, which \n\tcontains a reference to the matching sequence from listOfSequences. \n\tIf no startIndex is specified, the search starts at index 0. \n\tnil is returned if no occurrences are found.\n","+(aSeq)":"\tVector addition - adds the values of aSeq to the corresponding values of the receiver\n\treturning a new vector with the result.\n\tOnly works on Sequences whose item type is numeric.\n","sum":"Returns the sum of the Sequence.\n","with(aSequence, ...)":"\tReturns a new Sequence which is the concatenation of the arguments.\n\tThe returned sequence will have the same mutability status as the receiver.\n","asSymbol":"\tReturns a immutable Sequence (aka Symbol) version of the receiver.\n","negate":"Negates the values of the receiver.\nReturns self.\n","capitalize":"\tFirst charater of the receiver is made uppercase.\n","splitAtRegex(aRegexOrString)":"\t\tSplits the receiver into pieces using the given regex as the delimiter and\n\t\treturns the pieces as a list of strings.\n","cloneAppendPath(aSequence)":"\tAppends argument to a copy the receiver such that there is one\n\tand only one path separator between the two and returns the result.\n","percentDecoded":"Returns percent decoded version of receiver.\n","isEmpty":"\tReturns true if the size of the receiver is 0, false otherwise.\n","split(optionalArg1, optionalArg2, ...)":"Returns a list containing the sub-sequences of the receiver divided by the given arguments.\nIf no arguments are given the sequence is split on white space.\nExamples:\n<pre>\t\n\"a b c d\" split == list(\"a\", \"b\", \"c\", \"d\")\n\"a*b*c*d\" split(\"*\") == list(\"a\", \"b\", \"c\", \"d\")\n\"a*b|c,d\" split(\"*\", \"|\", \",\") == list(\"a\", \"b\", \"c\", \"d\")\n\"a   b  c d\" split == list(\"a\", \"\", \"\", \"\", \"b\", \"\", \"\", \"c\", \"\", \"d\")\n<\/pre>\n","strip(optionalSequence)":"Trims the whitespace (or optionalSequence) off both ends:\n<p>\n<pre>\t\n\"   Trim this string   \\r\\n\" strip\n==> \"Trim this string\"\n<\/pre>\n","appendSeq(object1, object2, ...)":"\tCalls asString on the arguments and appends the string to the receiver. Returns self.\n","findNthSeq(aSequence, n)":" Returns a number with the nth occurrence of aSequence.\n","asBinaryUnsignedInteger":"\tReturns a Number with the bytes of the receiver interpreted as a binary unsigned integer. Endian is same as machine.\n","setItemsToLong(aNumber)":"\tSets all items in the Sequence to the long integer value of aNumber.\n","asUTF8":"\tReturns a new copy of the receiver converted to utf8 encoding.\n","itemType":"\tReturns machine type of elements.\n","bitwiseXor(aSequence)":"Updates the receiver to be the result of a bitwiseXor with aSequence. Returns self.\n","atan":"Sets each value of the Sequence to the trigonometric arctangent of its value.\nReturns self.\n","setItemType(aTypeName)":"\tSets the underlying machine type for the elements. \n\tValid names are uint8, uint16, uint32, uint64, int8, int16, int32, \n\tint64, float32, and float64. Note that 64 bit types are only available \n\ton platforms that support such types. Returns self.\n","contains(aNumber)":"\tReturns true if the receiver contains an element equal in value to aNumber, false otherwise.\n","setItemsToDouble(aNumber)":"\tSets all items in the Sequence to the double floating point value of aNumber.\n","inclusiveSlice(inclusiveStartIndex, inclusiveEndIndex)":"\tReturns a new string containing the subset of the\n\treceiver from the inclusiveStartIndex to the inclusiveEndIndex. The inclusiveEndIndex argument\n\tis optional. If not given, it is assumed to be the end of the string.\n","lstrip(aSequence)":"Strips the characters in aSequence\nstripped from the beginning of the receiver. Example:\n<p>\n<pre>\t\n\"Keep the tail\" lstrip(\" eKp\")\n==> \"the tail\"\n<\/pre>\n","max":"Returns the maximum value of the Sequence.\n","log":"Sets each value of the Sequence to the natural log of its value.\nReturns self.\n","asHTML":"SGML extension to interpret the Sequence as HTML and return an SGML object using SGMLParser elementForString\n","min":"Returns the minimum value of the Sequence.\n","asURL":"Returns a new URL object instance with the receiver as its url string.\n","clipAfterSeq(aSequence)":"\tRemoves the contents of the receiver after the end of\n\tthe first occurrence of aSequence. Returns true if anything was\n\tremoved, or false otherwise.\n","acos":"Sets each value of the Sequence to the trigonometric arcsine of its value.\nReturns self.\n","lessThanOrEqualTo(aSeq)":"\tReturns true if the receiver is less than or equal to aSeq, false otherwise.\n","logicalAnd(aSequence)":"Updates the receiver's values to be the result of a logical OR operations with the values of aSequence. Returns self.\n","reverseInPlace":"\tReverses the bytes in the receiver, in-place.\n","append(aNumber)":"\tAppends aNumber (cast to a byte) to the receiver. Returns self.\n","whiteSpaceStrings":"\tReturns a List of strings. Each string contains a different\n\twhitespace character.\n","setEncoding(encodingName)":"\tSets the encoding flag of the receiver (only the encoding flag, \n\titemSize and itemType will change, no conversion is done between UTF\n\tencodings - you can use convertToUTF8, etc methods for conversions). \n\tValid encodings are number, utf8, utf16, and utf32. Returns self.\n","asBase64(optionalCharactersPerLine)":"\tReturns an immutable, base64 encoded (according to RFC 1421) version of self. \n\toptionalCharactersPerLine describes the number of characters between line breaks and defaults to 0.\n","urlEncoded":"Returns url encoded version of receiver.\n","removeSuffix(aSequence)":"\tIf the receiver end with aSequence, it is removed. Returns self.\n","interpolate(ctx)":"\tReturns immutable copy of self with interpolateInPlace(ctx) passed to the copy.\n","allMatchesOfRegex(aRegexOrString)":"\t\tReturns a List containing all matches of the given regex found in the receiver.\n","*=(aSeq)":"\tMultiplies the values of aSeq to the corresponding values of the receiver.\n\tOnly works on Sequences whose item type is numeric. Returns self.\n","asMessage(optionalLabel)":"\tReturns the compiled message object for the string.\n","exp":"Sets each value of the Sequence to e**value.\nReturns self.\n","reverse":"Reverses the ordering of all the items of the receiver. Returns copy of receiver.\n","hasMatchOfRegex(aRegexOrString)":"\t\tReturns true if the string contains one or more matches of the given regex.\n","atPut(aNumberIndex, aNumber)":"\tSets the value at the index specified by aNumberIndex to aNumber. Returns self.\n","at(aNumber)":"\tReturns a value at the index specified by aNumber.\n\tReturns nil if the index is out of bounds.\n","split Returns a list containing the sub-sequences of the receiver divided by the given arguments.":"\t\tIf no arguments are given the sequence is split on white space.\n","reverseFindSeq(aSequence, startIndex)":"\tReturns a number with the first occurrence of aSequence in\n\tthe receiver before the startIndex. The startIndex argument is optional.\n\tBy default reverseFind starts at the end of the string. Nil is\n\treturned if no occurrences are found.\n","sqrt":"Sets each value of the Sequence to the square root of its value.\nReturns self.\n","sinh":"Sets each value of the Sequence to the hyperbolic sine of its value.\nReturns self.\n","pathExtension":"\tReturns a string containing the receiver clipped up to the last period.\n","-=(aSeq)":"\tVector subtraction - subtracts the values of aSeq to those of the receiver.\n\tOnly works on Sequences whose item type is numeric. Returns self.\n","fileName":"\tReturns the last path component sans the path extension.\n","\/(aSeq)":"\tDivides the values of the receiver by the corresponding values of aSeq \n\treturning a new vector with the result.\n\tOnly works on Sequences whose item type is numeric.\n","asCapitalized":"\tReturns a copy of the receiver with the first charater made uppercase.\n","asUCS2":"\tReturns a new copy of the receiver converted to UCS2 (fixed character width UTF16) encoding.\n","isEqualAnyCase(aSequence)":"\tReturns true if aSequence is equal to the receiver\n\tignoring case differences, false otherwise.\n","Max":"Returns the maximum value in the sequence.\n"}},"Compiler":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Core\n","module":"Core","description":"Contains methods related to the compiling code.\n","slots":{"messageForString(aString, optionalLabelString)":"\tReturns the compiled message object for aString.\n","messageForString2(aString)":"\tReturns the compiled message object for aString. (Runs raw string against lexer directly.)\n","messageForTokens(aList)":"\tReturns the compiled message object for the given token list.\n","tokensForString(aString)":"\tReturns a list of token objects lexed from the input string.\n"}},"WeakLink":{"copyright":"Steve Dekorte, 2002\n","license":"BSD revised\n","category":"Core\n","module":"Core","description":"\tA WeakLink is a primitive that can hold a reference to \n\tan object without preventing the garbage collector from \n\tcollecting it. The link reference is set with the setLink() method. \n\tAfter the garbage collector collects an object, it informs any \n\t(uncollected) WeakLink objects whose link value pointed to that \n\tobject by calling their \"collectedLink\" method.\n","slots":{"link":"\tReturns the link pointer or Nil if none is set.\n","setLink(aValue)":"\tSets the link pointer. Returns self.\n"}},"Call":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Core\n","module":"Core","description":"Call stores slots related to activation.\n","slots":{"message":"\tReturns the message value.\n","relayStopStatus(arg)":"  Sets sender's stop status (Normal, Return, \n  Break, Continue etc.) and returns evaluated argument.\n","resetStopStatus(arg)":"  Sets stop status to Normal.\n  See also <tt>Call setStopStatus<\/tt>.\n","evalArgs":"\tReturns a list containing the call message arguments evaluated in the context of the sender.\n","slotContext":"\tReturns the slotContext value.\n","delegateToMethod(target, methodName)":"\t\tSends the call's message to target via the method specified by methodName.\n\t\tReturns the result of the message.\n","setStopStatus(aStatusObject)":"\tSets the stop status on the call.\n","description":"Returns a description of the receiver as a String.\n","target":"\tReturns the target value.\n","hasArgs":"Returns true if the call was passed arguments.\n","delegateTo(target, altSender)":"\t\tSends the call's message to target (and relays it's stop status).\n\t\tThe sender is set to altSender, if it is supplied.\n\t\tReturns the result of the message.\n","activated":"\tReturns the activated value.\n","argCount":"Returns the number of arguments for the call. Shortcut for \"call message argCount\".\n","argAt(argNumber)":"\tReturns the message's argNumber arg. Shorthand for same as call message argAt(argNumber).\n","coroutine":"\tReturns the coroutine in which the message was sent.\n","evalArgAt(argNumber)":"\tEvaluates the specified argument of the Call's message in the context of its sender.\n","sender":"\tReturns the sender value.\n","stopStatus":"\tReturns the stop status on the call. (description of stopStatus will \n\tbe added once we decide whether or not to keep it)\n"}},"List":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Core\n","module":"Core","description":"A mutable array of values. The first index is 0.\n","slots":{"second":"Returns third element (same as <tt>at(2)<\/tt>)\n","push(anObject1, anObject2, ...)":"\tSame as add(anObject1, anObject2, ...).\n","removeFirst":"Returns the first item and removes it from the list. nil is returned if the list is empty.\n","indexOf(anObject)":"\tReturns the index of the first occurrence of anObject\n\tin the receiver. Returns Nil if the receiver doesn't contain anObject.\n","append(anObject1, anObject2, ...)":"\tAppends the arguments to the end of the list. Returns self.\n","sortInPlaceBy(aBlock)":"\tSort the list using aBlock as the compare function. Returns self.\n","containsAll(list)":" Returns true the target contains all of the items in the argument list.\n","removeAt(index)":"\tRemoves the item at the specified index and returns the value removed.\n\tRaises an exception if the index is out of bounds.\n","insertAt(item, index)":"    Inserts item at the specified index. Raises an exception if the index is\n    out of bounds. Returns self.\n","union(list)":" Returns a new list containing items from the target and items which are only in the argument list.\n","itemCopy":"Returns a new list containing the items from the receiver.\n","insertBefore(item, beforeItem)":"    Inserts item before first occurrence of beforeItem or to the end of the list if\n    beforeItem is not found. Returns self.\n","removeLast":"Returns the last item and removes it from the list. nil is returned if the list is empty.\n","justSerialized(stream)":" Writes the receiver's code into the stream.\n","asMessage":"    Converts each element in the list to unnamed messages with their cached result\n    set to the value of the element (without activating).Returns an unnamed message\n    whose arguments map 1:1 with the elements (after being converted to messages themselves).\n","containsIdenticalTo(anObject)":"\tReturns true if the receiver contains a value identical to anObject, otherwise returns false.\n","insertAfter(item, afterItem)":"    Inserts item after first occurrence of afterItem and returns self. If afterItem\n    is not found, item is appended to the end of the list.\n","rest":"Returns a copy of the list but with the first element removed.\n","reverseReduce":"    Also known as foldr or inject. Combines values in target starting on the right.\n    If no initial value is paseed the head of the list is used. See List reverse for examples.\n","groupBy":"    Group items in a List by common expression value and return them aggregated in a Map.\n    <em>Note<\/em>: asJson is used because Map doesn't have asString method implemented.\n<pre>\nIo> list(\"a\", \"b\", \"cd\") groupBy(size) asJson\n==> {\"2\":[\"cd\"],\"1\":[\"a\",\"b\"]}\nIo> list(\"a\", \"b\", \"cd\") groupBy(v, v containsSeq(\"c\")) asJson\n==> {\"false\":[\"a\",\"b\"],\"true\":[\"cd\"]}\nIo> list(\"a\", \"b\", \"cd\") groupBy(i, v, i == 1) asJson\n==> {\"false\":[\"a\",\"cd\"],\"true\":[\"b\"]}\n<\/pre>\n","asClutterVertex":"Converts [[List]] to [[ClutterVertex]].\n","asJson":"Returns JSON encoded representation of a List.\n","difference(list)":" Returns a new list containing items from the target list which aren't in the argument list.\n","shuffle":"Randomizes the ordering of all the items of the receiver. Returns copy of receiver.\n","copy(v)":" Replaces self with <tt>v<\/tt> list items. Returns self.\n","contains(anObject)":"\tReturns true if the receiver contains anObject, otherwise returns false.\n","reduce":"    Also known as foldl or inject. Combines values in target starting on the left.\n    If no initial value is passed the head of the list is used. <br \/>\n<pre>\nIo> list(1, 2, 3) reduce(+)\n==> 6\nIo> list(1, 2, 3) reduce(xs, x, xs + x)\n==> 6\nIo> list(1, 2, 3) reduce(+, -6) # Passing the initial value.\n==> 0\nIo> list(1, 2, 3) reduce(xs, x, xs + x, -6)\n==> 0\n<\/pre>\n","reverseInPlace":"\tReverses the ordering of all the items in the receiver. Returns self.\n","first(optionalSize)":"\tReturns the first item or Nil if the list is empty.\n\tIf optionalSize is provided, that number of the first items in the list are returned.\n","join(optionalSeparator)":"    Returns a Sequence of the concatenated items with\n    optionalSeparator between each item or simply the concatenation of the items if no optionalSeparator is supplied.\n","atPut(index, anObject)":"\tReplaces the existing value at index with anObject.\n\tRaises an exception if the index is out of bounds. Returns self.\n","intersect(list)":" Returns a new list containing the common values from the target and argument lists.\n","pop":"\tReturns the last item in the list and removes it\n\tfrom the receiver. Returns nil if the receiver is empty.\n","remove(anObject, ...)":"\tRemoves all occurrences of the arguments from the receiver. Returns self.\n","containsAny(list)":" Returns true the target contains any of the items in the argument list.\n","sort":"Returns a new list containing the sorted items from the receiver.\n","mapInPlace(optionalIndex, value, message)":"    Replaces each item in the receiver with the result of applying a given message\n    to that item. Example:\n<pre>list(1, 5, 7, 2) mapInPlace(i, v, i + v)\n==> list(1, 6, 9, 5)\nlist(1, 5, 7, 2) mapInPlace(v, v + 3)\n ==> list(4, 8, 10, 5)<\/pre>\n","cursor":"Returns a ListCursor for the receiver.\n","asMap":"    The reverse of Map asList: converts a list of lists (key-value pairs) into\n    a Map. The first item of each pair list must be a sequence. The second item\n    is the value.\n","at(index)":"\tReturns the value at index. Returns Nil if the index is out of bounds.\n","reverseForeach(index, value, message)":"\tSame as foreach, but in reverse order.\n","anyOne":"Returns a random element of the receiver or nil if the receiver is empty.\n","sum":"Returns the sum of the items.\n","sortInPlace(optionalExpression)":"\tSorts the list using the compare method on the items. Returns self.\n\tIf an optionalExpression is provided, the sort is done on the result of the evaluation\n\tof the optionalExpression on each value.\n","empty":"\tRemoves all items from the receiver.\n","removeSeq":"Removes each of the items from the current list which are contained in the sequence passed in.\n","prepend(anObject1, anObject2, ...)":"\tInserts the values at the beginning of the list. Returns self.\n","slice(startIndex, endIndex, step)":"\tReturns a new string containing the subset of the receiver \n    from the startIndex to the endIndex. The endIndex argument\n\tis optional. If not given, it is assumed to be the end of the string. \n    Step argument is also optional and defaults to 1, if not given.\n    However, since Io supports positional arguments only, you need to\n    explicitly specify endIndex, if you need a custom step.\n","sliceInPlace(startIndex, endIndex, step)":"\tReturns the receiver containing the subset of the\n\treceiver from the startIndex to the endIndex. The endIndex argument\n\tis optional. If not given, it is assumed to be the end of the string. \n    Step argument is also optional and defaults to 1.\n","select":"Same as <tt>selectInPlace<\/tt>, but result is a new List.\n","last(optionalSize)":"\tReturns the last item or Nil if the list is empty.\n\tIf optionalSize is provided, that number of the last items in the list are returned.\n","unique":"Returns a new list containing all the values in the target, but no duplicates.\n","flatten":"    Creates a new list, with all contained lists flattened into the new list. For example:\n<code>\nlist(1,2,list(3,4,list(5))) flatten\n==> list(1, 2, 3, 4, 5)\n<\/code>\n","with(anObject, ...)":"\tReturns a new List containing the arguments.\n","swapIndices(index1, index2)":"\tExchanges the object at index1 with the object at index2.\n\tRaises an exception if either index is out of bounds. Returns self.\n","preallocateToSize(aNumber)":"\tPreallocates array memory to hold aNumber number of items.\n","size":"\tReturns the number of items in the receiver.\n","reverse":"Reverses the ordering of all the items of the receiver. Returns copy of receiver.\n","map":"Same as <tt>mapInPlace<\/tt>, but returns results in a new List.\n","foreach(optionalIndex, value, message)":"Loops over the list values setting the specified index and\nvalue slots and executing the message. Returns the result of the last\nexecution of the message. Example:\n<p>\n<pre>\nlist(1, 2, 3) foreach(i, v, writeln(i, \" = \", v))\nlist(1, 2, 3) foreach(v, writeln(v))<\/pre>\n","appendSeq(aList1, aList2, ...)":"\tAdd the items in the lists to the receiver. Returns self.\n","uniqueCount":"Returns a list of list(value, count) for each unique value in self.\n","selectInPlace(optionalIndex, value, message)":"    Like foreach, but the values for which the result of message is either nil\n    or false are removed from the List. Example:\n<pre>list(1, 5, 7, 2) selectInPlace(i, v, v > 3)\n==> 5, 7\nlist(1, 5, 7, 2) selectInPlace(v, v > 3)\n ==> 5, 7<\/pre>\n","fromEncodedList(aSeq)":"\tReturns a List with the decoded Nils, Symbols and Numbers from the input raw array. \n\tFor each object reference encounters, objectForReferenceId(id) will be called to \n\tallow the reference to be resolved. \n\t\n\tAlso see: List asEncodedList.\n","average":"Returns the average of the items.\n","asEncodedList":"\tReturns a Sequence with an encoding of the list. \n\tNil, Number and Symbol objects are copied into the encoding, for other object\n\ttypes, referenceIdForObject(item) will be called to request a reference id for \n\tthe object.\n\t\n\tAlso see: List fromEncodedList.\n","sortBy(aBlock)":"        Returns a new list containing the items from the receiver, sorted using aBlock as compare function. Example:\n<code>list(1, 3, 2, 4, 0) sortBy(block(a, b, a > b))\n==> list(4, 3, 2, 1, 0)<\/code>\n","appendIfAbsent(anObject)":"\tAdds each value not already contained by the receiver. Returns self.\n","shuffleInPlace":"Randomizes the order of the elements in the receiver. Returns self.\n","capacity":"\tReturns the number of potential elements the receiver can hold before it needs to grow.\n","detect(optionalIndex, value, message)":"    Returns the first value for which the message evaluates to a non-nil. Example:\n<pre>list(1, 2, 3, 4) detect(i, v, v > 2)\n==> 3\nlist(1, 2, 3, 4) detect(v, v > 2)\n==> 3<\/pre>\n","atInsert(index, anObject)":"\tInserts anObject at the index specified by index.\n\tAdds anObject if the index equals the current count of the receiver.\n\tRaises an exception if the index is out of bounds. Returns self.\n","setSize(newSize)":"\tSets the size of the receiver by either removing excess items or adding nils as needed.\n"}},"Error":{"copyright":"Rich Collins 2008\n","license":"BSD revised\n","category":"Core\n","module":"Core","description":"An object that contains error information and flow control based on errors.\n","slots":{"ifError(code)":"  Evaluates code in the context of sender. Returns self.\n  <br\/>\n  Another form is <tt>Error ifError(error, code)<\/tt>. \n  Note: <tt>error<\/tt> slot is set in the context of sender, Locals object is not created!\n","isError":"Returns true.\n","returnIfError":"Returns self from the context of sender.\n","with(message)":" Returns new error with message slot set.\n","raiseIfError":"Raises exception.\n"}},"System":{"copyright":"Steve Dekorte, 2002\n","license":"BSD revised\n","category":"Core\n","module":"Core","description":"Contains methods related to the IoVM.\n","slots":{"sleep(secondsNumber)":"\tPerforms a *blocking* sleep call for specified number of seconds.\n","thisProcessPid()":"\tReturn the process id (pid) for this Io process.\n","daemon(dontChroot, dontRedirectOutputStreams)":"\tBecome a daemon process.  If dontChroot is false, the process will change its directory to \/.  If dontRedirectOutputStreams is false, stdout and stderr are redirected to \/dev\/null.\n","launchPath":"Returns a pathComponent of the launch file.\n","getEnvironmentVariable(nameString)":"\tReturns a string with the value of the environment \n\tvariable whose name is specified by nameString.\n","errorNumber":"\tReturns the C errno string.\n","system(aString)":"\tMakes a system call and returns a Number for the return value.\n","setMaxRecycledObjects(aNumber)":"\tSets the max number of recycled objects used.\n","iospecVersion":"The version of IoSpec our IoVM is compatible with\n","setEnvironmentVariable(keyString, valueString)":"\tSets the environment variable keyString to the value valueString.\n","symbols":"\tReturns a List containing all Symbols currently in the system.\n","runCommand":"Calls system and redirects stdout\/err to tmp files.  Returns object with exitStatus, stdout and stderr slots.\n","activeCpus":"\tReturns the number of active CPUs.\n","maxRecycledObjects":"\tReturns the max number of recycled objects used.\n","distribution":"\tReturns the Io distribution name as a string.\n","getOptions(args)":"\tThis primitive is used to get command line options similar to Cs getopt().\n\tIt returns a map in containing the left side of the argument, with the\n\tvalue of the right side. (The key will not contain\n\tthe beginning dashes (--).\n\t<p>\n\tExample:\n\t<pre>\n\toptions := System getOptions(args)\n\toptions foreach(k, v,\n\t  if(v type == List type,\n\t\tv foreach(i, j, writeln(\\\"Got unnamed argument with value: \\\" .. j))\n\t\tcontinue\n\t  )\n\t  writeln(\\\"Got option: \\\" .. k .. \\\" with value: \\\" .. v)\n\t)\n\t<\/pre>\n","installPrefix":"\tReturns the root path where io was installed. The default is \/usr\/local.\n","setLobby(anObject)":"\tSets the root object of the garbage collector.\n","exit(optionalReturnCodeNumber)":"\tShutdown the IoState (io_free all objects) and return\ncontrol to the calling program (if any).\n","version":"\tReturns a version number for Io.\n","recycledObjectCount":"\tReturns the current number of objects being held for recycling.\n","ioPath":"Returns the path of io installation. The default is $INSTALL_PREFIX\/lib\/io.\n","args":"\tReturns the list of command line argument strings the program was run with.\n","platform":"\tReturns a string description of the platform.\n","userInterruptHandler":"Called when control-c is hit. Override to add custom behavior. Returns self.\n","platformVersion":"\tReturns the version id of the OS.\n","iovmName":"The name of our IoVM as used by IoSpec\n","launchScript":"Returns the path of the io file run on the command line. Returns nil if no file was run.\n"}},"Map":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Core\n","module":"Core","description":"A key\/value dictionary appropriate for holding large key\/value collections.\n","slots":{"justSerialized(stream)":" Writes the receiver's code into the stream.\n","asList":"Converts a Map to a list of lists. Each element in the returned list will be a list of two elements: the key, and the value.\n","values":"\tReturns a List of the receivers values.\n","empty":"\tRemoves all keys from the receiver. Returns self.\n","select(optionalIndex, optionalValue, message)":"\t\tCreates a new Map with keys,values of self for which message evaluated\n\t\tto non-nil.\n","asQueryString":"Returns a urlencoded query string representation of this map\n","merge(anotherMap)":"\t\tReturns a new map created by merging the pairs from anotherMap into this map\n","map(key, value, message)":"\t\tCreate a List of results of message applied to self's items in a random\n\t\torder.\n","hasValue(aValue)":"\tReturns true if the value is one of the Map's values or false otherwise.\n","asObject":"Create a new Object whose slotDescriptionMap will be equal to self\n","reverseMap":"Creates a new Map using values as keys and keys as values\n","keys":"\tReturns a List of the receivers keys.\n","hasKey(keyString)":"\tReturns true if the key is present or false otherwise.\n","removeAt(keyString)":"\tRemoves the specified keyString if present. Returns self.\n","at(keyString, optionalDefaultValue)":"\tReturns the value for the key keyString. Returns nil if the key is absent.\n","asFormEncodedBody":"Returns a urlencoded query string representation of this map\n","atIfAbsentPut(keyString, aValue)":"\tIf a value is present at the specified key, the value is returned. \n\tOtherwise, inserts\/sets aValue and returns aValue.\n","with(key1, value1, key2, value2, ...)":" Returns a new map containing the given keys and values\n","foreach(optionalKey, value, message)":"\tFor each key value pair, sets the locals key to\nthe key and value to the value and executes message.\nExample:\n<pre>\taMap foreach(k, v, writeln(k, \" = \", v))\naMap foreach(v, write(v))<\/pre>\t\n\nExample use with a block:\n\n<pre>\tmyBlock = block(k, v, write(k, \" = \", v, \"\\n\"))\naMap foreach(k, v, myBlock(k, v))<\/pre>\n","mergeInPlace(anotherMap)":"\t\tMerges the pairs from anotherMap into this map\n","atPut(keyString, aValue)":"\tInserts\/sets aValue with the key keyString. Returns self.\n","isNotEmpty":"Returns true if this map contains at least one pair.\n","size":"\tReturns the number of key\/value pairs in the receiver.\n","isEmpty":"Returns true if this map doesn't contain any pairs.\n","detect(optionalIndex, optionalValue, message)":"\t\tReturns a random value for which message evals to non-nil.\n","asJson":"Converts a Map to a string that represents contents in JSON-compilant form\n"}},"Block":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Core\n","module":"Core","description":"Blocks are anonymous functions (messages with their own locals object). \nThey are typically used to represent object methods.\n","slots":{"message":"\tReturns the root message of the receiver.\n","setCode(aString)":"\tSets the receiver's message to a compiled version of aString. Returns self.\n","scope":"\tReturns the scope used when the block is activated or\n\tNil if the target of the message is the scope.\n","asSimpleString":"Returns a short description of the receiver.\n","asString":"Returns a full description of the receiver with decompiled code.\n","callWithArgList(aList)":" Activates the block with the given argument list.\n","profilerTime":"\tReturns clock() time spent in compiler in seconds.\n","Formatter":"Helper object for the <tt>asString<\/tt> method.\n","print":"\tPrints an Io source code representation of the block\/method.\n","setProfilerOn(aBool)":"\tIf aBool is true, the global block profiler is enabled, if false it is disabled. Returns self.\n","setPassStops(aBool)":"\tSets whether the receiver passes return\/continue\/break to caller.\n","passStops":"\tReturns whether or not the receiver passes return\/continue\/break to caller.\n","call(arg0, arg1, ...)":"\tActivates the receiver with the provided arguments.\n","justSerialized(stream)":" Writes the receiver's code into the stream.\n","setArgumentNames(aListOfStrings)":"\tSets the receiver's argument names to those specified in\n\taListOfStrings. Returns self.\n","code":"\tReturns a string containing the decompiled code of the receiver.\n","setMessage(aMessage)":"\tSets the root message of the receiver to aMessage.\n","argumentNames":"\tReturns a List of strings containing the argument names of the receiver.\n","println":"Same as <tt>print<\/tt>.\n","performOn(anObject, optionalLocals, optionalMessage, optionalSlotContext)":"\tActivates the receiver in the target context of anObject.\n\tReturns the result.\n","setScope(anObjectOrNil)":"\tIf argument is an object, when the block is activated,\n\tit will set the proto and self slots of its locals to the specified\n\tobject. If Nil, it will set them to the target of the message.\n"}},"Debugger":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Core\n","module":"Core","description":"Contains methods related to the IoVM debugger.\n","slots":{"debuggerCoroutine":"Returns the coroutine used for the debugger.\n","start":"Starts the debugger.\n","description":"\tTo start debugging a coroutine, call\n\t<code>\n\tCoroutine currentCoroutine setMessageDebugging(true)\n\t<\/code>\n\tThen each message sent within that coroutine will cause the Debugger \n\tvmWillSendMessage slot to be activated and the Debugger slots: \n\tmessageCoroutine, messageSelf, messageLocals, and message will be set with the \n\tvalues related to the current message send. You can override vmWillSendMessage to \n\timplement your own debugging mechanisms.\n","vmWillSendMessage":"Override this method to implement your own debugging mechanisms. Default behavior is to print every message sent.\n"}}}},"Parsers":{"Regex":{"RegexMatch":{"copyright":"Daniel Rosengren danne.rosengren@gmail.com\n","license":"BSD revised\n","category":"Parsers\n","module":"Regex","description":"Contains the result of a regular expression match operation.\nIt acts as a read-only list of captured strings.\nThe first item is the entire matched string.\nEach item after that is a captured sub pattern (anything inbetween\nparenthesis in the pattern).\n\n<pre>\nIo> match := \"37signals\" findRegex(\"([0-9]+)([a-z]+)(!!)?\")\n==> RegexMatch: \"37signals\" \n\n# Item 0 is the entire matched string:\nIo> match at(0)\n==> 37signals\n\n# Item 1 is the first capture (\"[0-9]+\"):\nIo> match at(1)\n==> 37\n\n# Item 2 is the second capture (\"[a-z]+\"):\nIo> match at(2)\n==> signals\n\n# The third sub pattern wasn't part of the match, so item 3 is nil:\nIo> match at(3)\n==> nil\n\n# You can access captures by name, if you name them:\nIo> match := \"37signals\" findRegex(\"(?<number>[0-9]+)(?<word>[a-z]+)(!!)?\")\n==> RegexMatch: \"37signals\"\nIo> match at(\"number\")\n==> 37\nIo> match at(\"word\")\n==> signals\n<\/pre>\n","slots":{"end":"\tReturns the index into the subject at which the match ends.\n","names":"\tReturns a list of the name of each named capture.\n\tIf there are no named captures, the list will be empty.\n","subject":"\tReturns the string that this match was found in.\n","asString":"\tReturns a string containing a textual representation of the receiver.\n","slice(startIndex, [endIndex])":"\tReturns a new list containing the subset of the receiver from the <em>startIndex<\/em> to the <em>endIndex<\/em>.\n\tThe <em>endIndex<\/em> argument is optional. If not given, it is assumed to be the end of the capture list.\n","captures":"\tReturns a list of captured strings. The first element is the whole match.\n","string":"\tReturns the matched string.\n","startOf(indexOrName)":"\tReturns the index into the subject at which the capture with the given index or name starts.\n","expandTo(templateString)":"\tReturns <em>templateString<\/em> with capture placeholders replaced with what they represent.\n\t<code>$0<\/code> is replaced with the whole match, <code>$1<\/code> is replaced with the first\n\tsub capture, etc. <code>${name}<\/code> is replaced with the capture of that name.\n","sizeInChars":"\tReturns the length of the match, in characters.\n","prefix":"\tReturns a slice of the subject string that contains all text before this match.\n\tEquivalent to:\n\t<pre>\n\tmatch subject slice(0, match start)\n\t<\/pre>\n","indexOf(name)":"\tReturns the index of the capture with the given name.\n","select([index], capture, message)":"\tLike <code>foreach<\/code>, but the values for which the result of evaluating <em>message<\/em> are non-nil are returned\n\tin a list.\n","size":"\tReturns the number of captures.\n","regex":"\tReturns the Regex that was used to find this match.\n","foreach([index], capture, message)":"\tLoops through the captures, assigns each capture to <em>capture<\/em>, and evaluates <em>message<\/em>.\n\tReturns a list with the result of each evaluation.\n","postfix":"\tReturns a slice of the subject string that contains all text after this match.\n\tEquivalent to:\n\t<pre>\n\tmatch subject slice(match end)\n\t<\/pre>\n","at(indexOrName)":"\tReturns the capture with the given index or name. <code>at(0)<\/code> is the entire match.\n","ranges":"\tReturns a list containing the range of each capture.\n","rangeOf(indexOrName)":"\tReturns the range of the capture with the given index or name.\n","nameOf(index)":"\tReturns the name of the capture with the given index.\n","map([index], capture, message)":"\tLike <code>foreach<\/code>, but the result of each evaluation of <em>message<\/em> is returned in a list.\n","range":"\tReturns the range of the match in the subject.\n","start":"\tReturns the index into the subject at which the match starts.\n","endOf(indexOrName)":"\tReturns the index into the subject at which the capture with the given index or name ends.\n"}},"RegexMatches":{"copyright":"Daniel Rosengren danne.rosengren@gmail.com\n","license":"BSD revised\n","category":"Parsers\n","module":"Regex","description":"A regular expression match iterator.\n","slots":{"foreachInterval(value, matchMessage, nonMatchMessage)":"\tLike <code>foreach<\/code>, but takes an extra message that will be evaluated for the non-matching\n\ttext before each match, and the non-matching text after the last match.\n","splitString":"\tSplits the string being matched against into pieces using the regex as the delimiter\n\tand returns the piece as a list of strings.\n","replaceAllWith(templateString)":"\tSame as:\n\t<pre>\n\treplace(match, match expandTo(templateString))\n\t<\/pre>\n","setString(aString)":"\tSets the string to find matches in. Returns self.\n","setPosition(aRegexOrString)":"\tSets the search position to the given index in the string. Returns self.\n","setRegex(aRegexOrString)":"\tSets the regex to find matches in. Returns self.\n","map(value, message)":"\tLike <code>foreach<\/code>, but the result of each evaluation of <em>message<\/em> is returned\n\tin a list.\n","disallowEmptyMatches":"\tTells the receiver not to allow zero length matches. Returns self.\n","position":"\tReturns the search position as an index in the string.\n","regex":"\tReturns the Regex that the receiver uses for finding matching.\n","foreach(value, message)":"\tLoops through the matches, assigns each match to <em>value<\/em>, and evaluates <em>message<\/em>.\n\tReturns the result of the last evaluation.\n","string":"\tReturns the string that the receiver finds matches in.\n","allowEmptyMatches":"\tTells the receiver to allow zero length matches. Empty matches are allowed by default.\n\tReturns self.\n","replace(name, message)":"\tReplaces each match in the string with the result of <em>message<\/em> and returns\n\tthe resulting string.\n","allowsEmptyMatches":"\tReturns true if the receiver allows empty matches, false if not.\n","last":"\tReturns the last match in the string.\n","all":"\tReturns a list containing all matches in the string.\n","endPosition":"\tReturns the index in the string where the receiver stops searching.\n","next":"\tReturns the next match, or nil if there is none.\n","setEndPosition(anIndex)":"\tSets the index in the string where the receiver should stop searching. It will be as\n\tif the string ends at that index. If <em>index<\/em> is nil, the end position will be set\n\tto the end of string.\n\tReturns self.\n\n\t<pre>\n\tIo> \"funkadelic\" matchesOfRegex(\"\\\\w+\") setEndPosition(4) next string\n\t==> funk\n\n\tIo> \"funkadelic\" matchesOfRegex(\"\\\\w+\") setEndPosition(nil) next string\n\t==> funkadelic\n\t<\/pre>\n","anchored":"\tLike <code>next<\/code>, but will only match at the current search position.\n"}},"Regex":{"copyright":"Steve Dekorte 2005, Daniel Rosengren 2007\n","license":"BSD revised\n","category":"Parsers\n","module":"Regex","description":"<p>The Regex addon adds support for Perl regular expressions\nusing the <a href=http:\/\/www.pcre.org\/>PCRE<\/a> library by Philip Hazel.<\/p>\n\n<h4>Example 1<\/h4>\n<pre>\t\nIo> re := \"is.*a\" asRegex\nIo> \"This is a test. This is also a test.\" \\\n    matchesOfRegex(\" is[^.]*a\") replaceAllWith(\" is not a\")\n==> \"This is not a test. This is not a test.\n<\/pre>\n\n<h4>Example 2<\/h4>\n<pre>\t\nIo> \"11aabb\" matchesOfRegex(\"aa*\")\n==> list(\"a\", \"a\")\n\nIo> re := \"(wom)(bat)\" asRegex\nIo> \"wombats are cuddly\" matchesOfRegex(re) replaceAllWith(\"$2$1!\")\n==> batwom!s are cuddly\n<\/pre>\n","slots":{"notMultiline":"\tThe reverse of multiline.\n","dotAll":"\t<p>Returns a clone of the receiver with the dotall option turned on,\n\tor self if the receiver itself has the option turned on.<\/p>\n\n\t<p>In dotall mode, \".\" matches any character, including newline. By default\n\tit matches any character <em>except<\/em> newline.<\/p>\n\n\t<pre>\t\n\tIo> \"A\\nB\" matchesOfRegex(\".+\") next string\n\t==> A\n\n\tIo> \"A\\nB\" matchesOfRegex(\".+\" asRegex dotAll) next string\n\t==> A\\nB\n\t<\/pre>\n","names":"\tReturns a list of the name of each named capture.\n\tIf there are no named captures, the list will be empty.\n","multiline":"\t<p>Returns a clone of the receiver with the multiline option turned on,\n\tor self if the receiver itself has the option turned on.<\/p>\n\n\t<p>In multiline mode, \"^\" matches at the beginning of the string and at\n\tthe beginning of each line; and \"$\" matches at the end of the string,\n\tand at the end of each line.\n\tBy default \"^\" only matches at the beginning of the string, and \"$\"\n\tonly matches at the end of the string.<\/p>\n\n\t<pre>\t\n\tIo> \"A\\nB\\nC\" allMatchesForRegex(\"^.\")\n\t==> list(\"A\")\n\n\tIo> \"A\\nB\\nC\" allMatchesForRegex(\"^.\" asRegex multiline)\n\t==> list(\"A\", \"B\", \"C\")\n\t<\/pre>\n","isCaseless":"\tReturns true if the receiver is case insensitive, false if not.\n","asString":"\tReturns a string containing a textual representation of the receiver.\n","notDotAll":"\tThe reverse of dotAll.\n","pattern":"\tReturns the pattern string that the receiver was created from.\n","captureCount":"\tReturns the number of captures defined by the pattern.\n","notExtended":"\tThe reverse of extended.\n","namedCaptures":"\tReturns a Map that contains the index of each named group.\n","extended":"\t<p>Returns a clone of the receiver with the extended option turned on,\n\tor self if the receiver itself has the option turned on.<\/p>\n\n\t<p>In extended mode, a Regex ignores any whitespace character in the pattern\texcept\n\twhen escaped or inside a character class. This allows you to write clearer patterns\n\tthat may be broken up into several lines.<\/p>\n\n\t<p>Additionally, you can put comments in the pattern. A comment starts with a \"#\"\n\tcharacter and continues to the end of the line, unless the \"#\" is escaped or is\n\tinside a character class.<\/p>\n","version":"\tReturns a string with PCRE version information.\n","matchesIn(aString)":"\tReturns a RegexMatches object that enumerates the matches of the receiver\n\tin the given string.\n","isMultiline":"\tReturns true if the receiver is in multiline mode, false if not.\n","with(pattern)":"\tReturns a new Regex created from the given pattern string.\n","caseless":"\tReturns a case insensitive clone of the receiver, or self if the receiver itself is\n\tcase insensitive:\n\n\t<pre>\t\n\tIo> \"WORD\" matchesRegex(\"[a-z]+\")\n\t==> false\n\n\tIo> \"WORD\" matchesRegex(\"[a-z]+\" asRegex caseless)\n\t==> true\n\t<\/pre>\n","notCaseless":"\tThe reverse of caseless.\n","nameTable":"\tReturns a list with the name of each capture.\n\tThe first element will always be nil, because it corresponds to the whole match.\n\tThe second element will contain the name of the first capture, or nil if the first\n\tcapture has no name.\n\tAnd so on.\n","isExtended":"\tReturns true if the receiver is in extended mode, false if not.\n","isDotAll":"\tReturns true if the receiver is in dotall mode, false if not.\n","asRegex":"\tReturns self.\n"}}},"Yajl":{"YajlGenParser":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Parsers\n","module":"Yajl","description":"This object can be used to parse YajlGen \/ HTML \/ XML.\n","slots":{}},"YajlParser":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Parsers\n","module":"Yajl","description":"This object can be used to parse Yajl \/ HTML \/ XML.\n","slots":{}}},"Fnmatch":{"Fnmatch":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Parsers\n","module":"Fnmatch","description":"The fnmatch add on adds support for the unix fnmatch function. \n(See fnmatch man page for details). \nNote: not all options are supported on all platforms.\n","slots":{"noEscapeOn":"\tIf not set, a backslash character (\\) in pattern followed by any other \n\tcharacter will match that second character in string. \n\tIn particular, \"\\\\\" will match a backslash in string. \n\tIf set, a backslash character will be treated as an ordinary character.\n","caseFoldOn":"\tIgnore case distinctions in both the pattern and the string.\n","leadingDirOff":"\tSee leadingDirOn.\n","setPattern(aString)":"\tSets the pattern string. Returns self.\n","caseFoldOff":"\tSee caseFoldOn.\n","setString(aString)":"\tSets the string to do matching on.\n","periodOn":"\tIf set, a leading period in string will match a period in pattern; where the location of ``leading'' is indicated by the value of FNM_PATHNAME:\n<UL>\n<LI>If FNM_PATHNAME is set, a period is ``leading'' if it is the first character in string or if it immediately follows a slash.\n\n<LI>If FNM_PATHNAME is not set, a period is ``leading'' only if it is the first character of string.\n<\/UL>\n<p>\nIf not set, no special restrictions are placed on matching a period.\n","hasMatch":"\tReturns true if a match is found, false otherwise.\n","pathNameOn":"\tIf set, a slash (\/) character in string will be explicitly matched \n\tby a slash in pattern; it will not be matched by either the asterisk (*) \n\tor question-mark (?) special characters, nor by a bracket ([]) expression. \n\tIf not set, the slash character is treated as an ordinary character.\n","periodOff":"\t\"See periodOn.\n","noEscapeOff":"\tSee noEscapeOn.\n","pathNameOff":"\tSee pathNameOn.\n","leadingDirOn":"\tIgnore rest after successful pattern matching.\n","pattern":"\tReturns the pattern string.\n","string":"\tThe string to do matching on.\n","matchFor(aString)":"\tReturns self if aString matches the pattern, otherwise returns nil.\n"}}},"SGML":{"SGMLElement":{"Representation":"of an SGML \/ HTML \/ XML tag.\n","category":"Parsers\n","module":"SGML","slots":{"subitems":"Returns a List containing the tag's subitems.\n","attributes":"Returns a Map containing the tag's attributes.\n","name":"Returns the tag name\n","asString":"Returns a String representation of the tag and all of its subitems.\n","setName(aString)":" Sets the tag name. Returns self.\n"}},"SGMLParser":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Parsers\n","module":"SGML","description":"This object can be used to parse SGML \/ HTML \/ XML.\n","slots":{"parse(aSequence)":"\tParses aSequence and calls the following methods on self;\n<pre>\t\nstartElement(name)\nendElement(name)\nnewAttribute(key, value)\nnewText(text)\n<\/pre>\t\nfor each of the items it finds. Returns self.\n","tagForString(aSequence)":"Parses aSequence and returns an SGMLTag object.\n"}}},"Libxml2":{"XmlReader":{"category":"Parsers\n","module":"Libxml2","slots":{}},"XmlWriter":{"category":"Parsers\n","module":"Libxml2","slots":{}}}},"Compilers":{"Loki":{"Linker":{"copyright":"Marc Fauconneau, 2006\n","license":"BSD revised\n","category":"Compilers\n","module":"Loki","description":"\tAn object that enables low level introspection into a running Io VM.\n","slots":{"makeCFunction(aSeq, slotName, object)":"Creates a CFunction which users the beginning address of the data in aSeq as its function pointer and \nadds the CFunction to the given object on slot slotName.\n","bytesToHexSeq(aSeq)":"Returns a Sequence containing a hex representation of aSeq.\n","hexSeqToBytes(aSeq)":"Returns a Sequence containing a binary representation of the hex data in aSeq.\n"}}}},"Math":{"ContinuedFraction":{"ContinuedFraction":{"category":"Math\n","module":"ContinuedFraction","description":"?\n","slots":{}}},"BigNum":{"BigNum":{"category":"Math\n","module":"BigNum","description":"A wrapper for <a href=http:\/\/gmplib.org\/>GNU MP Bignum (arbitrary precision math) library<\/a>. \nWarning: GMP uses the restrictive GNU license which can be a problem if you are hard linking it into a distributed application.\n","slots":{"pow(aNum)":" Returns power of receiver to aNum.\n","nextprime":"Returns next prime larger than the receiver.\n","asSimpleString":"Returns simple string representation of the receiver.\n","asString":"Returns a string representation of the receiver.\n","legendre(aNum)":" ?\n","invert(aNum)":"  ?\n","popcount":"?\n","scan0(aNum)":"  ?\n","*(aNum)":" Multiply op. Returns result.\n","mod(aNum)":" Modulus op (same as %). Returns result.\n","powm(aNum)":" ?\n","hamdist(aNum)":"  Returns hamming distance between receiver and aNum.\n","^(aNum)":" XOR op. Returns result.\n","**(aNum)":" Power op. Returns result.\n","root(aNum)":" Returns the aNum root of the receiver.\n","tstbit(aNum)":"  ?\n","%(aNum)":" Modulus op (same as mod()). Returns result.\n","&(aNum)":"  AND op. Returns result.\n","scan1(aNum)":"  ?\n","asNumber":"Returns an Io Number for the receiving BigNum.\n","jacobi(aNum)":"  ?\n","abs":"Absolute op. Returns result.\n","\/(aNum)":" Divide op. Returns result.\n","sqrt":"Returns square root of the receiver.\n","neg":"Returns negative version of receiver.\n","gcd(aNum)":" Greatest common denominator op. Returns result.\n","-(aNum)":" Subtract op. Returns result.\n","lcm(aNum)":" Least common denominator op. Returns result.\n","<<(aNum)":" Shift left (towards higher bits) op. Returns result.\n",">>(aNum)":" Shift right (towards lower bits) op. Returns result.\n","with(aNumber)":" Returns a BigNum version of the Io number aNumber.\n","kronecker":"?\n","|(aNum)":"  OR op. Returns result.\n","+(aNum)":" Add op. Returns result.\n"}}},"Rational":{"Rational":{"copyright":"Jeremy Tregunna, 2006\n","license":"BSD\n","category":"Math\n","module":"Rational","Number description":"Example use:\n<pre>\nr1 := Rational with(1, 2) \/* 1\/2\n","slots":{"serialized":"Returns a bit of code which can be used to serialize the Rational number.\n","asString":"Returns a text string representing the Rational number.\n","numerator":"Returns the numerator.\n","setDenominator(aNumber)":" Sets the denominator. Returns self.\n","compare(other)":" Compares two numbers against one another. Returns a positive, zero or negative value based on whether the receiver is larger, equal or less than the argument.\n","!=(other)":" Compares two numbers against one another. Returns true if they are equal (represent the same number), false otherwise.\n","asNumber":"Converts the Rational number to a floating point number.\n","==(other)":" Compares two numbers against one another. Returns true if they are equal (represent the same number), false otherwise.\n","reduce":"Reduces the numerator and denominator to their lowest terms.\n","negate":"Negates the Rational number.\n","gcd(aNum)":" Calculates the greatest common denominator between the receiver and the argument.\n","-(aNum)":" Returns the value of the receiver subtracted from aNum.\n","asRational":"Converts the number to a Rational number. CAVEAT: Numbers in Io are floating point entities, which means since they are imprecise, this conversion may yield values not expected.\")\n","abs":"Returns a Rational number with the absolute value of the receiver.\n","denominator":"Returns the denominator.\n","*(aNum)":" Returns the value of the receiver multiplied by aNum.\n","divmod(aNum)":" Returns a list containing the integer value and the receiver modulus aNum.\n","\/(aNum)":" Returns the value of the receiver divided by aNum.\n","setNumerator(aNumber)":" Sets the numerator. Returns self.\n","with(aNumerator, aDenominator)":" Convenience constructor. Returns a new Rational number whose numerator and denominator are represented by the arguments aNumerator and aDenominator respectively.\")\n","%(aNum)":" Returns the receiver modulus aNum\n","pow(aNum)":" Returns the value of the receiver to the power of aNum.\n","+(aNum)":" Returns the value of the receiver added to aNum.\n"}}},"Random":{"Random":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Math\n","module":"Random","description":"A high quality and reasonably fast random number generator based on \nMakoto Matsumoto, Takuji Nishimura, and Eric Landry's implementation \nof the <a href=http:\/\/www.math.sci.hiroshima-u.ac.jp\/~m-mat\/MT\/emt.html>Mersenne Twister<\/a> algorithm. The default seed is a xor of \nthe ANSI C time() and clock() return values.\n","slots":{"setSeed(aNumber)":"\tSets the random number generator seed to the unsigned int version of aNumber.\n","flip":"\tReturns a random bit as a true or false object.\n","bytes(count)":"\tReturns a Sequence of size count containing random bytes.\n","value(optionalArg1, optionalArg2)":"\tIf called with:\n\t<ul>\n\t<li> no arguments, it returns a floating point\n\trandom Number between 0 and 1.\n\t<li> one argument, it returns a floating point random\n\tNumber between 0 and optionalArg1.\n\t<li> two arguments, it returns a floating point random\n\tNumber between optionalArg1 and optionalArg2.\n\t<\/ul>\n","gaussian(optionalMean, optionalStandardDeviation)":"\tReturns a pseudo random number between 0 and 1 with a gaussian distribution.\n"}}}},"Video":{"Vorbis":{"VorbisInfo":{"copyright":"Chris Double, 2004\n","license":"BSD revised\n","category":"Video\n","module":"Vorbis","description":"A wrapper around the libvorbis vorbis_info object.\n","slots":{"version":"\tReturns the vorbis version required for this data.\n","channels":"\tReturns the number of channels in the vorbis data.\n","rate":"\tReturns the sample rate of the vorbis data.\n"}},"VorbisBlock":{"copyright":"Chris Double, 2004\n","license":"BSD revised\n","category":"Video\n","module":"Vorbis","description":"A wrapper around the libvorbis vorbis_comment object.\n","slots":{"setup":"\tInitialize for decoding using the information obtained\n\tfrom reading the Vorbis headers.\n","synthesis(packet)":"\tDecode the vorbis data from the packet, storing it in the\n\tblock.\n"}},"VorbisDspState":{"copyright":"Chris Double, 2004\n","license":"BSD revised\n","category":"Video\n","module":"Vorbis","description":"A wrapper around the libvorbis vorbis_comment object.\n","slots":{"pcmout":"\tReturns array of audio data\n","headerin(info, comment, packet)":"\tTry to decode a vorbis header from the packet.\n","setup(info)":"\tInitialize for decoding using the information obtained\n\tfrom reading the Vorbis headers.\n","blockin(block)":"\tDecodes that data from the block, storing it in the dsp state.\n"}},"VorbisComment":{"copyright":"Chris Double, 2004\n","license":"BSD revised\n","category":"Video\n","module":"Vorbis","description":"A wrapper around the libvorbis vorbis_comment object.\n","slots":{"count":"\tReturns number of comments.\n"}}},"AVCodec":{"AVCodec":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Video\n","module":"AVCodec","description":"An object for encoding and decoding audio and video streams.\n\n<p>\nWhen an input stream containing audio data is opened, the following slots will be set:\n<pre>\naudioChannels\naudioSampleRate\naudioBitRate\naudioDuration\naudioFrameCount\n<\/pre>\n\nWhen an input stream containing video data is opened, the following slots will be set:\n\n<pre>\nframePeriod\nvideoDuration\nvideoFrameCount\n<\/pre>\n","slots":{"setCodecName(aSeq)":" Sets the codec name. Returns self. See: encodeCodecNames and decodeCodecNames\n","decode":"\tDecodes the next chunk of input data. \n\tOutput (if any) is placed in the outputBuffers. \n\tReturns self.\n","encodeCodecNames":"\tReturns a list of strings with the names of the encode codecs.\n","decodeCodecNames":"\tReturns a list of strings with the names of the decode codecs.\n","close":"\tCloses the input file if it's open. Returns self.\n","path":"Returns path to file the receiver is reading from or writing to.\n","setStreamDestination(anObject)":"Sets the streamDestination to anObject. The didProcess method will call:\n<pre>\nif(streamDestination, streamDestination write(outputBuffer))\noutputBuffer empty\n<\/pre>\n","setPath(aSeq)":" Sets the path to file the receiver is reading or writing to. Returns self.\n","willProcess":"\tCalled before the receiver will process more of the input buffer. \n\tIf inputBuffer is empty, it pauses the receiver's coro.\n","write(aSequence)":"\tAppends aSequence to the input buffer and resumes the receiver's coroutine in order to process it.\n\tThe calling coroutine (inputCoroutine) will be scheduled to resume when didProcess is called.\n","audioInputBuffer":"\tReturns the input buffer.\n","internalCoro":"Returns coroutine used for the AVCodec to process data.\n","setInternalCoro(aCoro)":" Private method for setting internalCoro. Returns self.\n","audioOutputBuffer":"\tReturns the output buffer.\n","videoCodecName":"Returns the name of the video codec.\n","codecName":"Returns name of audio or video codec.\n","open":"\tOpens the input file. Return self on success or raises an exception on error.\n","setInputCoro(aCoro)":" Private method for setting inputCoro. Returns self.\n","inputCoro":"Returns coroutine currently writing to the receiver.\n","didProcess":"\tCalled after the receiver processes some more of the input buffer.\n","streamDestination":" Returns the streamDestination.\n","isAtEnd":"\tReturns true if the stream is at its end, false otherwise.\n"}}},"Theora":{"TheoraInfo":{"copyright":"Chris Double, 2004\n","license":"BSD revised\n","category":"Video\n","module":"Theora","description":"A wrapper around the libtheora th_info object.\n","slots":{"frameRate":"\t  The framerate of the video.\n","frameHeight":"\tThe encoded frame height.\n","frameWidth":"\tThe encoded frame width.\n"}},"TheoraDecodeContext":{"copyright":"Chris Double, 2004\n","license":"BSD revised\n","category":"Video\n","module":"Theora","description":"A wrapper around the libtheora th_dec_ctx object.\n","slots":{}},"TheoraSetupInfo":{"copyright":"Chris Double, 2004\n","license":"BSD revised\n","category":"Video\n","module":"Theora","description":"A wrapper around the libtheora th_setup_info object.\n","slots":{}},"TheoraComment":{"copyright":"Chris Double, 2004\n","license":"BSD revised\n","category":"Video\n","module":"Theora","description":"A wrapper around the libtheora th_comment object.\n","slots":{"count":"\tReturns the number of comments.\n"}}}},"Digests":{"Oauth":{"Oauth":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Digests\n","module":"Oauth","description":"An object for calculating Oauth hashes. Each hash calculation should instantiate its own Oauth instance.\n<p>\nExample:\n<pre>\ndigest := Oauth clone\ndigest appendSeq(\"this is a message\")\nout := digest OauthString\n<\/pre>\n","slots":{"getAccessKeyAndSecretFromUrl(aSequence)":"\tgetAccessKeyAndSecretFromUrl Returns self.\n","accessSecret":"\tReturns accessSecret.\n","setAccessKey(aSequence)":"\tSets the access key. Returns self.\n","setAccessSecret(aSequence)":"\tSets the access secret. Returns self.\n","consumerKey":"\tReturns consumerKey.\n","oauthToken":"\tReturns oauthToken.\n","oauthSecret":"\tReturns oauthSecret.\n","setOauthToken(aSequence)":"\tSets the oauth key. Returns self.\n","setOauthSecret(aSequence)":"\tSets the consumer key. Returns self.\n","consumerSecret":"\tReturns consumerSecret.\n","requestUrl(aUrlString, postContent)":"\tRequest the given URL. If postContent is not provided, a GET request is sent. Returns self.\n","getOauthTokenAndSecretFromUrl(aSequence)":"\tgetOauthTokenAndSecretFromUrl Returns self.\n","setConsumerKey(aSequence)":"\tSets the consumer key. Returns self.\n","accessKey":"\tReturns accessKey.\n"}}},"UUID":{"UUID":{"copyright":"\tJonathan Wright, 2006\n","license":"\tBSD revised\n","category":"\tDigests\n","module":"UUID","description":"\tGenerates <a href=http:\/\/en.wikipedia.org\/wiki\/Universally_Unique_Identifier>Universally Unique Identifiers <\/a> (UUID\/GUID).\n","slots":{"uuidTime":"\tReturns a new time and mac uuid (type 1) in string format.\n","urn":"Returns the uuid with \"urn:uuid:\" prepended to it.\n","uuid":"\tReturns a new uuid in string format.\n","uuidRandom":"\tReturns a new random uuid (type 4) in string format.\n"}}},"MD5":{"MD5":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Digests\n","module":"MD5","description":"An object for calculating MD5 hashes. Each hash calculation should instantiate its own MD5 instance.\n<p>\nExample:\n<pre>\ndigest := MD5 clone\ndigest appendSeq(\"this is a message\")\nout := digest md5String\n<\/pre>\n","slots":{"appendSeq(aSequence)":"\tAppends aSequence to the hash calculation. Returns self.\n","md5String":"\tReturns a string containing a hexadecimal representation of the md5 hash.\n","md5":"\tCompletes the MD5 calculation and returns the hash as a Buffer. Once this method is called, append() should not be called again on the receiver or it will raise an exception.\n"}}},"SHA1":{"SHA1":{"copyright":"Steve Dekorte 2002\n","license":"BSD revised\n","category":"Digests\n","module":"SHA1","description":"An object for calculating SHA1 hashes. Each hash calculation \nshould instantiate its own SHA1 instance.\n\n<p>\nExample:\n<pre>\ndigest := SHA1 clone\ndigest appendSeq(\"this is a message\")\nout := digest sha1String\n<\/pre>\n","slots":{"appendSeq(aSequence)":"\tAppends aSequence to the hash calculation. Returns self.\n","sha1String":"\tReturns a string containing a hexadecimal representation of the sha1 hash.\n","hmac(key, data)":"\tReturns a hmac signature sequence or nil on error.\n","sha1":"\tCompletes the SHA1 calculation and returns the hash as a Buffer.\n\tOnce this method is called, append() should not be called again on the receiver or it will raise an exception.\n"}}}},"Audio":{"TagLib":{"TagLib":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Audio\n","module":"TagLib","description":"Used to set meta data tags on the following audio formats:\n<pre>\nape\nflac\nmp3\nmpc\nmpeg\nogg\n<\/pre>\nSupports reading and writing the following attributes:\n<pre>title\nartist\nalbum\nyear\ntrack\ngenre \n<\/pre>\nAnd reading the attributes:\n<pre>\nbitRate\nsampleRate\nchannels\nlength\n<\/pre>\n\nExample use (load and modify a track genre):\n\n<pre>\nt := TagLib clone setPath(\"foo.mp3\") load\nwriteln(\"genre = \", t genre)\nt setGenre(\"ambient\")\nt save\n<\/pre>\n","slots":{"load":"\tLoads tag data from the file specified in the path slot. Returns self.\n","save":"\tSaves the tag settings and returns self.\n","path":"Returns the path to the file.\n","setPath(aSeq)":" Sets the path to the file.\n"}}},"LibSndFile":{"LibSndFile":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Audio\n","module":"LibSndFile","description":"An object for encoding and decoding audio files (principally WAV and AIFF) using the \n<a href=http:\/\/www.mega-nerd.com\/libsndfile\/>Libsndfile<\/a> library.\n","slots":{"close":"\tCloses the file if it is open. \n\tReturns self.\n","write(aSeq)":"Writes aSeq using the format specified by the slots:\n<pre>\nsampleRate\nchannels\nformat\n<\/pre>\nReturns the number of frames written.\n","openForWriting":"Opens the file at the path specified in the path slot for writing. The following slots should be set first to specify the output format:\n<pre>\nsampleRate\nchannels\nformat\n<\/pre>\nReturns self.\n","setFormat(aSeq)":" Sets the format used for writing. Use the formatNames method to get a list of supported format names. Returns self.\n","channels":"Returns channels read from the audio file.\n","path":"Returns path to audio file.\n","formatNames":"\tReturns a list of strings with the names of the supported codecs.\n","setPath(aPath)":" Sets path to audio file.\n","format":"Returns format read from the audio file.\n","read(numberOfFrames)":"\tRead a given number of frames (sample pairs).\n\tReturns self.\n","sampleRate":"Returns sample rate read from the audio file.\n","outputBuffer":"\tReturns the output buffer.\n","openForReading":"Opens the file at the path specified in the path slot and sets the following slots:\n<pre>\nframes\nsampleRate\nchannels\nformat\nseekable\n<\/pre>\nReturns self.\n"}},"Sound":{"category":"Audio\n","module":"LibSndFile","description":"Encapsulates a audio file. Usefull for reading an audio file using LibSndFile.\n","slots":{"buffer":"Returns the buffer used to read the audio file.\n","sampleRate":"Returns number of channels read from the audio file.\n","format":"Returns format read from the audio file.\n","setPath(aPath)":" Sets path to audio file.\n","load":"Returns Loads the file data into the buffer in interleaved stereo 32bit float format and sets the sampleRate, channels and format slots. Returns self.\n","path":"Returns path to audio file.\n"}}},"PortAudio":{"AudioDevice":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Audio\n","module":"PortAudio","description":"The AudioDevice object can used to write audio data as if directly to the audio buffer.\n","slots":{"writeBufferIsEmpty":"\tReturns the true if the audio buffer is empty, false otherwise.\n","open":"\tOpen an audio output stream.\n","close":"\tClose the audio stream.\n","isActive":"\tReturns self if the receiver is active, Nil otherwise.\n","write(aSeq)":"\tWrites aSeq to the inputBuffer and yields until the \n\treceiver is ready for more input data. Returns self.\n","asyncWrite(aBuffer)":"\tWrites aBuffer to the audio output buffer and returns immediately.\n","error":"\tReturns an error string if an error has occurred, Nil otherwise.\n","asyncRead":"\tReturns the audio read buffer.\n","needsData":"\tReturns true if the receiver can read more data.\n","streamTime":"\tReturns the audio stream time as a number.\n","openForReadingAndWriting":"\tOpen audio output and input streams.\n"}},"AudioMixer":{"category":"Audio\n","module":"PortAudio","description":"A minimal audio mixer.\n","slots":{"process(sampleCount)":" Internal method used for processing a chunk of the input sources. Returns self.\n","isRunning":"Returns true if the mixer is running, false otherwise..\n","stop":"Stops the mixer if it is running.\n","appendSource(aSource)":" Adds aSource to sources list. Returns self.\n","removeSource(aSource)":" Removes aSource to sources list. Returns self.\n","processedSamples":"Returns the number of processed samples.\n","start":"\t\tStart the mixer loop processing 1\/64th of a second chunks\n\t\tby calling process(22050) in a loop.\n\t\tWill not return until stop is called. Returns self.\n","streamDestination":"The output stream object.\n"}}},"SoundTouch":{"SoundTouch":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Audio\n","module":"SoundTouch","description":"\tUsed to change the tempo and\/or pitch of an audio stream. \n\tInput and output are in 32 bit floats in 2 channels at a rate \n\tof 44100 samples per second.\n","slots":{"setTempo(aNumber)":"\tSets the tempo.\n","start":"\tCleans up SoundTouch.\n","inputBuffer":"\tReturns the input buffer.\n","outputBuffer":"\tReturns the output buffer.\n","setPitchSemitones(aNumber)":"\tSets the output increase in pitch semitones.\n","setChannels(aNumber)":"\tSets the number of input channels.\n","setSampleRate(aNumber)":"\tSets the input sample rate in Hz.\n","process":"\tProcesses a chunk of the inputBuffer and appends the results to the outputBuffer.\n","setTempoChange(aNumber)":"\tSets the tempo change amount.\n"}}},"Ogg":{"OggStreamState":{"copyright":"Chris Double, 2004\n","license":"BSD revised\n","category":"Audio\n","module":"Ogg","description":"A wrapper around the libogg ogg_stream_state object.\n","slots":{"eos":"\t  Indicates whether we are at the end of the stream.\n","setSerialNumber":"\tSets the serial number for this stream.\n","packetout(packet)":"\t  Outputs a packet to the codec-specific decoding engine.\n","clear":"\tClears the storage within the Ogg stream.\n","pagein(page)":"\t  Submits a complete page to the stream layer.\n","packetpeek(packet)":"\t  Provides access to the next packet in the bitstream\n\t  without advancing decoding.\n","reset":"\t  Resets the stream status to its initial position.\n"}},"OggSyncState":{"copyright":"Chris Double, 2004\n","license":"BSD revised\n","category":"Audio\n","module":"Ogg","description":"A wrapper around the libogg ogg_sync_state object.\n","slots":{"pageout(page)":"\tOutputs a page from the synchronisation layer.\n","write(seq)":"        Copies the data from the sequence into the synchronisation\n\tlayer.\n","clear":"\tFree's any internal storage and resets to the initial state.\n","pageseek(page)":"\tFinds the borders of pages and resynchronises the stream.\n","reset":"\tResets the synchronization status to initial values.\n"}},"OggPage":{"copyright":"Chris Double, 2004\n","license":"BSD revised\n","category":"Audio\n","module":"Ogg","description":"A wrapper around the libogg ogg_page object.\n","slots":{"continued":"\tIndicates if the current page contains a continued\n        packet from the last page.\n","packets":"\tReturns the number of packets in the page.\n","granulepos":"\tReturns the precise playback location of this page.\n","version":"\tReturns the ogg_page version that this page uses.\n","setChecksum":"\tComputes and sets the checksum for this page.\n","eos":"\tIndicates if the current page is the end of the stream.\n","pageno":"\tReturns the sequential page number for this page.\n","serialno":"\tReturns the unique serial number of the logical bitstream\n        associated with this page.\n","bos":"\tIndicates if the current page is the beginning of the stream.\n"}},"OggPacket":{"copyright":"Chris Double, 2004\n","license":"BSD revised\n","category":"Audio\n","module":"Ogg","description":"A wrapper around the libogg ogg_packet object. No methods - used internally.\n","slots":{}}},"SampleRateConverter":{"SampleRateConverter":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Audio\n","module":"SampleRateConverter","description":"\tA binding for <a href=\"http:\/\/www.mega-nerd.com\/SRC\/\">libsamplerate<\/a> \n\tuseful for up or downconverting the sample rate of a raw audio stream.\n\tStreams are assumed to be in 32bit float interleaved stereo.\n","slots":{"inputBuffer":"\tReturns the input buffer.\n","process":"\tProcess the input buffer to perform the conversion. \n\tReturns self.\n","setOutputToInputRatio(aNumber)":"\tReturns the output to input ration for the conversion.\n","start":"\tStops processing.\n\tReturns self.\n","outputBuffer":"\tReturns the output buffer.\n","setEndOFInput(aBool)":"\tSets the end of input flag.\n\tReturns self.\n"}}}},"UserInterface":{"Clutter":{"ClutterVertex":{"category":"UserInterface\n","module":"Clutter","description":"For more detailed docs see <a href=\"http:\/\/clutter-project.org\/docs\/clutter\/stable\/ClutterActor.html#ClutterVertex\">Clutter documentation<\/a>.\n","slots":{"asList":"Returns [[List]] with x, y, and z values.\n","==(otherVertex)":"","x":"","with(x, y, z)":"","setY(y)":"","!=(otherVertex)":"","y":"","setX(x)":"","setZ(z)":"","z":""}},"Clutter":{"category":"UserInterface\n","module":"Clutter","description":"<p>\n<a href=\"http:\/\/clutter-project.org\">Clutter<\/a> is a GObject based library for creating fast, visually rich, graphical user interfaces.\n<\/p><p>\nClutter works by manipulating a scene-graph of 2D surfaces, or 'actors', inside a 3D space.\n<\/p><p>\nClutterActor is the base class for such surfaces. All ClutterActors can be positioned, scaled and rotated in 3D space. In addition, other properties can be set, such as 2D clipping, children and opacity. Tranforms applied to a parent actor also apply to any children. Actors are also able to receive events.\n<\/p><p>\nSubclasses of ClutterActor include ClutterStage, ClutterTexture, ClutterLabel, ClutterRectangle, ClutterEntry and ClutterGroup. ClutterActors are added to a parent, transformed and then made visible.\n<\/p><p>\nClutterStage is the top level ClutterActor - it's the representation of a window, or framebuffer. It is created automatically when Clutter is initialised. ClutterStage is a ClutterGroup, a class implementing the ClutterCointainer interface.\n<\/p><p>\nClutterTimelines provide the basis for Clutter's animation utilities. Multiple timelines can be synchronised using ClutterScore, and ClutterBehaviour and ClutterEffect allow for the creation of animation effects such as transitions.\n<\/p><p>\nClutter further contains a number of utilities, including; ClutterScript - for loading 'UI definition' files formatted in JSON, ClutterShader - a class for applying GPU shaders to actors, ClutterModel - a utility class for MVC list type implementations, and fixed point math utilities.\n<\/p><p>\nFor detailed docs, see <a href=\"http:\/\/clutter-project.org\/docs\/clutter\/stable\/\">clutter-project<\/a>.\n<\/p>\n","slots":{"getKeyboardGrab":"","SCROLL":"Contains all CLUTTER_SCROLL_* constants.\n","ungrabKeyboard":"","getDefaultFrameRate":"","motionEventsEnabled":"Returns true if motion events are enabled.\n","cogl":"","clearGlyphCache":"","SHADER_ERROR":"Contains all CLUTTER_SHADER_ERROR_* constants.\n","initThreads":"","MASK":"Contains all CLUTTER_*_MASK constants.\n","getPointerGrab":"","main":"Calls clutter_main() which starts GMainLoop.\n","EVENT":"Contains all Clutter event type constants.\n","grabKeyboard(actor)":"","threadLeave":"","fontHinting":"Returns <code>true<\/code> if <code>CLUTTER_FONT_HINTING<\/code> is set.\n","getActorByGid(gid)":"","ungrabPointer":"","GRAVITY":"Contains all CLUTTER_GRAVITY_* constants.\n","keySymbolToUnicode(symbol)":"","threadEnter":"","disableMotionEvents":"","setSharedInt(firstInt, ...)":"","UNIT":"Contains all CLUTTER_UNIT_* constants.\n","AXIS":"Contains all CLUTTER_AXIS_* constants.\n","DEVICE_TYPE":"Contains all CLUTTER_TYPE_* constants.\n","mainLevel":"","isFpsShown":"","grabPointer(actor[, deviceId])":"","enableMotionEvents":"","setFontHinting(useFontHinting)":"If <code>useFontHinting<\/code> is <code>false<\/code>, <code>CLUTTER_FONT_MIPMAPPING<\/code> flag will be used.\n","quitMain":"","version":"","STAGE_STATE":"Contains all CLUTTER_STAGE_STATE_* constants.\n","currentEventTime":"","setDefaultFrameRate(frameRate)":"","flavour":"","EVENT_FLAG":"Contains all CLUTTER_EVENT_FLAG_* constants.\n"}},"ClutterActorBox":{"category":"UserInterface\n","module":"Clutter","description":"For more detailed docs see <a href=\"http:\/\/clutter-project.org\/docs\/clutter\/stable\/ClutterActor.html#ClutterActorBox\">Clutter documentation<\/a>.\n","slots":{"with(x1, y1, x2, y2)":"","size":"","contains(x1, y1)":"","origin":""}},"ClutterStage":{"category":"UserInterface\n","module":"Clutter","description":"For more detailed docs see <a href=\"http:\/\/clutter-project.org\/docs\/clutter\/stable\/ClutterStage.html\">Clutter documentation<\/a>.\n","slots":{"setTitle(title)":"","color":"","title":"","setColor(color)":"","default":""}},"ClutterShader":{"category":"UserInterface\n","module":"Clutter","description":"For more detailed docs see <a href=\"http:\/\/clutter-project.org\/docs\/clutter\/stable\/clutter-Shaders.html\">Clutter documentation<\/a>.\n","slots":{"setIsEnabled(state)":"","isCompiled":"","setFragmentSource(source)":"","enable":"","setVertexSource(source)":"","fragmentSource":"","release":"","compile":"","isEnabled":"","vertexSource":"","disable":""}},"ClutterUnits":{"category":"UserInterface\n","module":"Clutter","description":"<p>For more detailed docs see <a href=\"http:\/\/clutter-project.org\/docs\/clutter\/stable\/clutter-Unit-conversion.html\">Clutter documentation<\/a>.<\/p>\nExample:\n<pre><code>ClutterActor clone setWidth((10 px + 1 em) value)<\/code><\/pre>\n","slots":{"-(otherUnit)":"","withEm(valueInEm)":"","withPt(valueInPt)":"","withString(string)":"","==(otherUnit)":"","asString":"","withMm(valueInMm)":"","withEmForFont(valueInEm, fontName)":"","+(otherUnit)":" <code>otherUnit<\/code> can be either [[ClutterUnits]] or [[Number]].\n","value":"","compare(otherUnit)":" Returns 0 if units are equal, -1 if <code>self<\/code> is smaller, 1 if <code>self<\/code> is bigger than <code>otherUnit<\/code>.\n","unit":"Returns an value from [[Clutter UNIT]].\n","withPx(valueInPx)":""}},"ClutterActor":{"category":"UserInterface\n","module":"Clutter","description":"For more detailed docs see <a href=\"http:\/\/clutter-project.org\/docs\/clutter\/stable\/ClutterActor.html\">Clutter documentation<\/a>.\n","slots":{"queueRedraw":"","hide":"","setOpacity(opacity)":"","unmap":"","lower":"","hasClip":"","queueRelayout":"","zRotationGravity":"Returns an object from [[Clutter GRAVITY]].\n","y":"","geometry":"Returns an [[Object]] with slots <code>x<\/code>, <code>y<\/code>, <code>width<\/code>, <code>height<\/code>.\n","event(clutterEvent, capture)":"","allocationVertices([ancestorActor])":" Returns [[List]] with four x objects.\n","showAll":"","setFixedPosition(state)":" <code>state<\/code> can be <code>true<\/code> or <code>false<\/code>.\n","reparent":"","gid":"","setHeight(height)":"","setX(xCoord)":"","parent":"","name":"","setName":"","setZRotationFromGravity(angle, gravity)":"","size":"Returns an [[Object]] with slots <code>width<\/code> and <code>height<\/code> set.\n","setY(yCoord)":"","hideAll":"","rotation":"Returns an [[Object]] with slots <code>x<\/code>, <code>y<\/code>, <code>z<\/code> and <code>angle<\/code> set.\n","allocationBox":"Return new x.\n","preferredHeight":"Returns an [[Object]] with slots <code>minHeight<\/code> and <code>naturalHeight<\/code> set.\n","destroy":"","allocationGeometry":"Returns an Object with slots <code>x<\/code>, <code>y<\/code>, <code>width<\/code>, <code>height<\/code>.\n","raise":"","paint":"","realize":"","preferredSize":"Returns an [[Object]] with slots <code>minWidth<\/code>, <code>minHeight<\/code>, <code>naturalHeight<\/code> and <code>naturalWidth<\/code>.\n","setRotation(axis, angle, x, y, z)":" Sets actor's rotation. Use <code>Clutter AXIS X\/Y\/Z<\/code> for first argument.\n","unrealize":"","position":"Returns an [[Object]] with slots <code>x<\/code> and <code>y<\/code> set.\n","width":"","unparent":"","setClip(xOff, yOff, width, height)":"","height":"","allocate(clutterActorBox, absoluteOriginChanged)":"","show":"","clip":"Returns an [[Object]] with slots <code>xOff<\/code>, <code>yOff<\/code>, <code>width<\/code> and <code>height<\/code> set.\n","isMapped":"","shouldPickPaint":"","setWidth(width)":"","stage":"","allocateAvailableSize(x, y, width, height, originChanged)":"","lowerToBottom":"","isRotated":"","setParent(parentActor)":"","isRealized":"","moveBy(dx, dy)":"","isReactive":"","raiseToTop":"","opacity":"","fixedPosition":"","allocateprefferedSize(originChanged)":"If <code>originChanged<\/code> is <code>true<\/code>,\n<code>CLUTTER_ABSOLUTE_ORIGIN_CHANGED<\/code> flag will be used.\n","x":"","map":"","isVisible":"","setPosition(x, y)":" Sets actor's position.\n","preferredWidth":"Returns an [[Object]] with slots <code>minWidth<\/code> and <code>naturalWidth<\/code> set.\n","setGeometry(x, y, width, height)":" Sets actor's geometry.\n","setSize(width, height)":" Sets actor's size.\n","removeClip":""}},"ClutterEvent":{"category":"UserInterface\n","module":"Clutter","description":"For more detailed docs see <a href=\"http:\/\/clutter-project.org\/docs\/clutter\/stable\/clutter-Events.html\">Clutter documentation<\/a>.\n","slots":{"device":"","keyCode":"","flags":"","put(event)":"","clickCount":"","eventType":"Returns a value from [[Clutter EVENT]].\n","coords":"Returns an [[Object]] with slots <code>x<\/code> and <code>y<\/code> set.\n","scrollDirection":"","y":"","source":"","time":"Returns a [[Date]] object.\n","hasPending":"","relatedActor":"","peek":"","state":"Returns a value from [[Clutter STATE]].\n","x":"","keySymbol":"","keyUnicode":"","button":""}},"ClutterColor":{"category":"UserInterface\n","module":"Clutter","description":"<p>\nFor more detailed docs see <a href=\"http:\/\/clutter-project.org\/docs\/clutter\/stable\/clutter-Colors.html\">Clutter documentation<\/a>.<\/p>\n<pre><code>red := ClutterColor fromString(\"red\")\nblue := \"#00f\" asClutterColor\n(red + blue) asString println<\/code><\/pre>\n","slots":{"!=(otherColor)":"","fromHLS(h, l, s)":"","subtractInPlace(otherColor)":"","asString":"","darken":"","+(otherColor)":"","==(otherColor)":"","toHLS(h, l, s)":"","addInPlace(otherColor)":"","lighten":"","fromPixel(pixel)":"","-(otherColor)":"","shade(amount)":"","fromString(str)":"","toPixel":""}},"ClutterInputDevice":{"category":"UserInterface\n","module":"Clutter","description":"For more detailed docs see <a href=\"http:\/\/clutter-project.org\/docs\/clutter\/stable\/ClutterInputDevice.html\">Clutter documentation<\/a>.\n","slots":{"deviceType":"","deviceId":""}}}},"Concurrency":{"Thread":{"Thread":{"copyright":"Steve Dekorte, 2006\n","license":"BSD revised\n","category":"Concurrency\n","module":"Thread","description":"\tFor native threads.\nExample use;\n<pre>\t\nThread createThread(\"1+1\") \/\/ evals 1+1 in a new thread and an independent Io VM\n<\/pre>\n","slots":{"endCurrentThread":"\tEnds the currently running OS thread.\n","threadCount":"\tReturns the number of OS threads currently running in the process.\n","createThread(aSequence)":"\tCreates a new IoState and evals aSequence in it using a new OS thread. Returns self immediately.\n"}}}},"Apple":{"AppleSensors":{"AppleSensors":{"copyright":"Steve Dekorte, 2004\n","license":"BSD revised\n","category":"Apple\n","module":"AppleSensors","description":"A singleton which on Apple computers can:\n<ul>\n<li> get and set display and keyboard brightness\n<li> read left and right ambient light sensors (laptops only)\n<li> read accelerometer sensor (laptops only)\n<\/ul>\nExample use;\n<pre>\t\nsensors = AppleSensors clone\nvalue := sensors getRightLightSensor\n<\/pre>\n","slots":{"setKeyboardBrightness(aNumber)":"\t\tSets the keyboard brightness. Returns self.\n","getRAMTemperature":"\t\tReturns a number for the RAM temperature sensor.\n","getPowerTemperature":"\t\tReturns a number for the Power board temperature sensor.\n","smsVector(aVector)":"\t\tSets aVector to the current x, y and z accelerometer values. \n\t\tReturns true on success and false on failure.\n","getCPUTemperature":"\t\tReturns a number for the CPU temperature sensor.\n","setDisplayBrightness(aNumber)":"\t\tSets the display brightness. Returns self.\n","getLeftLightSensor":"\t\tReturns a number for the left ambient light sensor.\n","getDisplayBrightness":"\t\tReturns a number for the display brightness.\n","getBatteryTemperature":"\t\tReturns a number for the Battery temperature sensor.\n","getPCHTemperature":"\t\tReturns a number for Intel's Platform Controller Hub temperature sensor.\n","getGPUTemperature":"\t\tReturns a number for the GPU temperature sensor.\n","getRightLightSensor":"\t\tReturns a number for the right ambient light sensor.\n","getPalmTemperature":"\t\tReturns a number for the Palm Rest Area temperature sensor.\n","getKeyboardBrightness":"\t\tReturns a number for the keyboard brightness.\n"}}}},"Physics":{"ODE":{"ODEContact":{"copyright":"Jonathan Wright, 2006\n","license":"BSD revised\n","category":"Physics\n","module":"ODE","description":"ODEContact binding\n","slots":{}},"ODEJoint":{"copyrigth":"Jonathan Wright, 2006\n","copyright":"Jonathan Wright, 2006\n","license":"BSD revised\n","Jonathan":"Wright\", 2006)\n","category":"Physics\n","module":"ODE","description":"ODEJoint binding\n","slots":{}},"ODEFixed":{"license":"BSD revised\n","copy":"Jonathan Wright\", 2006)\n","category":"Physics\n","module":"ODE","description":"ODEFixed binding\n","slots":{}},"ODEBall":{"copyright":"Jonathan Wright, 2006\n","license":"BSD revised\n","category":"Physics\n","module":"ODE","description":"ODEBall binding\n","slots":{}},"ODEHinge2":{"copyright":"Jonathan Wright\", 2006)\n","license":"BSD revised\n","category":"Physics\n","module":"ODE","description":"ODEJoint binding\n","slots":{}},"ODEBox":{"copyright":"Jonathan Wright, 2006\n","license":"BSD revised\n","category":"Physics\n","module":"ODE","description":"ODEBox binding\n","slots":{}},"ODEHinge":{"copyright":"Jonathan Wright, 2006\n","license":"BSD revised\n","category":"Physics\n","module":"ODE","description":"ODEHinge binding\n","slots":{}},"ODESimpleSpace":{"copyright":"Jonathan Wright, 2006\n","license":"BSD revised\n","category":"Physics\n","module":"ODE","description":"ODESimpleSpace binding\n","slots":{}},"ODEWorld":{"copyright":"Jonathan Wright, 2006\n","license":"BSD revised\n","category":"Physics\n","module":"ODE","description":"ODEWorld binding\n","slots":{}},"ODEPlane":{"copyrigth":"Jonathan Wright, 2006\n","license":"BSD revised\n","category":"Physics\n","module":"ODE","description":"ODEPlane binding\n","slots":{}},"ODEJointGroup":{"copyright":"Jonathan Wright, 2006\n","license":"BSD revised\n","category":"Physics\n","module":"ODE","description":"ODEJointGroup binding\n","slots":{}},"ODEContactJoint":{"copyright":"Jonathan Wright, 2006\n","license":"BSD revised\n","category":"Physics\n","module":"ODE","description":"ODEContactJoint binding\n","slots":{}},"ODEBody":{"copyright":"Jonathan Wright, 2006\n","license":"BSD revised\n","category":"Physics\n","module":"ODE","description":"ODEBody binding\n","slots":{}},"ODEMass":{"copyright":"Jonathan Wright, 2006\n","license":"BSD revised\n","category":"Physics\n","module":"ODE","description":"ODEMass binding\n","slots":{}}}}}
2