<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>Barry: Barry Namespace Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.2-20100208 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="namespaces.html"><span>Namespace List</span></a></li> <li><a href="namespacemembers.html"><span>Namespace Members</span></a></li> </ul> </div> </div> <div class="contents"> <h1>Barry Namespace Reference</h1> <p>Project namespace, containing all related functions and classes. <a href="#_details">More...</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Classes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1Builder.html">Builder</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Base class for the builder functor hierarchy. <a href="classBarry_1_1Builder.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1RecordBuilder.html">RecordBuilder</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Template class for easy creation of specific protocol packet builder objects. <a href="classBarry_1_1RecordBuilder.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1RecordFetch.html">RecordFetch</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generic record fetch class, to help with using records without builder classes. <a href="classBarry_1_1RecordFetch.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1CodFileBuilder.html">CodFileBuilder</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The <a class="el" href="classBarry_1_1CodFileBuilder.html" title="The CodFileBuilder class is used to assemble multiple .cod files into a single packed...">CodFileBuilder</a> class is used to assemble multiple .cod files into a single packed .cod file using the pkzip file format. <a href="classBarry_1_1CodFileBuilder.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1ConfigFile.html">ConfigFile</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1GlobalConfigFile.html">GlobalConfigFile</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1Controller.html">Controller</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The main interface class. <a href="classBarry_1_1Controller.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1Data.html">Data</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1Diff.html">Diff</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DataQueue.html">DataQueue</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This class provides a thread aware fifo queue for <a class="el" href="classBarry_1_1Data.html">Data</a> objects, providing memory management for all <a class="el" href="classBarry_1_1Data.html">Data</a> object pointers it contains. <a href="classBarry_1_1DataQueue.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1Error.html">Error</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The base class for any future derived exceptions. <a href="classBarry_1_1Error.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1BadPassword.html">BadPassword</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A bad or unknown password when talking to the device. <a href="classBarry_1_1BadPassword.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1BadData.html">BadData</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Thrown by record classes if their data is invalid and cannot be uploaded to the Blackberry. <a href="classBarry_1_1BadData.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1BadSize.html">BadSize</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Unexpected packet size, or not enough data. <a href="classBarry_1_1BadSize.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1ErrnoError.html">ErrnoError</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">System error that provides an errno error code. <a href="classBarry_1_1ErrnoError.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1ConfigFileError.html">ConfigFileError</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Thrown by the <a class="el" href="classBarry_1_1ConfigFile.html">ConfigFile</a> class when encountering a serious system error while loading the global config file for a given PIN. <a href="classBarry_1_1ConfigFileError.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1BadPackedFormat.html">BadPackedFormat</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Thrown by record classes that don't recognize a given packed format code. <a href="classBarry_1_1BadPackedFormat.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1BadPacket.html">BadPacket</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Thrown by the socket class if a packet command's response indicates an error. <a href="classBarry_1_1BadPacket.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1ConvertError.html">ConvertError</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Thrown by the vformat related barrysync library classes. <a href="classBarry_1_1ConvertError.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1IConvHandle.html">IConvHandle</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Wrapper class for a two-way iconv_t handle pair. <a href="classBarry_1_1IConvHandle.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1IConverter.html">IConverter</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Main charset conversion class, primarily focused on converting between the Blackberry charset and an application-specified one. <a href="classBarry_1_1IConverter.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1ContactLdif.html">ContactLdif</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Class for generating LDIF output based on a <a class="el" href="classBarry_1_1Contact.html" title="Represents a single record in the Address Book Blackberry database.">Barry::Contact</a> record object. <a href="classBarry_1_1ContactLdif.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1LogLock.html">LogLock</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">RAII locking class used to protect the logStream passed into <a class="el" href="namespaceBarry.html#a2e28bd59aebe0bece5a46f02ef7dbd3d" title="Barry library initializer.">Barry::Init()</a> (<a class="el" href="common_8h.html" title="General header for the Barry library.">common.h</a>). <a href="classBarry_1_1LogLock.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1JLDirectory.html">JLDirectory</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1JLDirectoryEntry.html">JLDirectoryEntry</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1JLScreenInfo.html">JLScreenInfo</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1JLEventlog.html">JLEventlog</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1JLEventlogEntry.html">JLEventlogEntry</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1JLDeviceInfo.html">JLDeviceInfo</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1JVMModulesList.html">JVMModulesList</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1JVMModulesEntry.html">JVMModulesEntry</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1JVMThreadsList.html">JVMThreadsList</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1JVMThreadsEntry.html">JVMThreadsEntry</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1Modem.html">Modem</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1Packet.html">Packet</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1ZeroPacket.html">ZeroPacket</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Provides an API for building and analyzing socket-0 protocol packets. <a href="classBarry_1_1ZeroPacket.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DBPacket.html">DBPacket</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Provides an API for building and analyzing raw DB protocol packets. <a href="classBarry_1_1DBPacket.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1JLPacket.html">JLPacket</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Provides an API for building and analyzing raw Javaloader protocol packets. <a href="classBarry_1_1JLPacket.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1JVMPacket.html">JVMPacket</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Provides an API for building and analyzing raw JavaDebug protocol packets. <a href="classBarry_1_1JVMPacket.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1Parser.html">Parser</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Base class for the parser hierarchy. <a href="classBarry_1_1Parser.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1NullParser.html">NullParser</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">If in debug mode, this class can be used as a null parser. <a href="classBarry_1_1NullParser.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1RecordParser.html">RecordParser</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Template class for easy creation of specific parser objects. <a href="classBarry_1_1RecordParser.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1Pin.html">Pin</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1PppFilter.html">PppFilter</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structBarry_1_1ProbeResult.html">ProbeResult</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1Probe.html">Probe</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1Calendar.html">Calendar</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1CalendarAll.html">CalendarAll</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1CallLog.html">CallLog</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structBarry_1_1ContactGroupLink.html">ContactGroupLink</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1Contact.html">Contact</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Represents a single record in the Address Book Blackberry database. <a href="classBarry_1_1Contact.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1Folder.html">Folder</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1Memo.html">Memo</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1Message.html">Message</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1MessageBase.html">MessageBase</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1PINMessage.html">PINMessage</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1RecurBase.html">RecurBase</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1SavedMessage.html">SavedMessage</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1ServiceBookData.html">ServiceBookData</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1ServiceBookConfig.html">ServiceBookConfig</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1ServiceBook.html">ServiceBook</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1Sms.html">Sms</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1Task.html">Task</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1Timezone.html">Timezone</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structBarry_1_1FieldLink.html">FieldLink</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structBarry_1_1CommandTableCommand.html">CommandTableCommand</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1CommandTable.html">CommandTable</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structBarry_1_1RecordStateTableState.html">RecordStateTableState</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1RecordStateTable.html">RecordStateTable</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structBarry_1_1DatabaseItem.html">DatabaseItem</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DatabaseDatabase.html">DatabaseDatabase</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structBarry_1_1UnknownData.html">UnknownData</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structBarry_1_1UnknownField.html">UnknownField</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structBarry_1_1EmailAddress.html">EmailAddress</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structBarry_1_1PostalAddress.html">PostalAddress</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structBarry_1_1Date.html">Date</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1CategoryList.html">CategoryList</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1SocketRoutingQueue.html">SocketRoutingQueue</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DataHandle.html">DataHandle</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">std::auto_ptr like class that handles pointers to <a class="el" href="classBarry_1_1Data.html">Data</a>, but instead of freeing them completely, the <a class="el" href="classBarry_1_1Data.html">Data</a> objects are turned to the <a class="el" href="classBarry_1_1SocketRoutingQueue.html">SocketRoutingQueue</a> from whence they came. <a href="classBarry_1_1DataHandle.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1scoped__lock.html">scoped_lock</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structBarry_1_1SHA__CTX.html">SHA_CTX</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1SocketZero.html">SocketZero</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1Socket.html">Socket</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Encapsulates a "logical socket" in the Blackberry USB protocol. <a href="classBarry_1_1Socket.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1Thread.html">Thread</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structBarry_1_1TimeZone.html">TimeZone</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1vSmartPtr.html">vSmartPtr</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A special smart pointer for variables that have their own special 'free' functions. <a href="classBarry_1_1vSmartPtr.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1vLateSmartPtr.html">vLateSmartPtr</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Variation of the above smart pointer that allows the user to assign a free function after construction, in the case of dlopen()'d frees. <a href="classBarry_1_1vLateSmartPtr.html#_details">More...</a><br/></td></tr> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">BXEXPORT size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceBarry.html#ae9d92a617771de40f7bb5a15b8da1807">GetTotalBitmapSize</a> (const <a class="el" href="classBarry_1_1JLScreenInfo.html">JLScreenInfo</a> &info)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the total number of bytes needed to convert a screenshot of the given dimensions into a bitmap, using the <a class="el" href="namespaceBarry.html#a9da780aab46e04d16fddd855c85933ba" title="Converts screenshot data obtained via JavaLoader::GetScreenshot() into uncompressed...">ScreenshotToBitmap()</a> function. <a href="#ae9d92a617771de40f7bb5a15b8da1807"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">BXEXPORT void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceBarry.html#a9da780aab46e04d16fddd855c85933ba">ScreenshotToBitmap</a> (const <a class="el" href="classBarry_1_1JLScreenInfo.html">JLScreenInfo</a> &info, const <a class="el" href="classBarry_1_1Data.html">Data</a> &screenshot, <a class="el" href="classBarry_1_1Data.html">Data</a> &bitmap)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Converts screenshot data obtained via JavaLoader::GetScreenshot() into uncompressed bitmap format, suitable for writing BMP files. <a href="#a9da780aab46e04d16fddd855c85933ba"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceBarry.html#a07808b7a4cabe1399d5432eb1ee1eabf">SeekNextCod</a> (std::istream &input)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Seeks the input stream to the next packed sibling .cod file and returns the packed .cod file size. <a href="#a07808b7a4cabe1399d5432eb1ee1eabf"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceBarry.html#a2e28bd59aebe0bece5a46f02ef7dbd3d">Init</a> (bool data_dump_mode, std::ostream *logStream)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="namespaceBarry.html" title="Project namespace, containing all related functions and classes.">Barry</a> library initializer. <a href="#a2e28bd59aebe0bece5a46f02ef7dbd3d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceBarry.html#a59da38213acb8827d30bddfc54bbfe2a">Verbose</a> (bool data_dump_mode)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This API call lets the application enable / disable verbose debug output on the fly. <a href="#a59da38213acb8827d30bddfc54bbfe2a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceBarry.html#aec655def4d700239e60ed3ccb417e0c5">IsVerbose</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns true if data dump mode is enabled. <a href="#aec655def4d700239e60ed3ccb417e0c5"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structBarry_1_1TimeZone.html">TimeZone</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceBarry.html#ab664177c654a0cb41bc8fc40b39eabda">GetTimeZoneTable</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a pointer to an array of <a class="el" href="structBarry_1_1TimeZone.html">TimeZone</a> structs. <a href="#ab664177c654a0cb41bc8fc40b39eabda"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structBarry_1_1TimeZone.html">TimeZone</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceBarry.html#a8b42d46bf7b5cb8f4d9e0bde1d61f226">GetTimeZone</a> (unsigned short Code)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Searches the internal timezone code table for the given Code and returns a pointer to a <a class="el" href="structBarry_1_1TimeZone.html">TimeZone</a> struct found. <a href="#a8b42d46bf7b5cb8f4d9e0bde1d61f226"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">unsigned short </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceBarry.html#a56ac220ad3edcfbefcebb35c685212d1">GetTimeZoneCode</a> (signed short HourOffset, signed short MinOffset)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Searches the internal timezone table for the first matching Code. <a href="#a56ac220ad3edcfbefcebb35c685212d1"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">time_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceBarry.html#a30255c53ebed390fc98a50e9c5d49984">DayToDate</a> (unsigned short Day)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This routine takes the day of the year and returns a time_t adjusted from the first of the year. <a href="#a30255c53ebed390fc98a50e9c5d49984"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">time_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceBarry.html#a2f4e6ee9d4afc6a26ae0166329609600">Message2Time</a> (uint16_t r_date, uint16_t r_time)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Localize the funky math used to convert a Blackberry message timestamp into a time_t. <a href="#a2f4e6ee9d4afc6a26ae0166329609600"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">BXEXPORT struct timespec * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceBarry.html#a0e1dc80f82d25739631c39b545f812bb">ThreadTimeout</a> (int timeout_ms, struct timespec *spec)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a pthread_cond_timedwait() compatible timespec struct, based on a given timeout in milliseconds. <a href="#a0e1dc80f82d25739631c39b545f812bb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceBarry.html#a06ec709ed2313dd84291b2d295a87d26">Version</a> (int &major, int &minor)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Fills major and minor with integer version numbers, and returns a string containing human readable version information in English. <a href="#a06ec709ed2313dd84291b2d295a87d26"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Project namespace, containing all related functions and classes. </p> <p>This is the only namespace applications should be concerned with, for now. </p> <hr/><h2>Function Documentation</h2> <a class="anchor" id="a30255c53ebed390fc98a50e9c5d49984"></a><!-- doxytag: member="Barry::DayToDate" ref="a30255c53ebed390fc98a50e9c5d49984" args="(unsigned short Day)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">BXEXPORT time_t Barry::DayToDate </td> <td>(</td> <td class="paramtype">unsigned short </td> <td class="paramname"> <em>Day</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>This routine takes the day of the year and returns a time_t adjusted from the first of the year. </p> <p>FIXME This function assumes the year hasn't changed, but I don't have enough information to determine where the year is in this header info </p> </div> </div> <a class="anchor" id="a8b42d46bf7b5cb8f4d9e0bde1d61f226"></a><!-- doxytag: member="Barry::GetTimeZone" ref="a8b42d46bf7b5cb8f4d9e0bde1d61f226" args="(unsigned short Code)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">BXEXPORT const <a class="el" href="structBarry_1_1TimeZone.html">TimeZone</a> * Barry::GetTimeZone </td> <td>(</td> <td class="paramtype">unsigned short </td> <td class="paramname"> <em>Code</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Searches the internal timezone code table for the given Code and returns a pointer to a <a class="el" href="structBarry_1_1TimeZone.html">TimeZone</a> struct found. </p> <p>If the code is not found, a pointer to a valid <a class="el" href="structBarry_1_1TimeZone.html">TimeZone</a> struct is is still returned, but the struct's Code contains TIME_ZONE_CODE_ERR, and the name is "Unknown time zone." The unknown timezone is the same offset as GMT. </p> </div> </div> <a class="anchor" id="a56ac220ad3edcfbefcebb35c685212d1"></a><!-- doxytag: member="Barry::GetTimeZoneCode" ref="a56ac220ad3edcfbefcebb35c685212d1" args="(signed short HourOffset, signed short MinOffset)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">BXEXPORT unsigned short Barry::GetTimeZoneCode </td> <td>(</td> <td class="paramtype">signed short </td> <td class="paramname"> <em>HourOffset</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">signed short </td> <td class="paramname"> <em>MinOffset</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Searches the internal timezone table for the first matching Code. </p> <p>If no matching Code is found, TIME_ZONE_CODE_ERR is returned.</p> <p>This function does not adjust for daylight saving time. </p> </div> </div> <a class="anchor" id="ab664177c654a0cb41bc8fc40b39eabda"></a><!-- doxytag: member="Barry::GetTimeZoneTable" ref="ab664177c654a0cb41bc8fc40b39eabda" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">BXEXPORT const <a class="el" href="structBarry_1_1TimeZone.html">TimeZone</a> * Barry::GetTimeZoneTable </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Returns a pointer to an array of <a class="el" href="structBarry_1_1TimeZone.html">TimeZone</a> structs. </p> <p>The last struct contains 0 in all fields, and can be used as an "end of array" marker. </p> </div> </div> <a class="anchor" id="ae9d92a617771de40f7bb5a15b8da1807"></a><!-- doxytag: member="Barry::GetTotalBitmapSize" ref="ae9d92a617771de40f7bb5a15b8da1807" args="(const JLScreenInfo &info)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">BXEXPORT size_t Barry::GetTotalBitmapSize </td> <td>(</td> <td class="paramtype">const JLScreenInfo & </td> <td class="paramname"> <em>info</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the total number of bytes needed to convert a screenshot of the given dimensions into a bitmap, using the <a class="el" href="namespaceBarry.html#a9da780aab46e04d16fddd855c85933ba" title="Converts screenshot data obtained via JavaLoader::GetScreenshot() into uncompressed...">ScreenshotToBitmap()</a> function. </p> </div> </div> <a class="anchor" id="a2e28bd59aebe0bece5a46f02ef7dbd3d"></a><!-- doxytag: member="Barry::Init" ref="a2e28bd59aebe0bece5a46f02ef7dbd3d" args="(bool data_dump_mode, std::ostream *logStream)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">BXEXPORT void Barry::Init </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"> <em>data_dump_mode</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">std::ostream * </td> <td class="paramname"> <em>logStream</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p><a class="el" href="namespaceBarry.html" title="Project namespace, containing all related functions and classes.">Barry</a> library initializer. </p> <p>See also the <a class="el" href="classBarry_1_1LogLock.html" title="RAII locking class used to protect the logStream passed into Barry::Init() (common...">LogLock</a> class.</p> <p>Call this before anything else. This takes care of initializing the lower level libusb.</p> <p>This function is safe to be called multiple times. The data_dump_mode and the log stream will be updated each time it is called, but the USB library will not be re-initialized.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>data_dump_mode</em> </td><td>If set to true, the protocol conversation will be sent to the logStream specified in the second argument. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>LogStream</em> </td><td>Pointer to std::ostream object to use for debug output and logging. Defaults to std::cout. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="aec655def4d700239e60ed3ccb417e0c5"></a><!-- doxytag: member="Barry::IsVerbose" ref="aec655def4d700239e60ed3ccb417e0c5" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">BXEXPORT bool Barry::IsVerbose </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Returns true if data dump mode is enabled. </p> </div> </div> <a class="anchor" id="a2f4e6ee9d4afc6a26ae0166329609600"></a><!-- doxytag: member="Barry::Message2Time" ref="a2f4e6ee9d4afc6a26ae0166329609600" args="(uint16_t r_date, uint16_t r_time)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">BXEXPORT time_t Barry::Message2Time </td> <td>(</td> <td class="paramtype">uint16_t </td> <td class="paramname"> <em>r_date</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint16_t </td> <td class="paramname"> <em>r_time</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Localize the funky math used to convert a Blackberry message timestamp into a time_t. </p> <p>Both r_date and r_time are expected to be fed in from the <a class="el" href="structBarry_1_1Protocol_1_1MessageRecord.html">Protocol::MessageRecord</a> struct in raw form, without endian conversion. This function handles that. </p> </div> </div> <a class="anchor" id="a9da780aab46e04d16fddd855c85933ba"></a><!-- doxytag: member="Barry::ScreenshotToBitmap" ref="a9da780aab46e04d16fddd855c85933ba" args="(const JLScreenInfo &info, const Data &screenshot, Data &bitmap)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">BXEXPORT void Barry::ScreenshotToBitmap </td> <td>(</td> <td class="paramtype">const JLScreenInfo & </td> <td class="paramname"> <em>info</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Data & </td> <td class="paramname"> <em>screenshot</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Data & </td> <td class="paramname"> <em>bitmap</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Converts screenshot data obtained via JavaLoader::GetScreenshot() into uncompressed bitmap format, suitable for writing BMP files. </p> <p>Arguments info and screenshot come from GetScreenshot() and the converted data is stored in bitmap. </p> </div> </div> <a class="anchor" id="a07808b7a4cabe1399d5432eb1ee1eabf"></a><!-- doxytag: member="Barry::SeekNextCod" ref="a07808b7a4cabe1399d5432eb1ee1eabf" args="(std::istream &input)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t Barry::SeekNextCod </td> <td>(</td> <td class="paramtype">std::istream & </td> <td class="paramname"> <em>input</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Seeks the input stream to the next packed sibling .cod file and returns the packed .cod file size. </p> <p>When all siblings have been read, zero is returned.</p> <p>When input stream does not contain the signature for a packed .cod file, it's assumed the entire stream is the .cod file.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>input</em> </td><td>stream to read from</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>size of next packed .cod file, or 0 finished reading .cod files </dd></dl> </div> </div> <a class="anchor" id="a0e1dc80f82d25739631c39b545f812bb"></a><!-- doxytag: member="Barry::ThreadTimeout" ref="a0e1dc80f82d25739631c39b545f812bb" args="(int timeout_ms, struct timespec *spec)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">BXEXPORT struct timespec * Barry::ThreadTimeout </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>timeout_ms</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct timespec * </td> <td class="paramname"> <em>spec</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [read]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Creates a pthread_cond_timedwait() compatible timespec struct, based on a given timeout in milliseconds. </p> <p>Note that the resulting timespec is time-sensitive: the 'timer' starts as soon as this function returns, since timespec is a specific time in the future, and <a class="el" href="namespaceBarry.html#a0e1dc80f82d25739631c39b545f812bb" title="Creates a pthread_cond_timedwait() compatible timespec struct, based on a given timeout...">ThreadTimeout()</a> calculates it based on the current time.</p> <p>Returns the spec pointer, to make it easy to use with pthread_cond_timedwait() </p> <p>Referenced by <a class="el" href="dataqueue_8cc_source.html#l00107">Barry::DataQueue::wait_pop()</a>.</p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> <div class="center"><img src="namespaceBarry_a0e1dc80f82d25739631c39b545f812bb_icgraph.png" border="0" usemap="#namespaceBarry_a0e1dc80f82d25739631c39b545f812bb_icgraph_map" alt=""></div> <map name="namespaceBarry_a0e1dc80f82d25739631c39b545f812bb_icgraph_map" id="namespaceBarry_a0e1dc80f82d25739631c39b545f812bb_icgraph"> <area shape="rect" id="node3" href="classBarry_1_1DataQueue.html#a27d4830d37b0f7a1bee3a63b0f5a5b2b" title="Pops the next element off the front of the queue, and waits until one exists if empty..." alt="" coords="211,31,403,62"/><area shape="rect" id="node5" href="classBarry_1_1SocketRoutingQueue.html#ae9fac0a9073c44567987230843712e94" title="This version does not perform a copy." alt="" coords="451,5,723,35"/><area shape="rect" id="node7" href="classBarry_1_1SocketRoutingQueue.html#acbe8506c04cb6ff9942766a3ba39cbd4" title="Copying is not performed with this function." alt="" coords="451,58,723,89"/></map> </div> </p> </div> </div> <a class="anchor" id="a59da38213acb8827d30bddfc54bbfe2a"></a><!-- doxytag: member="Barry::Verbose" ref="a59da38213acb8827d30bddfc54bbfe2a" args="(bool data_dump_mode)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">BXEXPORT void Barry::Verbose </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"> <em>data_dump_mode</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>This API call lets the application enable / disable verbose debug output on the fly. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>data_dump_mode</em> </td><td>If set to true, the protocol conversation will be sent to the logStream specified in the <a class="el" href="namespaceBarry.html#a2e28bd59aebe0bece5a46f02ef7dbd3d" title="Barry library initializer.">Barry::Init()</a> call. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a06ec709ed2313dd84291b2d295a87d26"></a><!-- doxytag: member="Barry::Version" ref="a06ec709ed2313dd84291b2d295a87d26" args="(int &major, int &minor)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">BXEXPORT const char * Barry::Version </td> <td>(</td> <td class="paramtype">int & </td> <td class="paramname"> <em>major</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int & </td> <td class="paramname"> <em>minor</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Fills major and minor with integer version numbers, and returns a string containing human readable version information in English. </p> </div> </div> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address> </body> </html>