//----------------------------------------------------------------------------- // Copyright (c) 2013 GarageGames, LLC // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to // deal in the Software without restriction, including without limitation the // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or // sell copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS // IN THE SOFTWARE. //----------------------------------------------------------------------------- ConsoleMethodGroupBeginWithDocs(StreamObject, SimObject) /*! Gets the current status of the StreamObject @return The current status as a string (Ok, IOError, EOS, IllegalCall, Closed, UnknownError, Invalid) */ ConsoleMethodWithDocs(StreamObject, getStatus, const char *, 2, 2, ()) { return object->getStatus(); } /*! Test for end of stream @return Returns true if at the end of the stream, false otherwise. */ ConsoleMethodWithDocs(StreamObject, isEOS, ConsoleBool, 2, 2, ()) { return object->isEOS(); } /*! Test for end of file stream (identical to isEOS() @return Returns true if at the end of the stream, false otherwise. @sa isEOS */ ConsoleMethodWithDocs(StreamObject, isEOF, ConsoleBool, 2, 2, ()) { return object->isEOS(); } ////////////////////////////////////////////////////////////////////////// /*! @return Returns the current position in the stream as an integer or zero if failed */ ConsoleMethodWithDocs(StreamObject, getPosition, ConsoleInt, 2, 2, ()) { return object->getPosition(); } /*! Resets the current stream position @param The desired index @return Returns true if succeeded, flase otherwise */ ConsoleMethodWithDocs(StreamObject, setPosition, ConsoleBool, 3, 3, (newPosition)) { return object->setPosition(dAtoi(argv[2])); } /*! Get the size of the stream @return The size of the stream as an integer */ ConsoleMethodWithDocs(StreamObject, getStreamSize, ConsoleInt, 2, 2, ()) { return object->getStreamSize(); } ////////////////////////////////////////////////////////////////////////// /*! Read the stream until '\' or EOS @return A string containing the read line or an empty string if failed */ ConsoleMethodWithDocs(StreamObject, readLine, const char *, 2, 2, ()) { const char *str = object->readLine(); return str ? str : ""; } /*! Writes a line of text to the stream buffer @param The line to write @return No return value. */ ConsoleMethodWithDocs(StreamObject, writeLine, ConsoleVoid, 3, 3, (line)) { object->writeLine((U8 *)argv[2]); } ////////////////////////////////////////////////////////////////////////// /*! Read a String and insert it into a StringTable @param caseSensitive A boolean representing whether the parser should ignore case or not (default false) @return Returns the string, or empty string if failed */ ConsoleMethodWithDocs(StreamObject, readSTString, const char *, 2, 3, ([caseSensitive = false])) { const char *str = object->readSTString(argc > 2 ? dAtob(argv[2]) : false); return str ? str : ""; } /*! Reads a string from a stream buffer @return The string or an empty string if failed. */ ConsoleMethodWithDocs(StreamObject, readString, const char *, 2, 2, ()) { const char *str = object->readString(); return str ? str : ""; } /*! Reads a string of provided length from the stream buffer. @param The maximum length to read in @return The requested string */ ConsoleMethodWithDocs(StreamObject, readLongString, const char *, 3, 3, (maxLength)) { const char *str = object->readLongString(dAtoi(argv[2])); return str ? str : ""; } /*! Writes a string to buffer or provided length @param maxLength The maximum length to write @param string The string to write @return No return value */ ConsoleMethodWithDocs(StreamObject, writeLongString, ConsoleVoid, 4, 4, (maxLength, string)) { object->writeLongString(dAtoi(argv[2]), argv[3]); } /*! Write a string to the stream buffer @param string The string to write @param maxLength The maximum length to write (default 255). @return No return value. */ ConsoleMethodWithDocs(StreamObject, writeString, ConsoleVoid, 3, 4, (string, [maxLength = 255])) { object->writeString(argv[2], argc > 3 ? dAtoi(argv[3]) : 255); } ////////////////////////////////////////////////////////////////////////// /*! Copies stream contents from current position @param other The StreamObject from which to copy @return Returns true on success, and false otherwise. */ ConsoleMethodWithDocs(StreamObject, copyFrom, ConsoleBool, 3, 3, (StreamObject other)) { StreamObject *other = dynamic_cast(Sim::findObject(argv[2])); if(other == NULL) return false; return object->copyFrom(other); } ConsoleMethodGroupEndWithDocs(StreamObject)