Utility Classes and Functions
[Support Kit]


Detailed Description

Reference counting, data containers, and other tools.


Files

file  Atom.h
 Basic reference-counting classes, and smart pointer templates for working with them.
file  atomic.h
 Utilities for atomic integer operations.
file  Autolock.h
 Stack-based automatic locking.
file  Bitfield.h
 A nice Bitfield class that provides some inline storage.
file  ByteOrder.h
 Definitions and routines for managing byte order differences.
file  CallStack.h
 Debugging tools for retrieving stack crawls.
file  ConditionVariable.h
 Lightweight condition variable synchronization class.
file  Debug.h
 Common debugging routines, macros, and definitions.
file  Errors.h
 Common error codes (renaming from CmnError.h).
file  EventFlag.h
 Event flag synchronization primitive.
file  Flattenable.h
 Abstract interface for an object that can be flattened into a byte buffer.
file  GenericCache.h
 Helper class for implementing RAM-based caches.
file  Handler.h
 High-level thread dispatching/scheduling class.
file  HashTable.h
 Hash table template class.
file  ITextStream.h
 Abstract interface for a formatted text output stream, with C++ iostream-like operators.
file  KeyedVector.h
 A templatized key/value mapping.
file  List.h
 A list container class.
file  Locker.h
 Lightweight mutex class.
file  Message.h
 Data object that is processed by SHandler.
file  MessageCodes.h
 Common message code constants.
file  MessageList.h
 List of SMessage objects, to implement message queues.
file  RegExp.h
 Regular expression processing classes.
file  SharedBuffer.h
 Standard representation of a block of shared data that supports copy-on-write.
file  SortedVector.h
 An SAbstractVector whose types are kept in a consistent order.
file  StaticValue.h
 Optimized representations of static SValue constants.
file  StopWatch.h
 Debugging tool for measuring time.
file  String.h
 Unicode (UTF-8) string class.
file  StringTokenizer.h
 Helper for parsing strings.
file  support/StringUtils.h
 Additional string utilities.
file  SupportBuild.h
 Build declarations for support framework.
file  SupportDefs.h
 Common Support Kit definitions.
file  SwappedValue.h
 Add data to a value that is tagged with endianness and pull it out and know if you need to swap.
file  TextCoder.h
 Helper classes for converting to and from native UTF-8 text encoding.
file  Thread.h
 Object-oriented thread creation.
file  TypeConstants.h
 Format and standard definitions of SValue type codes.
file  TypeFuncs.h
 Templatized functions for various common type operations.
file  URL.h
 URL manipulation helper class.
file  Value.h
 A general-purpose data container.
file  Vector.h
 Simple array-like container class.
file  VectorIO.h
 A specialized vector for storing an iovec array.

Classes

class  _Iterator
 A companion class to SList that provides iteration over typed list nodes. More...
class  ITextInput
 Abstract interface for streaming in formatted text. More...
class  ITextOutput
 Abstract interface for streaming out formatted text. More...
struct  lock_status_t
 Locking operation status result. More...
struct  regexp
class  SAbstractCache
class  SAbstractKeyedVector
 Abstract type-independent implementation of SKeyedVector. More...
class  SAbstractList
 Generic type-independent implementation of a doubly-linked list. More...
class  SAbstractList::AbstractIterator
 A companion class to SAbstractList that provides iteration over list nodes. More...
class  SAbstractSortedVector
 Abstract implementation for a vector that is sorted. More...
class  SAbstractVector
 Abstract type-independent implementation of a vector (array). More...
class  SAtom
 Base class for a reference-counted object. More...
struct  SAtomicInt32
 Convenience wrapper for an atomic integer. More...
class  SAutolock
 Smart locking class. More...
class  SBitfield
 Vector of bits. More...
class  SCallStack
 Create a stack crawl from the current PC. More...
class  SCallTree
class  SCallTreeNode
class  SConditionAtom
class  SConditionVariable
 Lightweight condition variable synchronization. More...
class  SEventFlag
class  SFlattenable
class  SGenericCache
class  SHandler
 SHandler is an event queue to deliver and process SMessage objects. More...
class  SHasher
class  SHashTable
class  SKeyedVector
 Templatized container of key/value pairs. More...
class  SLightAtom
 A variation of SAtom that only supports strong reference counts. More...
class  SLimAtom
 A minimalistic variation of SAtom/SLightAtom that only supports strong reference counts. More...
class  SList
 A template class providing a doubly-linked list. More...
class  SLocker
 Lightweight mutex. More...
class  SMessage
 Data object that is processed by SHandler. More...
class  SMessageList
 List of SMessage objects, used to implement message queues. More...
class  SNestedLocker
 A version of SLocker that allows nesting of Lock() calls. More...
class  SPerformanceSample
class  SReadWriteLocker
class  SRegExp
class  SSharedBuffer
 A chunk of memory that supports copy-on-write semantics. More...
class  SSimpleStatusValue
 Convenience for creating a value containing a status code. More...
class  SSimpleValue
 Convenience for creating simple data values. More...
class  SSortedVector
 Templatized vector (array) that is kept in sorted order. More...
class  SStackCounter
class  SStopWatch
class  SString
 UTF8 string container. More...
class  SStringTokenizer
struct  static_bool_value
struct  static_float_value
struct  static_int32_value
struct  static_large_string_value
struct  static_large_value
struct  static_small_string_value
struct  static_small_value
class  STextCoderUtils
class  STextDecoder
class  STextEncoder
class  SThread
 Class that creates a new active thread. More...
class  SUrl
class  SValue
 A general-purpose data container, also known as a variant. More...
class  SVector
 Templatized vector (array) container class. More...
class  SVectorIO

Defines

#define B_0_0_FLOAT   B_0_0_FLOAT
#define B_0_1_FLOAT   B_0_1_FLOAT
#define B_0_25_FLOAT   B_0_25_FLOAT
#define B_0_2_FLOAT   B_0_2_FLOAT
#define B_0_3_FLOAT   B_0_3_FLOAT
#define B_0_4_FLOAT   B_0_4_FLOAT
#define B_0_5_FLOAT   B_0_5_FLOAT
#define B_0_6_FLOAT   B_0_6_FLOAT
#define B_0_75_FLOAT   B_0_75_FLOAT
#define B_0_7_FLOAT   B_0_7_FLOAT
#define B_0_8_FLOAT   B_0_8_FLOAT
#define B_0_9_FLOAT   B_0_9_FLOAT
#define B_0_INT32   B_0_INT32
#define B_10_INT32   B_10_INT32
#define B_1_0_FLOAT   B_1_0_FLOAT
#define B_1_INT32   B_1_INT32
#define B_2_INT32   B_2_INT32
#define B_3_INT32   B_3_INT32
#define B_4_INT32   B_4_INT32
#define B_5_INT32   B_5_INT32
#define B_6_INT32   B_6_INT32
#define B_7_INT32   B_7_INT32
#define B_8_INT32   B_8_INT32
#define B_9_INT32   B_9_INT32
#define B_CONST_FLOAT_VALUE(ident, val, prefix)
 Convenience macro for making a static SValue containing a float.
#define B_CONST_INT32_VALUE(ident, val, prefix)
 Convenience macro for making a static SValue containing an int32_t.
#define B_CONST_STRING_VALUE_LARGE(ident, string, prefix)
 Convenience macro for making a static SValue containing a string of 5 or more (including the terminating \0) characters.
#define B_CONST_STRING_VALUE_SMALL(ident, string, prefix)
 Convenience macro for making a static SValue containing a string of 4 or fewer (including the terminating \0) characters.
#define B_DISPLAY_PRIORITY   B_DISPLAY_PRIORITY
#define B_FORMAT_INT64   "I64"
#define B_INFINITE_TIMEOUT   B_INFINITE_TIMEOUT
#define B_JPARKS_BROKE_IT   B_BROKEN_PIPE
#define B_LOW_PRIORITY   B_LOW_PRIORITY
#define B_MAKE_INT64(_x)   _x##LL
#define B_MAKE_UINT64(_x)   _x##ULL
#define B_NORMAL_PRIORITY   B_NORMAL_PRIORITY
#define B_OS_NAME_LENGTH   B_OS_NAME_LENGTH
#define B_PERFORMANCE_NODE(weight, name)
#define B_REAL_TIME_DISPLAY_PRIORITY   B_REAL_TIME_DISPLAY_PRIORITY
#define B_REAL_TIME_PRIORITY   B_REAL_TIME_PRIORITY
#define B_STATIC_FLOAT_VALUE(ident, val, prefix)
 Convenience macro for making a static SValue containing a float.
#define B_STATIC_INT32_VALUE(ident, val, prefix)
 Convenience macro for making a static SValue containing an int32_t.
#define B_STATIC_STRING_VALUE_LARGE(ident, string, prefix)
 Convenience macro for making a static SValue containing a string of 5 or more (including the terminating \0) characters.
#define B_STATIC_STRING_VALUE_SMALL(ident, string, prefix)
 Convenience macro for making a static SValue containing a string of 4 or fewer (including the terminating \0) characters.
#define B_TRANSACTION_PRIORITY   B_NORMAL_PRIORITY
#define B_URGENT_DISPLAY_PRIORITY   B_URGENT_DISPLAY_PRIORITY
#define B_URGENT_PRIORITY   B_URGENT_PRIORITY
#define B_UTF8_BULLET   "\xE2\x80\xA2"
#define B_UTF8_COPYRIGHT   "\xC2\xA9"
#define B_UTF8_DOUBLE_CLOSE_QUOTE   "\xE2\x80\x9D"
#define B_UTF8_DOUBLE_OPEN_QUOTE   "\xE2\x80\x9C"
#define B_UTF8_ELLIPSIS   "\xE2\x80\xA6"
#define B_UTF8_HIROSHI   "\xE5\xBC\x98"
#define B_UTF8_REGISTERED   "\xC2\xAE"
#define B_UTF8_SINGLE_CLOSE_QUOTE   "\xE2\x80\x99"
#define B_UTF8_SINGLE_OPEN_QUOTE   "\xE2\x80\x98"
#define B_UTF8_SMILING_FACE_BLACK   "\xE2\x98\xBB"
#define B_UTF8_SMILING_FACE_WHITE   "\xE2\x98\xBA"
#define B_UTF8_TRADEMARK   "\xE2\x84\xA2"
#define LIBBE2   1
#define PADDED_STRING_LENGTH(string)   sizeof(string)+((4-(sizeof(string)%4)) & 0x3)
#define STRING_ASSERT(x)   inline void string_assert() { STATIC_ASSERT(x); }
#define SUPPORTS_ATOM_DEBUG   1

Typedefs

typedef int32_t(* b_demangle_func )(const char *mangled_name, char *unmangled_name, size_t buffersize)
typedef SHandler BHandler
typedef const static_bool_value value_cbool
typedef const static_float_value value_cfloat
typedef const static_int32_value value_cint32
typedef const static_large_string_value value_clrg
typedef const static_small_string_value value_csml

Enumerations

enum  { B_NO_VALUE_FLATTEN = 0x00000001, B_NO_VALUE_RECURSION = 0x00000002 }
 Flags for SValue operations. More...
enum  { B_PRINT_STREAM_HEADER = 0x00000001 }
 Standard PrintToStream() flags. More...
enum  {
  B_UTF32_ELLIPSIS = 0x2026, B_UTF32_BULLET = 0x2022, B_UTF32_SINGLE_OPEN_QUOTE = 0x2018, B_UTF32_SINGLE_CLOSE_QUOTE = 0x2019,
  B_UTF32_DOUBLE_OPEN_QUOTE = 0x201C, B_UTF32_DOUBLE_CLOSE_QUOTE = 0x201D, B_UTF32_COPYRIGHT = 0x00A9, B_UTF32_REGISTERED = 0x00AE,
  B_UTF32_TRADEMARK = 0x2122, B_UTF32_SMILING_FACE_WHITE = 0x263A, B_UTF32_SMILING_FACE_BLACK = 0x263B
}
enum  {
  B_STOP_WATCH_SILENT = (1<<0), B_STOP_WATCH_NESTING = (1<<1), B_STOP_WATCH_CLEAR_CACHE = (1<<2), B_STOP_WATCH_RAW = (1<<3),
  B_STOP_WATCH_HIGH_PRIORITY = (1<<4), B_STOP_WATCH_QUANTIFY = (1<<5), B_STOP_WATCH_NO_TIME = (1<<6)
}
enum  {
  B_BUFFER_USERS_SHIFT = 4, B_BUFFER_LENGTH_SHIFT = 1, B_STATIC_USERS = 0x00000001, B_POOLED_USERS = 0x00000002,
  B_EXTENDED_BUFFER = 0x00000001
}
 Special bits in the SSharedBuffer user count and length fields. More...
enum  { B_ANY_WHAT = 0 }
enum  {
  B_KEY_DOWN = 'keyd', B_KEY_UP = 'keyu', B_KEY_HELD = 'keyh', B_STRING_INPUT = 'stri',
  B_UNMAPPED_KEY_DOWN = 'ukyd', B_UNMAPPED_KEY_UP = 'ukyu', B_FIND_HAPPENING_SOMEWHERE = 'find', B_INVALIDATE = 'invl',
  B_MODIFIERS_CHANGED = 'mdch', B_PEN_DOWN = 'pndn', B_PEN_MOVED = 'pnmv', B_PEN_UP = 'pnup',
  B_PEN_MOVED_WHILE_UP = 'pnmu', B_PEN_DRAGGED = 'pndg', B_PEN_EXITED = 'pnex', B_PEN_DROPPED = 'pndp',
  B_MOUSE_WHEEL_CHANGED = 'whel', B_NULL_EVENT = 'null', B_DEBUG_EVENT = 'debg', B_SPY_EVENT = 'spye',
  B_SET_TIMEOUTS_EVENT = 'stim', B_PLAYBACK_EVENT = 'play', B_HIGHLEVEL_EVENT = 'hlvl', B_DISCOVER = 'disc',
  B_STOP_DISCOVERY = 'ndsc', B_VIEW_PROPERTIES = 'prop', B_STOP_LISTENING = 'nlst', bmsgEnqueuePointerEvent = '_ENP',
  bmsgEnqueueKeyEvent = '_ENK'
}
enum  { B_POST_REMOVE_DUPLICATES = SHandler::POST_REMOVE_DUPLICATES, B_POST_KEEP_UNIQUE = SHandler::POST_KEEP_UNIQUE, B_POST_UNIQUE_MESSAGE = B_POST_REMOVE_DUPLICATES }
enum  { B_GENERIC_CACHE_SIZE_UNLIMITED = 0 }
enum  { B_FLATTEN_FORM_ACTIVE = 0, B_FLATTEN_FORM_PERSISTENT = 1 }
enum  { B_CALLSTACK_DEPTH = 32 }
enum  {
  B_ATOM_REPORT_FORCE_LONG = 0x0001, B_ATOM_REPORT_FORCE_SHORT = 0x0002, B_ATOM_REPORT_FORCE_SUMMARY = 0x0003, B_ATOM_REPORT_FORCE_MASK = 0x000f,
  B_ATOM_REPORT_REMOVE_HEADER = 0x0010
}
 Flags for SAtom debugging reports. More...
enum  { B_EDIT_VALUE_DATA = 0x00000001 }
 Flags for SValue::LockData(). More...
enum  { B_PROFILE_KEEP_SAMPLES = (1<<0), B_PROFILE_UPLOAD_SAMPLES = (1<<1) }
enum  { B_FILTER_REVERSE_FLAG = SHandler::FILTER_REVERSE_FLAG, B_FILTER_FUTURE_FLAG = SHandler::FILTER_FUTURE_FLAG }
 Flags for SHandler::FilterMessages() and SHandler::RemoveMessages(). More...
enum  { B_GENERIC_CACHE_NEVER_PURGE = 0x00000001, B_GENERIC_CACHE_DONT_ADD = 0x00000002, B_GENERIC_CACHE_DONT_PURGE = 0x00000004 }
enum  { B_ATOM_FIRST_STRONG = 0x0001 }
 Flags passed to SAtom::IncStrongAttempted(). More...
enum  { B_PRINT_VALUE_TYPES = 0x00010000, B_PRINT_CATALOG_CONTENTS = 0x00020000, B_PRINT_BINDER_INTERFACES = 0x00040000, B_PRINT_BINDER_CONTENTS = 0x00080000 }
 Additional flags for PrintToStream(). More...
enum  { B_COUNT_HIGH_PRECISION = (1<<0) }
enum  { B_PERFORMANCE_WEIGHT_EMPTY = 100, B_PERFORMANCE_WEIGHT_LIGHT = 200, B_PERFORMANCE_WEIGHT_MEDIUM = 300, B_PERFORMANCE_WEIGHT_HEAVY = 400 }
enum  binder_error_codes_enum {
  B_BINDER_MISSING_ARG = bndErrMissingArg, B_BINDER_BAD_TYPE = bndErrBadType, B_BINDER_DEAD = bndErrDead, B_BINDER_UNKNOWN_TRANSACT = bndErrUnknownTransact,
  B_BINDER_BAD_TRANSACT = bndErrBadTransact, B_BINDER_TOO_MANY_LOOPERS = bndErrTooManyLoopers, B_BINDER_BAD_INTERFACE = bndErrBadInterface, B_BINDER_UNKNOWN_METHOD = bndErrUnknownMethod,
  B_BINDER_UNKNOWN_PROPERTY = bndErrUnknownProperty, B_BINDER_OUT_OF_STACK = bndErrOutOfStack, B_BINDER_INC_STRONG_FAILED = bndErrIncStrongFailed, B_BINDER_READ_NULL_VALUE = bndErrReadNullValue
}
 Binder error codes. More...
enum  general_error_codes_enum {
  B_NO_MEMORY = sysErrNoFreeRAM, B_BAD_VALUE = sysErrParamErr, B_NOT_ALLOWED = sysErrNotAllowed, B_TIMED_OUT = sysErrTimeout,
  B_BAD_INDEX = sysErrBadIndex, B_BAD_TYPE = sysErrBadType, B_MISMATCHED_VALUES = sysErrMismatchedValues, B_NAME_NOT_FOUND = sysErrNameNotFound,
  B_NAME_IN_USE = sysErrNameInUse, B_CANCELED = sysErrCanceled, B_NO_INIT = sysErrNoInit, B_PERMISSION_DENIED = sysErrPermissionDenied,
  B_BAD_DATA = sysErrBadData, B_DATA_TRUNCATED = sysErrDataTruncated, B_UNSUPPORTED = sysErrUnsupported, B_WOULD_BLOCK = sysErrWouldBlock,
  B_BUSY = sysErrBusy, B_IO_ERROR = sysErrIO, B_DONT_DO_THAT = sysErrDontDoThat, B_BAD_DESIGN_ENCOUNTERED = sysErrBadDesignEncountered,
  B_WEAK_REF_GONE = sysErrWeakRefGone, B_END_OF_DATA = sysErrEndOfData, B_INTERRUPTED = sysErrInterrupted, B_BROKEN_PIPE = sysErrBrokenPipe,
  B_ENTRY_NOT_FOUND = sysErrEntryNotFound, B_ENTRY_EXISTS = sysErrEntryExists, B_NAME_TOO_LONG = sysErrNameTooLong, B_OUT_OF_RANGE = sysErrOutOfRange,
  B_ERROR = -1, B_OK = errNone, B_NO_ERROR = errNone
}
 General error codes. More...
enum  media_error_codes_enum {
  B_MEDIA_FORMAT_MISMATCH = mediaErrFormatMismatch, B_MEDIA_ALREADY_VISITED = mediaErrAlreadyVisited, B_MEDIA_STREAM_EXHAUSTED = mediaErrStreamExhausted, B_MEDIA_ALREADY_CONNECTED = mediaErrAlreadyConnected,
  B_MEDIA_NOT_CONNECTED = mediaErrNotConnected, B_MEDIA_NO_BUFFER_SOURCE = mediaErrNoBufferSource, B_MEDIA_BUFFER_FLOW_MISMATCH = mediaErrBufferFlowMismatch
}
 Media Kit error codes. More...
enum  no_init_t { B_DO_NOT_INITIALIZE = 1 }
 Standard constructor flag to not initialize an object. More...
enum  perf_counter_reg_t { B_COUNT_REGISTER_CYCLES = 0, B_COUNT_REGISTER_A = 1, B_COUNT_REGISTER_B = 2 }
enum  perf_counter_t {
  B_COUNT_ICACHE_MISS = 0, B_COUNT_DATA_STALL = 2, B_COUNT_ITLB_MISS = 3, B_COUNT_DTLB_MISS = 4,
  B_COUNT_BRANCH_INSTRUCTION = 5, B_COUNT_BRANCH_MISPREDICTED = 6, B_COUNT_INSTRUCTION = 7, B_COUNT_DBUFFER_STALL_DURATION = 8,
  B_COUNT_DBUFFER_STALL = 9, B_COUNT_DCACHE_ACCESS = 10, B_COUNT_DCACHE_MISS = 11, B_COUNT_DCACHE_WRITEBACK = 12,
  B_COUNT_PC_CHANGE = 13
}
enum  regexp_error_codes_enum {
  B_REGEXP_UNMATCHED_PARENTHESIS = regexpErrUnmatchedParenthesis, B_REGEXP_TOO_BIG = regexpErrTooBig, B_REGEXP_TOO_MANY_PARENTHESIS = regexpErrTooManyParenthesis, B_REGEXP_JUNK_ON_END = regexpErrJunkOnEnd,
  B_REGEXP_STAR_PLUS_OPERAND_EMPTY = regexpErrStarPlusOneOperandEmpty, B_REGEXP_NESTED_STAR_QUESTION_PLUS = regexpErrNestedStarQuestionPlus, B_REGEXP_INVALID_BRACKET_RANGE = regexpErrInvalidBracketRange, B_REGEXP_UNMATCHED_BRACKET = regexpErrUnmatchedBracket,
  B_REGEXP_INTERNAL_ERROR = regexpErrInternalError, B_REGEXP_QUESTION_PLUS_STAR_FOLLOWS_NOTHING = regexpErrQuestionPlusStarFollowsNothing, B_REGEXP_TRAILING_BACKSLASH = regexpErrTrailingBackslash, B_REGEXP_CORRUPTED_PROGRAM = regexpErrCorruptedProgram,
  B_REGEXP_MEMORY_CORRUPTION = regexpErrMemoryCorruption, B_REGEXP_CORRUPTED_POINTERS = regexpErrCorruptedPointers, B_REGEXP_CORRUPTED_OPCODE = regexpErrCorruptedOpcode
}
 Regular Expression error codes. More...
enum  www_error_codes_enum { B_INVALID_URL = exgErrInvalidURL, B_INVALID_SCHEME = exgErrInvalidScheme }
 WWW error codes. More...

Functions

nsecs_t approx_SysGetRunTime ()
 Optimization for retrieving the current time.
 B_CONST_FLOAT_VALUE (B_1_0_FLOAT, 1.0f,)
 B_CONST_FLOAT_VALUE (B_0_9_FLOAT, 0.9f,)
 B_CONST_FLOAT_VALUE (B_0_8_FLOAT, 0.8f,)
 B_CONST_FLOAT_VALUE (B_0_75_FLOAT, 0.75f,)
 B_CONST_FLOAT_VALUE (B_0_7_FLOAT, 0.7f,)
 B_CONST_FLOAT_VALUE (B_0_6_FLOAT, 0.6f,)
 B_CONST_FLOAT_VALUE (B_0_5_FLOAT, 0.5f,)
 B_CONST_FLOAT_VALUE (B_0_4_FLOAT, 0.4f,)
 B_CONST_FLOAT_VALUE (B_0_3_FLOAT, 0.3f,)
 B_CONST_FLOAT_VALUE (B_0_25_FLOAT, 0.25f,)
 B_CONST_FLOAT_VALUE (B_0_2_FLOAT, 0.2f,)
 B_CONST_FLOAT_VALUE (B_0_1_FLOAT, 0.1f,)
 B_CONST_FLOAT_VALUE (B_0_0_FLOAT, 0.0f,)
 B_CONST_INT32_VALUE (B_10_INT32, 10,)
 B_CONST_INT32_VALUE (B_9_INT32, 9,)
 B_CONST_INT32_VALUE (B_8_INT32, 8,)
 B_CONST_INT32_VALUE (B_7_INT32, 7,)
 B_CONST_INT32_VALUE (B_6_INT32, 6,)
 B_CONST_INT32_VALUE (B_5_INT32, 5,)
 B_CONST_INT32_VALUE (B_4_INT32, 4,)
 B_CONST_INT32_VALUE (B_3_INT32, 3,)
 B_CONST_INT32_VALUE (B_2_INT32, 2,)
 B_CONST_INT32_VALUE (B_1_INT32, 1,)
 B_CONST_INT32_VALUE (B_0_INT32, 0,)
 B_CONST_STRING_VALUE_LARGE (B_VALUE_VALUE,"value",)
 B_CONST_STRING_VALUE_SMALL (B_EMPTY_STRING,"",)
int32_t BCompare (const SValue &v1, const SValue &v2)
int32_t BCompare (const SString &v1, const SString &v2)
template<class TYPE>
void BMoveAfter (SVector< TYPE > *to, SVector< TYPE > *from, size_t count=1)
void BMoveAfter (SAbstractVector *to, SAbstractVector *from, size_t count)
void BMoveAfter (SValue *to, SValue *from, size_t count)
_IMPEXP_SUPPORT void BMoveAfter (SString *to, SString *from, size_t count)
template<class TYPE>
void BMoveAfter (SSortedVector< TYPE > *to, SSortedVector< TYPE > *from, size_t count=1)
void BMoveAfter (SAbstractSortedVector *to, SAbstractSortedVector *from, size_t count)
template<class TYPE>
void BMoveBefore (SVector< TYPE > *to, SVector< TYPE > *from, size_t count=1)
void BMoveBefore (SAbstractVector *to, SAbstractVector *from, size_t count)
void BMoveBefore (SValue *to, SValue *from, size_t count)
_IMPEXP_SUPPORT void BMoveBefore (SString *to, SString *from, size_t count)
template<class TYPE>
void BMoveBefore (SSortedVector< TYPE > *to, SSortedVector< TYPE > *from, size_t count=1)
void BMoveBefore (SAbstractSortedVector *to, SAbstractSortedVector *from, size_t count)
template<class TYPE>
void BSwap (SVector< TYPE > &v1, SVector< TYPE > &v2)
void BSwap (SAbstractVector &v1, SAbstractVector &v2)
void BSwap (SValue &v1, SValue &v2)
void BSwap (SString &v1, SString &v2)
template<class TYPE>
void BSwap (SSortedVector< TYPE > &v1, SSortedVector< TYPE > &v2)
void BSwap (SAbstractSortedVector &v1, SAbstractSortedVector &v2)
template<class KEY, class VALUE>
void BSwap (SKeyedVector< KEY, VALUE > &v1, SKeyedVector< KEY, VALUE > &v2)
INLINE_FNC int cmpxchg32 (volatile int32_t *atom, int32_t *value, int32_t newValue)
 Perform a 32-bit atomic compare and swap.
INLINE_FNC int cmpxchg64 (volatile int64_t *atom, int64_t *value, int64_t newValue)
 Perform a 64-bit atomic compare and swap.
int Compare (const SString *, const SString *)
int Compare (const SString &, const SString &)
status_t create_swappable_value (uint32_t typeCode, void *data, size_t size, SValue *value)
nsecs_t exact_SysGetRunTime ()
 Retrieves exact time and updates approx_SysGetRunTime().
bool get_swappable_data (const SValue &value, void **data, size_t *size)
int ICompare (const SString *, const SString *)
int ICompare (const SString &, const SString &)
void * inplace_realloc (void *, size_t)
 Perform a realloc, but only if it won't change the location of the memory.
bool operator!= (const char *, const SString &)
bool operator< (const char *, const SString &)
_IMPEXP_SUPPORT const sptr<
ITextOutput > & 
operator<< (const sptr< ITextOutput > &io, const SValue &value)
_IMPEXP_SUPPORT const sptr<
ITextOutput > & 
operator<< (const sptr< ITextOutput > &io, const SString &string)
_IMPEXP_SUPPORT const sptr<
ITextOutput > & 
operator<< (const sptr< ITextOutput > &io, const SMessageList &list)
_IMPEXP_SUPPORT const sptr<
ITextOutput > & 
operator<< (const sptr< ITextOutput > &io, const SMessage &message)
const sptr< ITextOutput > & operator<< (const sptr< ITextOutput > &io, const SCallStack &stack)
bool operator<= (const char *, const SString &)
bool operator== (const char *, const SString &)
bool operator> (const char *, const SString &)
bool operator>= (const char *, const SString &)
void palmsource_dec_package_ref ()
void palmsource_inc_package_ref ()
void swap (SValue &x, SValue &y)
void swap (SString &x, SString &y)

Variables

const static_bool_value B_FALSE_BOOL = { B_PACK_SMALL_TYPE(B_BOOL_TYPE, sizeof(int8_t)), false }
const static_small_value B_NULL_VALUE = { B_PACK_SMALL_TYPE(B_NULL_TYPE, 0), "" }
const static_bool_value B_TRUE_BOOL = { B_PACK_SMALL_TYPE(B_BOOL_TYPE, sizeof(int8_t)), true }
const static_small_value B_UNDEFINED_VALUE = { B_UNDEFINED_TYPE, "" }
const static_small_value B_WILD_VALUE = { B_PACK_SMALL_TYPE(B_WILD_TYPE, 0), "" }
const int32_t kSubExpressionMax = 10


Define Documentation

#define B_0_0_FLOAT   B_0_0_FLOAT
 

#define B_0_1_FLOAT   B_0_1_FLOAT
 

#define B_0_25_FLOAT   B_0_25_FLOAT
 

#define B_0_2_FLOAT   B_0_2_FLOAT
 

#define B_0_3_FLOAT   B_0_3_FLOAT
 

#define B_0_4_FLOAT   B_0_4_FLOAT
 

#define B_0_5_FLOAT   B_0_5_FLOAT
 

#define B_0_6_FLOAT   B_0_6_FLOAT
 

#define B_0_75_FLOAT   B_0_75_FLOAT
 

#define B_0_7_FLOAT   B_0_7_FLOAT
 

#define B_0_8_FLOAT   B_0_8_FLOAT
 

#define B_0_9_FLOAT   B_0_9_FLOAT
 

#define B_0_INT32   B_0_INT32
 

#define B_10_INT32   B_10_INT32
 

#define B_1_0_FLOAT   B_1_0_FLOAT
 

#define B_1_INT32   B_1_INT32
 

#define B_2_INT32   B_2_INT32
 

#define B_3_INT32   B_3_INT32
 

#define B_4_INT32   B_4_INT32
 

#define B_5_INT32   B_5_INT32
 

#define B_6_INT32   B_6_INT32
 

#define B_7_INT32   B_7_INT32
 

#define B_8_INT32   B_8_INT32
 

#define B_9_INT32   B_9_INT32
 

#define B_CONST_FLOAT_VALUE ident,
val,
prefix   ) 
 

Value:

const static_float_value prefix##ident = {                          \
        B_PACK_SMALL_TYPE(B_FLOAT_TYPE, sizeof(float)), val         \
    };                                                                  \
Convenience macro for making a static SValue containing a float.

#define B_CONST_INT32_VALUE ident,
val,
prefix   ) 
 

Value:

const static_int32_value prefix##ident = {                          \
        B_PACK_SMALL_TYPE(B_INT32_TYPE, sizeof(int32_t)), val           \
    };                                                                  \
Convenience macro for making a static SValue containing an int32_t.

#define B_CONST_STRING_VALUE_LARGE ident,
string,
prefix   ) 
 

Value:

const struct {                                                      \
        STRING_ASSERT(sizeof(string)>4);                                \
        SSharedBuffer::inc_ref_func incFunc;                            \
        SSharedBuffer::dec_ref_func decFunc;                            \
        int32_t     users;                                              \
        size_t      length;                                             \
        char        data[PADDED_STRING_LENGTH(string)];                 \
    } ident##str = {                                                    \
        &palmsource_inc_package_ref,                                    \
        &palmsource_dec_package_ref,                                    \
        B_STATIC_USERS,                                                 \
        sizeof(string)<<B_BUFFER_LENGTH_SHIFT, string                   \
    };                                                                  \
    const static_large_string_value prefix##ident = {                   \
        B_PACK_LARGE_TYPE(B_STRING_TYPE), &ident##str.users,            \
        &ident##str.data                                                \
    };                                                                  \
Convenience macro for making a static SValue containing a string of 5 or more (including the terminating \0) characters.

#define B_CONST_STRING_VALUE_SMALL ident,
string,
prefix   ) 
 

Value:

const struct {                                                      \
        STRING_ASSERT(sizeof(string)<=4);                               \
        SSharedBuffer::inc_ref_func incFunc;                            \
        SSharedBuffer::dec_ref_func decFunc;                            \
        int32_t     users;                                              \
        size_t      length;                                             \
        char        data[PADDED_STRING_LENGTH(string)];                 \
    } ident##str = {                                                    \
        &palmsource_inc_package_ref,                                    \
        &palmsource_dec_package_ref,                                    \
        B_STATIC_USERS,                                                 \
        sizeof(string)<<B_BUFFER_LENGTH_SHIFT, string                   \
    };                                                                  \
    const static_small_string_value prefix##ident = {                   \
        B_PACK_SMALL_TYPE(B_STRING_TYPE, sizeof(string)), string,       \
        &ident##str.data                                                \
    };                                                                  \
Convenience macro for making a static SValue containing a string of 4 or fewer (including the terminating \0) characters.

#define B_DISPLAY_PRIORITY   B_DISPLAY_PRIORITY
 

#define B_FORMAT_INT64   "I64"
 

#define B_INFINITE_TIMEOUT   B_INFINITE_TIMEOUT
 

#define B_JPARKS_BROKE_IT   B_BROKEN_PIPE
 

#define B_LOW_PRIORITY   B_LOW_PRIORITY
 

#define B_MAKE_INT64 _x   )     _x##LL
 

#define B_MAKE_UINT64 _x   )     _x##ULL
 

#define B_NORMAL_PRIORITY   B_NORMAL_PRIORITY
 

#define B_OS_NAME_LENGTH   B_OS_NAME_LENGTH
 

#define B_PERFORMANCE_NODE weight,
name   ) 
 

#define B_REAL_TIME_DISPLAY_PRIORITY   B_REAL_TIME_DISPLAY_PRIORITY
 

#define B_REAL_TIME_PRIORITY   B_REAL_TIME_PRIORITY
 

#define B_STATIC_FLOAT_VALUE ident,
val,
prefix   ) 
 

Value:

static const static_float_value prefix##ident = {                   \
        B_PACK_SMALL_TYPE(B_FLOAT_TYPE, sizeof(float)), val         \
    };                                                                  \
Convenience macro for making a static SValue containing a float.

#define B_STATIC_INT32_VALUE ident,
val,
prefix   ) 
 

Value:

static const static_int32_value prefix##ident = {                   \
        B_PACK_SMALL_TYPE(B_INT32_TYPE, sizeof(int32_t)), val           \
    };                                                                  \
Convenience macro for making a static SValue containing an int32_t.

#define B_STATIC_STRING_VALUE_LARGE ident,
string,
prefix   ) 
 

Value:

static const struct {                                               \
        STRING_ASSERT(sizeof(string)>4);                                \
        SSharedBuffer::inc_ref_func incFunc;                            \
        SSharedBuffer::dec_ref_func decFunc;                            \
        int32_t     users;                                              \
        size_t      length;                                             \
        char        data[PADDED_STRING_LENGTH(string)];                 \
    } ident##str = {                                                    \
        &palmsource_inc_package_ref,                                    \
        &palmsource_dec_package_ref,                                    \
        B_STATIC_USERS,                                                 \
        sizeof(string)<<B_BUFFER_LENGTH_SHIFT, string                   \
    };                                                                  \
    static const static_large_string_value prefix##ident = {            \
        B_PACK_LARGE_TYPE(B_STRING_TYPE), &ident##str.users,            \
        &ident##str.data                                                \
    };                                                                  \
Convenience macro for making a static SValue containing a string of 5 or more (including the terminating \0) characters.

#define B_STATIC_STRING_VALUE_SMALL ident,
string,
prefix   ) 
 

Value:

static const struct {                                               \
        STRING_ASSERT(sizeof(string)<=4);                               \
        SSharedBuffer::inc_ref_func incFunc;                            \
        SSharedBuffer::dec_ref_func decFunc;                            \
        int32_t     users;                                              \
        size_t      length;                                             \
        char        data[PADDED_STRING_LENGTH(string)];                 \
    } ident##str = {                                                    \
        &palmsource_inc_package_ref,                                    \
        &palmsource_dec_package_ref,                                    \
        B_STATIC_USERS,                                                 \
        sizeof(string)<<B_BUFFER_LENGTH_SHIFT, string                   \
    };                                                                  \
    static const static_small_string_value prefix##ident = {            \
        B_PACK_SMALL_TYPE(B_STRING_TYPE, sizeof(string)), string,       \
        &ident##str.data                                                \
    };                                                                  \
Convenience macro for making a static SValue containing a string of 4 or fewer (including the terminating \0) characters.

#define B_TRANSACTION_PRIORITY   B_NORMAL_PRIORITY
 

#define B_URGENT_DISPLAY_PRIORITY   B_URGENT_DISPLAY_PRIORITY
 

#define B_URGENT_PRIORITY   B_URGENT_PRIORITY
 

#define B_UTF8_BULLET   "\xE2\x80\xA2"
 

#define B_UTF8_COPYRIGHT   "\xC2\xA9"
 

#define B_UTF8_DOUBLE_CLOSE_QUOTE   "\xE2\x80\x9D"
 

#define B_UTF8_DOUBLE_OPEN_QUOTE   "\xE2\x80\x9C"
 

#define B_UTF8_ELLIPSIS   "\xE2\x80\xA6"
 

#define B_UTF8_HIROSHI   "\xE5\xBC\x98"
 

#define B_UTF8_REGISTERED   "\xC2\xAE"
 

#define B_UTF8_SINGLE_CLOSE_QUOTE   "\xE2\x80\x99"
 

#define B_UTF8_SINGLE_OPEN_QUOTE   "\xE2\x80\x98"
 

#define B_UTF8_SMILING_FACE_BLACK   "\xE2\x98\xBB"
 

#define B_UTF8_SMILING_FACE_WHITE   "\xE2\x98\xBA"
 

#define B_UTF8_TRADEMARK   "\xE2\x84\xA2"
 

#define LIBBE2   1
 

#define PADDED_STRING_LENGTH string   )     sizeof(string)+((4-(sizeof(string)%4)) & 0x3)
 

#define STRING_ASSERT  )     inline void string_assert() { STATIC_ASSERT(x); }
 

#define SUPPORTS_ATOM_DEBUG   1
 


Typedef Documentation

typedef int32_t(* b_demangle_func)(const char *mangled_name, char *unmangled_name, size_t buffersize)
 

typedef SHandler BHandler
 

typedef const static_bool_value value_cbool
 

typedef const static_float_value value_cfloat
 

typedef const static_int32_value value_cint32
 

typedef const static_large_string_value value_clrg
 

typedef const static_small_string_value value_csml
 


Enumeration Type Documentation

anonymous enum
 

Flags for SValue operations.

Enumerator:
B_NO_VALUE_FLATTEN  don't restructure to avoid complex keys?
B_NO_VALUE_RECURSION  don't traverse into nested values?

anonymous enum
 

Standard PrintToStream() flags.

Enumerator:
B_PRINT_STREAM_HEADER  Also print type header.

anonymous enum
 

Enumerator:
B_UTF32_ELLIPSIS 
B_UTF32_BULLET 
B_UTF32_SINGLE_OPEN_QUOTE 
B_UTF32_SINGLE_CLOSE_QUOTE 
B_UTF32_DOUBLE_OPEN_QUOTE 
B_UTF32_DOUBLE_CLOSE_QUOTE 
B_UTF32_COPYRIGHT 
B_UTF32_REGISTERED 
B_UTF32_TRADEMARK 
B_UTF32_SMILING_FACE_WHITE 
B_UTF32_SMILING_FACE_BLACK 

anonymous enum
 

Enumerator:
B_STOP_WATCH_SILENT 
B_STOP_WATCH_NESTING 
B_STOP_WATCH_CLEAR_CACHE 
B_STOP_WATCH_RAW 
B_STOP_WATCH_HIGH_PRIORITY 
B_STOP_WATCH_QUANTIFY 
B_STOP_WATCH_NO_TIME 

anonymous enum
 

Special bits in the SSharedBuffer user count and length fields.

Note that these magic values are the LOW bits. This is to help code generation of THUMB instructions. It means that retrieving the real value requires a shift instead of a mask.

Enumerator:
B_BUFFER_USERS_SHIFT  Amount by which to shift user count.
B_BUFFER_LENGTH_SHIFT  Amount by which to shift length.
B_STATIC_USERS  Flag indicating SSharedBuffer is in the static text section of an executable.

This is part of the reference count of the shared memory buffer.

B_POOLED_USERS  Flag indicating SSharedBuffer is in the buffer pool.

This is part of the reference count of the shared memory buffer.

B_EXTENDED_BUFFER  Flag indicating SSharedBuffer has additional meta-data before the buffer.

This is part of the length of the shared memory buffer.

anonymous enum
 

Enumerator:
B_ANY_WHAT 

anonymous enum
 

Enumerator:
B_KEY_DOWN 
B_KEY_UP 
B_KEY_HELD 
B_STRING_INPUT 
B_UNMAPPED_KEY_DOWN 
B_UNMAPPED_KEY_UP 
B_FIND_HAPPENING_SOMEWHERE 
B_INVALIDATE 
B_MODIFIERS_CHANGED 
B_PEN_DOWN 
B_PEN_MOVED 
B_PEN_UP 
B_PEN_MOVED_WHILE_UP 
B_PEN_DRAGGED 
B_PEN_EXITED 
B_PEN_DROPPED 
B_MOUSE_WHEEL_CHANGED 
B_NULL_EVENT 
B_DEBUG_EVENT 
B_SPY_EVENT 
B_SET_TIMEOUTS_EVENT 
B_PLAYBACK_EVENT 
B_HIGHLEVEL_EVENT 
B_DISCOVER 
B_STOP_DISCOVERY 
B_VIEW_PROPERTIES 
B_STOP_LISTENING 
bmsgEnqueuePointerEvent 
bmsgEnqueueKeyEvent 

anonymous enum
 

Enumerator:
B_POST_REMOVE_DUPLICATES 
Deprecated:
Use SHandler::POST_REMOVE_DUPLICATES instead.
B_POST_KEEP_UNIQUE 
Deprecated:
Use SHandler::POST_KEEP_UNIQUE instead.
B_POST_UNIQUE_MESSAGE 
Deprecated:
Synonym for B_POST_REMOVE_DUPLICATES

anonymous enum
 

Enumerator:
B_GENERIC_CACHE_SIZE_UNLIMITED  pass to constructor so the cache uncontrolably grows, until system ressources are exhausted

anonymous enum
 

Enumerator:
B_FLATTEN_FORM_ACTIVE 
B_FLATTEN_FORM_PERSISTENT 

anonymous enum
 

Enumerator:
B_CALLSTACK_DEPTH 

anonymous enum
 

Flags for SAtom debugging reports.

Enumerator:
B_ATOM_REPORT_FORCE_LONG  Print full stack crawls.
B_ATOM_REPORT_FORCE_SHORT  Print one-line stack crawls.
B_ATOM_REPORT_FORCE_SUMMARY  Print only holder summary.
B_ATOM_REPORT_FORCE_MASK  Mask for report type.
B_ATOM_REPORT_REMOVE_HEADER  Don't print atom header.

anonymous enum
 

Flags for SValue::LockData().

Enumerator:
B_EDIT_VALUE_DATA  keep existing data as-is.

anonymous enum
 

Enumerator:
B_PROFILE_KEEP_SAMPLES 
B_PROFILE_UPLOAD_SAMPLES 

anonymous enum
 

Flags for SHandler::FilterMessages() and SHandler::RemoveMessages().

Enumerator:
B_FILTER_REVERSE_FLAG 
Deprecated:
Use SHandler::FILTER_REVERSE_FLAG instead.
B_FILTER_FUTURE_FLAG 
Deprecated:
Use SHandler::FILTER_FUTURE_FLAG instead.

anonymous enum
 

Enumerator:
B_GENERIC_CACHE_NEVER_PURGE  pass to Add() so the added item will never be purged
B_GENERIC_CACHE_DONT_ADD  pass to Add() so this item is not added if there is no more space (cache size will not grow)
B_GENERIC_CACHE_DONT_PURGE  pass to Add() so the cache is not purged if the item is bigger than the cache size

anonymous enum
 

Flags passed to SAtom::IncStrongAttempted().

Enumerator:
B_ATOM_FIRST_STRONG  This is the first strong reference ever.

anonymous enum
 

Additional flags for PrintToStream().

Enumerator:
B_PRINT_VALUE_TYPES  Print full type information?
B_PRINT_CATALOG_CONTENTS  Print contents of a context catalog?
B_PRINT_BINDER_INTERFACES  Print interfaces implemented by a binder?
B_PRINT_BINDER_CONTENTS  Print properties in a binder?

anonymous enum
 

Enumerator:
B_COUNT_HIGH_PRECISION 

anonymous enum
 

Enumerator:
B_PERFORMANCE_WEIGHT_EMPTY 
B_PERFORMANCE_WEIGHT_LIGHT 
B_PERFORMANCE_WEIGHT_MEDIUM 
B_PERFORMANCE_WEIGHT_HEAVY 

enum binder_error_codes_enum
 

Binder error codes.

Enumerator:
B_BINDER_MISSING_ARG 
B_BINDER_BAD_TYPE 
Todo:
Should this go away and just use B_BAD_TYPE?
B_BINDER_DEAD 
B_BINDER_UNKNOWN_TRANSACT 
B_BINDER_BAD_TRANSACT 
B_BINDER_TOO_MANY_LOOPERS 
B_BINDER_BAD_INTERFACE 
B_BINDER_UNKNOWN_METHOD 
B_BINDER_UNKNOWN_PROPERTY 
B_BINDER_OUT_OF_STACK 
B_BINDER_INC_STRONG_FAILED 
B_BINDER_READ_NULL_VALUE 

enum general_error_codes_enum
 

General error codes.

Enumerator:
B_NO_MEMORY 
B_BAD_VALUE  This error means that the given parameters made no sense. You will usually want to use a more specific error code than this such as sysErrBadIndex, sysErrBadType, sysErrMismatchedValues, or sysErrBadData.
B_NOT_ALLOWED  Generally you should use the more specific errors sysErrUnsupported or sysErrPermissionDenied.
B_TIMED_OUT 
B_BAD_INDEX 
B_BAD_TYPE 
B_MISMATCHED_VALUES 
B_NAME_NOT_FOUND  This error indicates that a plain name lookup did not succeed. You should use instead sysErrEntryNotFound for a lookup failure on a filesystem or other structured storage.
B_NAME_IN_USE  This error indicates that there is already a plain item with the requested name. You should use instead sysErrEntryExists for a name that already exists on a filesystem or other structured storage.
B_CANCELED 
B_NO_INIT  An operation on object could not be completed because that object has not been initialized. This error should only be returned when an object needs something besides just construction to be initialized. If initializion was attempted but could not be done, another more specific error should be returned.
B_PERMISSION_DENIED  This error specifically indicates that the requested operation is possible, you simply aren't to do it. Compare with sysErrEntryNotFound (the thing being operated on does not exist) and sysErrUnsupported (nobody can do what is being asked).
B_BAD_DATA  This indicates that the contents of structured input data is corrupt. It is used when the parameters are valid (unlike sysErrParamErr and friends), but the data they reference is bad. For example, calling a function to read a PNG image, where the image data is corrupt.
B_DATA_TRUNCATED  Some data was returned, but it is not all that was available and/or expected.
B_UNSUPPORTED  The implementation you are calling on does not support what was asked. Compare with sysErrPermissionDenied.
B_WOULD_BLOCK 
B_BUSY 
B_IO_ERROR  Very generic input/output error. Generally shouldn't be used, instead preferring more specific errors such as sysErrTimeout, sysErrCancelled, sysErrPermissionDenied, sysErrBrokenPipe, sysErrWouldBlock, sysErrBusy, sysErrInterrupted, etc.
B_DONT_DO_THAT 
B_BAD_DESIGN_ENCOUNTERED 
B_WEAK_REF_GONE 
B_END_OF_DATA  This is a pseudo-error, returned by iterators and other things that let you step through there data. It is returned when requesting more data when you have reached the end of the iterator.
B_INTERRUPTED 
B_BROKEN_PIPE 
B_ENTRY_NOT_FOUND  For example, trying to open a file that does not exist. Compare with sysErrPermissionDenied.
B_ENTRY_EXISTS  You have attempted to perform an operation that would create an entry with a specific name, where there is already such an entry.
B_NAME_TOO_LONG 
B_OUT_OF_RANGE 
B_ERROR  Very generic error code. Do not use!
B_OK 
B_NO_ERROR 

enum media_error_codes_enum
 

Media Kit error codes.

Enumerator:
B_MEDIA_FORMAT_MISMATCH 
B_MEDIA_ALREADY_VISITED 
B_MEDIA_STREAM_EXHAUSTED 
B_MEDIA_ALREADY_CONNECTED 
B_MEDIA_NOT_CONNECTED 
B_MEDIA_NO_BUFFER_SOURCE 
B_MEDIA_BUFFER_FLOW_MISMATCH 

enum no_init_t
 

Standard constructor flag to not initialize an object.

Enumerator:
B_DO_NOT_INITIALIZE 

enum perf_counter_reg_t
 

Enumerator:
B_COUNT_REGISTER_CYCLES 
B_COUNT_REGISTER_A 
B_COUNT_REGISTER_B 

enum perf_counter_t
 

Enumerator:
B_COUNT_ICACHE_MISS 
B_COUNT_DATA_STALL 
B_COUNT_ITLB_MISS 
B_COUNT_DTLB_MISS 
B_COUNT_BRANCH_INSTRUCTION 
B_COUNT_BRANCH_MISPREDICTED 
B_COUNT_INSTRUCTION 
B_COUNT_DBUFFER_STALL_DURATION 
B_COUNT_DBUFFER_STALL 
B_COUNT_DCACHE_ACCESS 
B_COUNT_DCACHE_MISS 
B_COUNT_DCACHE_WRITEBACK 
B_COUNT_PC_CHANGE 

enum regexp_error_codes_enum
 

Regular Expression error codes.

Enumerator:
B_REGEXP_UNMATCHED_PARENTHESIS 
B_REGEXP_TOO_BIG 
B_REGEXP_TOO_MANY_PARENTHESIS 
B_REGEXP_JUNK_ON_END 
B_REGEXP_STAR_PLUS_OPERAND_EMPTY 
B_REGEXP_NESTED_STAR_QUESTION_PLUS 
B_REGEXP_INVALID_BRACKET_RANGE 
B_REGEXP_UNMATCHED_BRACKET 
B_REGEXP_INTERNAL_ERROR 
B_REGEXP_QUESTION_PLUS_STAR_FOLLOWS_NOTHING 
B_REGEXP_TRAILING_BACKSLASH 
B_REGEXP_CORRUPTED_PROGRAM 
B_REGEXP_MEMORY_CORRUPTION 
B_REGEXP_CORRUPTED_POINTERS 
B_REGEXP_CORRUPTED_OPCODE 

enum www_error_codes_enum
 

WWW error codes.

Enumerator:
B_INVALID_URL 
B_INVALID_SCHEME 


Function Documentation

nsecs_t approx_SysGetRunTime  ) 
 

Optimization for retrieving the current time.

B_CONST_FLOAT_VALUE B_1_0_FLOAT  ,
1.  0f
 

B_CONST_FLOAT_VALUE B_0_9_FLOAT  ,
0.  9f
 

B_CONST_FLOAT_VALUE B_0_8_FLOAT  ,
0.  8f
 

B_CONST_FLOAT_VALUE B_0_75_FLOAT  ,
0.  75f
 

B_CONST_FLOAT_VALUE B_0_7_FLOAT  ,
0.  7f
 

B_CONST_FLOAT_VALUE B_0_6_FLOAT  ,
0.  6f
 

B_CONST_FLOAT_VALUE B_0_5_FLOAT  ,
0.  5f
 

B_CONST_FLOAT_VALUE B_0_4_FLOAT  ,
0.  4f
 

B_CONST_FLOAT_VALUE B_0_3_FLOAT  ,
0.  3f
 

B_CONST_FLOAT_VALUE B_0_25_FLOAT  ,
0.  25f
 

B_CONST_FLOAT_VALUE B_0_2_FLOAT  ,
0.  2f
 

B_CONST_FLOAT_VALUE B_0_1_FLOAT  ,
0.  1f
 

B_CONST_FLOAT_VALUE B_0_0_FLOAT  ,
0.  0f
 

B_CONST_INT32_VALUE B_10_INT32  ,
10 
 

B_CONST_INT32_VALUE B_9_INT32  ,
 

B_CONST_INT32_VALUE B_8_INT32  ,
 

B_CONST_INT32_VALUE B_7_INT32  ,
 

B_CONST_INT32_VALUE B_6_INT32  ,
 

B_CONST_INT32_VALUE B_5_INT32  ,
 

B_CONST_INT32_VALUE B_4_INT32  ,
 

B_CONST_INT32_VALUE B_3_INT32  ,
 

B_CONST_INT32_VALUE B_2_INT32  ,
 

B_CONST_INT32_VALUE B_1_INT32  ,
 

B_CONST_INT32_VALUE B_0_INT32  ,
 

B_CONST_STRING_VALUE_LARGE B_VALUE_VALUE  ,
"value" 
 

B_CONST_STRING_VALUE_SMALL B_EMPTY_STRING  ,
"" 
 

int32_t BCompare const SValue v1,
const SValue v2
[inline]
 

int32_t BCompare const SString v1,
const SString v2
[inline]
 

void BMoveAfter SVector< TYPE > *  to,
SVector< TYPE > *  from,
size_t  count = 1
[inline]
 

void BMoveAfter SAbstractVector to,
SAbstractVector from,
size_t  count
[inline]
 

void BMoveAfter SValue to,
SValue from,
size_t  count
[inline]
 

_IMPEXP_SUPPORT void BMoveAfter SString to,
SString from,
size_t  count
 

void BMoveAfter SSortedVector< TYPE > *  to,
SSortedVector< TYPE > *  from,
size_t  count = 1
[inline]
 

void BMoveAfter SAbstractSortedVector to,
SAbstractSortedVector from,
size_t  count
[inline]
 

void BMoveBefore SVector< TYPE > *  to,
SVector< TYPE > *  from,
size_t  count = 1
[inline]
 

void BMoveBefore SAbstractVector to,
SAbstractVector from,
size_t  count
[inline]
 

void BMoveBefore SValue to,
SValue from,
size_t  count
[inline]
 

_IMPEXP_SUPPORT void BMoveBefore SString to,
SString from,
size_t  count
 

void BMoveBefore SSortedVector< TYPE > *  to,
SSortedVector< TYPE > *  from,
size_t  count = 1
[inline]
 

void BMoveBefore SAbstractSortedVector to,
SAbstractSortedVector from,
size_t  count
[inline]
 

void BSwap SVector< TYPE > &  v1,
SVector< TYPE > &  v2
[inline]
 

void BSwap SAbstractVector v1,
SAbstractVector v2
[inline]
 

void BSwap SValue v1,
SValue v2
[inline]
 

void BSwap SString v1,
SString v2
[inline]
 

void BSwap SSortedVector< TYPE > &  v1,
SSortedVector< TYPE > &  v2
[inline]
 

void BSwap SAbstractSortedVector v1,
SAbstractSortedVector v2
[inline]
 

void BSwap SKeyedVector< KEY, VALUE > &  v1,
SKeyedVector< KEY, VALUE > &  v2
[inline]
 

INLINE_FNC int cmpxchg32 volatile int32_t *  atom,
int32_t *  value,
int32_t  newValue
 

Perform a 32-bit atomic compare and swap.

If the current value of *atom is the same as the current value of *value, atomically sets *atom to newValue and returns TRUE. Otherwise, sets *value to the current value of *atom and returns FALSE.

INLINE_FNC int cmpxchg64 volatile int64_t *  atom,
int64_t *  value,
int64_t  newValue
 

Perform a 64-bit atomic compare and swap.

If the current value of *atom is the same as the current value of *value, atomically sets *atom to newValue and returns TRUE. Otherwise, sets *value to the current value of *atom and returns FALSE.

int Compare const SString ,
const SString
 

int Compare const SString ,
const SString
 

status_t create_swappable_value uint32_t  typeCode,
void *  data,
size_t  size,
SValue value
 

nsecs_t exact_SysGetRunTime  ) 
 

Retrieves exact time and updates approx_SysGetRunTime().

bool get_swappable_data const SValue value,
void **  data,
size_t *  size
 

int ICompare const SString ,
const SString
 

int ICompare const SString ,
const SString
 

void* inplace_realloc void *  ,
size_t 
 

Perform a realloc, but only if it won't change the location of the memory.

This function is needed by some parts of the Support Kit. If your platform doesn't have it, you can just implement it to return NULL.

Note:
In the Rome branch, this is an inline function here, while in other branches it is implemented in WindowsComaptibility.cpp and LinuxCompat.cpp. The latter is probably more correct.

bool operator!= const char *  ,
const SString
[inline]
 

bool operator< const char *  ,
const SString
[inline]
 

_IMPEXP_SUPPORT const sptr<ITextOutput>& operator<< const sptr< ITextOutput > &  io,
const SValue value
 

_IMPEXP_SUPPORT const sptr<ITextOutput>& operator<< const sptr< ITextOutput > &  io,
const SString string
 

_IMPEXP_SUPPORT const sptr<ITextOutput>& operator<< const sptr< ITextOutput > &  io,
const SMessageList list
 

_IMPEXP_SUPPORT const sptr<ITextOutput>& operator<< const sptr< ITextOutput > &  io,
const SMessage message
 

const sptr<ITextOutput>& operator<< const sptr< ITextOutput > &  io,
const SCallStack stack
[inline]
 

bool operator<= const char *  ,
const SString
[inline]
 

bool operator== const char *  ,
const SString
[inline]
 

bool operator> const char *  ,
const SString
[inline]
 

bool operator>= const char *  ,
const SString
[inline]
 

void palmsource_dec_package_ref  ) 
 

void palmsource_inc_package_ref  ) 
 

void swap SValue x,
SValue y
[inline]
 

void swap SString x,
SString y
[inline]
 


Variable Documentation

const static_bool_value B_FALSE_BOOL = { B_PACK_SMALL_TYPE(B_BOOL_TYPE, sizeof(int8_t)), false }
 

const static_small_value B_NULL_VALUE = { B_PACK_SMALL_TYPE(B_NULL_TYPE, 0), "" }
 

const static_bool_value B_TRUE_BOOL = { B_PACK_SMALL_TYPE(B_BOOL_TYPE, sizeof(int8_t)), true }
 

const static_small_value B_UNDEFINED_VALUE = { B_UNDEFINED_TYPE, "" }
 

const static_small_value B_WILD_VALUE = { B_PACK_SMALL_TYPE(B_WILD_TYPE, 0), "" }
 

const int32_t kSubExpressionMax = 10