oasys Namespace Reference


Detailed Description

Namespace for the oasys library of system support classes.


Classes

struct  Bluetooth
class  Batostr
class  BluetoothClient
 Base class that unifies the BluetoothSocket and IOClient interfaces. More...
class  BluetoothInquiry
class  BluetoothServiceDiscoveryClient
 Connect to remote Bluetooth device and query its SDP server for DTN service. More...
class  BluetoothServiceRegistration
class  BluetoothServer
 Wrapper class for a bluetooth server socket. More...
class  BluetoothServerThread
 Simple class that implements a thread of control that loops, blocking on accept(), and issuing the accepted() callback when new connections arrive. More...
class  BluetoothSocket
 BluetoothSocket is a base class that wraps around a Bluetooth socket. More...
class  RFCOMMClient
class  RFCOMMServer
class  RFCOMMServerThread
struct  DebugDumpBuf
class  Breaker
class  FatalSignals
class  Formatter
 This class is intended to be used with a modified implementation of snprintf/vsnprintf, defined in Formatter.cc. More...
class  InlineFormatter
 In some cases (such as templated data structures) where we can't or don't want to use the standard Formatter() virtual callback, this provides an alternate mechanism to print out a string for an object. More...
struct  level2str_t
class  Log
 Dynamic Log system implementation. More...
class  LogConfigParser
class  Logger
 Many objects will, at constructor time, format a log target and then use it throughout the code implementation -- the Logger class encapsulates this common behavior. More...
class  LogSink
class  ForkSink
class  FileLogSink
class  RingBufferLogSink
class  StackTrace
class  BufferedInput
 Wrapper class for an IOClient that includes an in-memory buffer for reading and/or writing. More...
class  BufferedOutput
class  FdIOClient
 IOClient which uses pure file descriptors. More...
class  FileIOClient
 IOClient derivative for real files -- not sockets. More...
class  FileUtils
 Abstraction class for some stateless file operations such as probing to see if a file and/or directory exists, is readable, etc. More...
class  COWIoVec
 Small helper class which is a copy-on-write iovec and also handle adjustment for consumption of the bytes in the iovec. More...
struct  IO
class  IOMonitor
 Class used to intercept I/O operations for monitoring purposes. More...
class  IOHandlerBase
 Virtually inherited base class for holding common elements of an I/O handling class. More...
class  IOClient
 Abstract interface for any stream type output channel. More...
class  IPClient
 Base class that unifies the IPSocket and IOClient interfaces. More...
class  IPSocket
 IPSocket is a base class that wraps a network socket. More...
class  MmapFile
 Simple wrapper class for a memory-mapped file that encapsulates the file descriptor and the memory mapping. More...
class  Intoa
 Class used to allow for safe concurrent calls to _intoa within an argument list. More...
class  PrettyPrintBuf
 Class for generating pretty printed text. More...
class  RateLimitedSocket
 The RateLimitedSocket class contains a socket class and a token bucket and provides an interface to send data only if there is enough space to send it out in. More...
class  TCPClient
 Wrapper class for a tcp client socket. More...
class  TCPServer
 Wrapper class for a tcp server socket. More...
class  TCPServerThread
 Simple class that implements a thread of control that loops, blocking on accept(), and issuing the accepted() callback when new connections arrive. More...
class  UDPClient
 Wrapper class for a udp client socket. More...
class  BufferedSerializeAction
 Common base class for Marshal and Unmarshal that manages the flat buffer. More...
class  KeyMarshal
 Marshaller for key-type objects. More...
class  KeyUnmarshal
 Unmarshaller for keys. More...
class  Marshal
 Marshal is a SerializeAction that flattens an object into a byte stream. More...
class  Unmarshal
 Unmarshal is a SerializeAction that constructs an object's internals from a flat byte stream. More...
class  MarshalSize
 MarshalSize is a SerializeAction that determines the buffer size needed to run a Marshal action over the object. More...
class  MarshalCRC
 MarshalCRC: compute the CRC32 checksum of the bits. More...
class  MarshalCopy
 MarshalCopy: Copy one object to another using Marshal/Unmarshal. More...
class  SerializableVector
 Utility class to implement a serializable std::vector that contains elements which must also be SerializableObjects. More...
class  Serialize
 Empty base class that's just used for name scoping of the action and context enumerated types. More...
class  Builder
 Empty class used by various object factories (e.g. More...
class  SerializableObject
 Inherit from this class to add serialization capability to a class. More...
class  SerializeAction
 The SerializeAction is responsible for implementing callback functions for all the basic types. More...
class  SerializeStream
class  MemoryStream
class  IOStream
class  WriteBase64Stream
class  SQLImplementation
 Class to encapsulate particular database specific operations. More...
class  SQLQuery
 SQLQuery implements common functionality used when building up a SQL query string. More...
class  SQLInsert
 SQLInsert is a SerializeAction that builts up a SQL "INSERT INTO" query statement based on the values in an object. More...
class  SQLUpdate
 SQLUpdate is a SerializeAction that builts up a SQL "UPDATE" query statement based on the values in an object. More...
class  SQLTableFormat
 SQLTableFormat is a SerializeAction that builts up a SQL "CREATE TABLE" query statement based on the values in an object. More...
class  SQLExtract
 SQLExtract is a SerializeAction that constructs an object's internals from the results of a SQL "select" statement. More...
class  StringSerialize
 StringSerialize is a SerializeAction that "flattens" the object into a oasys StringBuffer;. More...
class  TclListSerialize
 TclListSerialize is a SerializeAction that marshals an object into a tcl list of alternating name/object pairs. More...
class  TextMarshal
class  TextUnmarshal
class  TypeCollectionHelper
 Generic base class needed to stuff the templated class into a map. More...
class  TypeCollection
 Generic base class for templated type collections. More...
class  TypeCollectionInstance
 This templated type collection accomplishes severals things:. More...
class  TypeCollectionDispatch
 Instantiate a template with the specific class and create a static instance of this to register the class. More...
class  IntShim
class  UIntShim
class  StringShim
class  NullStringShim
class  ByteBufShim
struct  PrefixAdapter
class  XMLMarshal
 XMLMarshal implements common functionality for building up an XML document. More...
class  XMLUnmarshal
 Interface designed to be implemented by third-party XML parsers. More...
class  BasicSMTPMsg
class  BasicSMTPSender
class  BasicSMTPHandler
class  SMTP
class  SMTPSender
class  SMTPHandler
class  SMTPClient
 Class to wrap a client socket to an smtp server. More...
class  SMTPFdClient
 Debugging class to provide basically the same functionality only using a pair of file descriptors, not a socket. More...
class  SMTPServer
 Class to implement an SMTP server which creates a thread and an SMTPHandler (using the factory interface) per connection. More...
class  SMTPHandlerFactory
 Simple interface for a class to create handler instances for incoming SMTP connections that are then destroyed when connections close. More...
class  SMTPHandlerThread
 Class for a single SMTP session. More...
class  SMTPUtils
 Wrapper class for email-related utility functions. More...
class  BerkeleyDBStore
 Interface for the generic datastore. More...
class  BerkeleyDBTable
 Object that encapsulates a single table. More...
class  DBTRef
 Wrapper around a DBT that correctly handles memory management. More...
class  BerkeleyDBIterator
 Iterator class for Berkeley DB tables. More...
class  DurableStoreImpl
 Storage implementation specific pieces of the data store. More...
class  DurableTableImpl
 Storage implementation specific piece of a table. More...
class  DurableIterator
 Abstract base class for a table iterator. More...
class  DurableFilterIterator
class  DurableTable
 Object that encapsulates a single durable table. More...
class  SingleTypeDurableTable
 Class for a durable table that only stores one type of object, represented by the template parameter _DataType. More...
class  MultiTypeDurableTable
 Class for a durable table that can store various objects, each a subclass of _BaseType which must in turn be or be a subclass of TypedSerializableObject, and that has a type code defined in the template parameter _Collection. More...
class  StaticTypedDurableTable
 Class for a durable table that can store objects which share no base class and have no typecode. More...
class  DurableObjectCache
class  DurableStore
 Interface for the generic datastore. More...
class  DurableStoreKey
 SerializableKey - Used by the keys to the store to avoid unnecessary serialization. More...
class  FileSystemStore
class  FileSystemTable
class  FileSystemIterator
class  InternalKeyDurableTable
 Single type durable table adapter interface used to simplify cases in which the data objects to be stored contain at least one field that is the unique identifier and is wrapped in the table by one of the TypeShims. More...
class  MemoryTable
 Object that encapsulates a single table. More...
class  MemoryStore
 Fake durable store that just uses RAM. More...
class  MemoryIterator
 Iterator class for Memory tables. More...
struct  StorageConfig
class  ConsoleCommand
 Class to export various configuration variables related to the tcl console. More...
class  DebugCommand
 Class to export the debugging system to tcl scripts. More...
class  HelpCommand
 The "help" command. More...
class  LogCommand
 Class to export the logging system to tcl scripts. More...
class  TclCommandInterp
 Command interpreter class. More...
class  TclCommand
 Extend this class to provide the command hooks for a specific module. More...
class  AutoTclCommand
 TclCommand that auto-registers itself. More...
struct  atomic_t
 The definition of atomic_t for arm requires a second word used for the lock, since the only instruction we have to rely on is SWP. More...
class  Lock
 Abstract Lock base class. More...
class  ScopeLock
 Scope based lock created from a Lock. More...
class  ScopeLockIf
 Same as ScopeLock from above, but with a boolean predicate. More...
class  MsgQueue
 A producer/consumer queue for passing data between threads in the system, using the Notifier functionality to block and wakeup threads. More...
class  Mutex
 Mutex wrapper class for pthread_mutex_t. More...
class  NoLock
 Class that implements the function signature of the Lock class but doesn't actually do anything. More...
class  Notifier
 Thread notification abstraction that wraps an underlying pipe. More...
class  OnOffNotifier
 OnOffNotifier is a binary state synchronization object. More...
class  SpinLock
 A SpinLock is a Lock that busy waits to get a lock. More...
class  SXLock
class  Thread
 Class to wrap a thread of execution using native system threads (i.e. More...
class  TimerCompare
 The Timer comparison class. More...
class  TimerSystem
 The main Timer system implementation that needs to be driven by a thread, such as the TimerThread class defined below. More...
class  TimerThread
 A simple thread class that drives the TimerSystem implementation. More...
class  Timer
 A Timer class. More...
struct  TimerEvent
 For use with the QueuingTimer, this struct defines a TimerEvent, i.e. More...
class  QueuingTimer
 A Timer class that's useful in cases when a separate thread (i.e. More...
class  AList
class  Base16
class  BoundedPriorityQueue
 BoundedPriorityQueue inherits from the std::priority_queue template to include capacity detection and to impose an arbitrary bound. More...
class  Cache
class  CRC32
struct  ExpandableBuffer
class  Getopt
class  Glob
class  HexDumpBuffer
 Class to produce pretty printing output from data that may be binary (ala emacs' hexl-mode). More...
struct  InitStepSort
 Sort in decreasing order. More...
class  InitSequencer
class  InitStep
class  InitConfigStep
struct  InitExtraDependency
class  LRUList
 A simple extension of the STL list class that adds a method move_to_back to abstract away the call to splice(). More...
class  MD5
 Simple wrapper class to calculate an MD5 digest. More...
struct  MD5Hash_t
 Helper for storing the hash. More...
struct  OpenFdCacheClose
class  OpenFdCache
class  Opt
 Base class for options. More...
class  BoolOpt
 Boolean option class. More...
class  IntOpt
 Integer option class. More...
class  UIntOpt
 Unsigned integer option class. More...
class  UInt64Opt
 Unsigned 64-bit option class. More...
class  UInt16Opt
 Unsigned short integer option class. More...
class  UInt8Opt
 Unsigned byte option class. More...
class  DoubleOpt
 Double option class. More...
class  StringOpt
 String option class. More...
class  CharBufOpt
 Char buffer option class. More...
class  InAddrOpt
 Internet address (dotted-quad or DNS name) option class. More...
class  EnumOpt
 Option class to select one of a set of potential values based on string keys. More...
class  BdAddrOpt
 Bluetooth address (colon-separated hex) option class. More...
class  OptParser
class  PointerCache
class  PointerHandle
class  ScopePtr
 NOTE: Used only for things that are created which need to be deleted when exiting a scope. More...
class  ScopeMalloc
 Similar idea but for a malloc'd buffer. More...
class  ProgressPrinter
class  Random
 Given a seed, generate some number n such that 1 <= n <= seed. More...
class  ByteGenerator
 Generates a some what random stream of bytes given a seed. More...
class  PermutationArray
 Generates a random permuation of length n stored in an array XXX/bowei - add seed. More...
class  RateEstimator
 Simple rate estimation class that does a weighted filter of samples. More...
class  Ref
 Smart pointer class to maintain reference counts on objects. More...
class  RefCountedObject
 Simple implementation of the add_ref / del_ref contract used by the templated Ref class. More...
class  Regex
class  Regsub
struct  RuleStorage
class  RuleSet
class  SafeRange
class  ScratchBuffer< _memory_t, 0 >
class  ScratchBuffer
class  SingletonBase
 Common base class used to store all the singleton pointers and allow for exit-time deletion of the instances. More...
class  Singleton< _Class, true >
 Singleton template with autocreation. More...
class  Singleton< _Class, false >
 Singleton template with no autocreation. More...
class  SingletonRef
 Reference to a Singleton. More...
class  SparseBitmap
 This class represents a bitmap, where the implementation is biased towards space efficiency rather than lookup time. More...
class  StreamBuffer
class  StringAppender
class  StringBuffer
 Utility class that wraps a growable string buffer, similar to std::ostringstream, but with printf() style arguments instead of the << operator. More...
class  StaticStringBuffer
 Initially stack allocated StringBuffer, which handles the common cases where the StringBuffer is used to sprintf a bunch of stuff together. More...
struct  StringHash
 Hashing function class for std::strings. More...
struct  StringLessThan
 Less than function. More...
struct  StringGreaterThan
 Greater than function. More...
struct  StringEquals
 Equality function class for std::strings. More...
class  StringSet
 A StringSet is a set with std::string members. More...
class  StringMap
 A StringMap is a map with std::string keys. More...
class  StringMultiMap
 A StringMultiMap is a multimap with std::string keys. More...
class  StringHashSet
 A StringHashSet is a hash set with std::string members. More...
class  StringHashMap
 A StringHashMap is a hash map with std::string keys. More...
class  StringVector
 A StringVector is a std::vector of std::strings. More...
class  TempRef
 For functions that want to return an ObjectRef, it's irritating to have to go through a series of add_ref and del_ref calls to deal with the C++ temporary objects that are created. More...
class  TextCode
class  TextUncode
struct  Time
class  TokenBucket
 A basic token bucket implementation. More...
struct  UnitTest
 Override the method run to create an individual unit test. More...
class  UnitTester
 UnitTester runs all unit test and produces a nice format which hooks into the parsing script. More...
class  URL
 A simple class for managing internet style URLs. More...
class  vector_map
class  ScopeXDRFree
 Similar idea to ScopePointer and ScopeMalloc (see Pointers.h) but meant to ensure that xdr_free() is called before a fn returns. More...
class  ExpatXMLParser
class  XMLDocument
 An object encapsulation of an XML document, consisting of some amount of unparsed header information (i.e. More...
class  XMLObject
 A simple object-based representation of an XML entity. More...
class  XMLParser
 Abstract interface to an XML parser. More...

Namespaces

namespace  StreamOps
namespace  TypeCollectionErr

Typedefs

typedef std::vector
< SerializableObject * > 
SerializableObjectVector
 A vector of SerializableObjects.
typedef MemoryStream
< StreamOps::CopyTo
ReadMemoryStream
typedef MemoryStream
< StreamOps::CopyFrom
WriteMemoryStream
typedef IOStream
< StreamOps::Read
ReadIOStream
typedef IOStream
< StreamOps::Write
WriteIOStream
typedef std::list
< TclCommand * > 
TclCommandList
 A list of TclCommands.
typedef pthread_t ThreadId_t
typedef MsgQueue
< TimerEvent
TimerEventQueue
 The queue type used in the QueueingTimer.

Enumerations

enum  log_level_t {
  LOG_INVALID = -1, LOG_DEBUG = 1, LOG_INFO = 2, LOG_NOTICE = 3,
  LOG_WARN = 4, LOG_ERR = 5, LOG_CRIT = 6, LOG_ALWAYS = 7
}
enum  IOTimeoutReturn_t {
  IOEOF = 0, IOERROR = -1, IOTIMEOUT = -2, IOINTR = -3,
  IOAGAIN = -4, IORATELIMIT = -5
}
 Return code values for the timeout enabled functions such as timeout_read() and timeout_accept(). More...
enum  DurableStoreResult_t {
  DS_OK = 0, DS_NOTFOUND = -1, DS_BUFSIZE = -2, DS_BUSY = -3,
  DS_EXISTS = -4, DS_BADTYPE = -5, DS_ERR = -1000
}
enum  DurableStoreFlags_t {
  DS_CREATE = 1 << 0, DS_EXCL = 1 << 1, DS_MULTITYPE = 1 << 2, DS_HASH = 1 << 10,
  DS_BTREE = 1 << 11
}
enum  { UNIT_TEST_PASSED = 0, UNIT_TEST_FAILED, UNIT_TEST_INPUT }
enum  urlerr_t {
  URLPARSE_OK, URLPARSE_UNPARSED, URLPARSE_NOURL, URLPARSE_BADSEP,
  URLPARSE_BADPROTO, URLPARSE_BADPORT, URLPARSE_NOHOST
}

Functions

void __log_assert (bool x, const char *what, const char *file, int line)
static void rotate_handler (int sig)
static RETSIGTYPE reparse_handler (int sig)
const char * level2str (log_level_t level)
log_level_t str2level (const char *level)
int vlogf (const char *path, log_level_t level, const char *fmt, va_list ap)
 Global vlogf function.
int logf (const char *path, log_level_t level, const char *fmt,...)
 Global logf function.
int log_multiline (const char *path, log_level_t level, const char *msg)
 Global log_multiline function.
bool log_enabled (log_level_t level, const char *path)
 Global function to determine if the log path is enabled.
const char * _intoa (u_int32_t addr, char *buf, size_t bufsize)
 Faster wrapper around inet_ntoa.
int gethostbyname (const char *name, in_addr_t *addrp)
 Utility wrapper around the gethostbyname() system call.
u_int32_t safe_ntohl (const char *bp)
u_int16_t safe_ntohs (const char *bp)
void safe_htonl (u_int32_t val, char *bp)
void safe_htons (u_int16_t val, char *bp)
template<typename _type>
void serialize_basic_vector (oasys::SerializeAction *action, std::string name, std::vector< _type > *v)
template<typename _SerializablePrefix, typename _SerializableObject>
PrefixAdapter
< _SerializablePrefix,
_SerializableObject > 
prefix_adapter (_SerializablePrefix *prefix, _SerializableObject *obj)
const char * durable_strerror (int result)
 Pretty print for durable store errors.
static void atomic_lock (volatile atomic_t *v)
 Atomic lock function.
static bool atomic_try_lock (volatile atomic_t *v)
 Atomic try_lock function.
static void atomic_unlock (volatile atomic_t *v)
static u_int32_t atomic_add_ret (volatile atomic_t *v, u_int32_t i)
 Atomic addition function.
static u_int32_t atomic_sub_ret (volatile atomic_t *v, u_int32_t i)
 Atomic subtraction function.
static u_int32_t atomic_cmpxchg32 (volatile atomic_t *v, u_int32_t o, u_int32_t n)
 Atomic compare and set.
Mutexatomic_mutex ()
 Global accessor to the singleton atomic mutex.
int cstring_copy (char *dest, size_t dest_size, const char *src)
void fill_with_the_beef (void *buf, size_t len)
u_int32_t jenkins_hash (u_int8_t *k, u_int32_t length, u_int32_t initval)
int tokenize (const std::string &str, const std::string &sep, std::vector< std::string > *tokens)
 Tokenize a single string into a vector.
const char * bool_to_str (bool b)
const char * str_if (bool b, const char *true_str, const char *false_str)
void hex2str (std::string *str, const u_char *bp, size_t len)
 Generate a hex string from a binary buffer.
std::string hex2str (const u_char *bp, size_t len)
 Ditto that returns a temporary.
void hex2str (std::string *str, const char *bp, size_t len)
 A hex2str variant with a char*.
std::string hex2str (const char *bp, size_t len)
 A hex2str variant with a char*.
void str2hex (const std::string &str, u_char *bp, size_t len)
 Parse a hex string into a binary buffer.
bool str_isascii (const u_char *bp, size_t len)
 Return true if the string contains only printable characters.
size_t fast_ultoa (unsigned long val, int base, char *endp)
 Convert an unsigned long to ascii in the given base.
static void atomic_add (volatile atomic_t *v, u_int32_t i)
 Atomic addition function.
static void atomic_sub (volatile atomic_t *v, u_int32_t i)
 Atomic subtraction function.
static void atomic_incr (volatile atomic_t *v)
 Atomic increment.
static void atomic_decr (volatile atomic_t *v)
 Atomic decrement.
static u_int32_t atomic_incr_ret (volatile atomic_t *v)
 Atomic increment function that returns the new value.
static u_int32_t atomic_decr_ret (volatile atomic_t *v)
 Atomic addition function.
static bool atomic_decr_test (volatile atomic_t *v)
 Atomic decrement and test.
 SCOPE_LOCK_DEFUN (Shared, shared)
 SCOPE_LOCK_DEFUN (Exclusive, exclusive)

Variables

level2str_t log_levelnames []
level2str_t log_levelnames []
static const char * INIT_COMMAND
Mutex g_atomic_mutex ("/XXX/ATOMIC_MUTEX_UNUSED_LOGGER", Mutex::TYPE_FAST, true)
 To implement atomic operations without assembly support at userland, we rely on a single global mutex.
SpinLock g_all_threads_lock_
static u_int32_t CRCINIT = 0xFFFFFFFF
static u_int32_t CRCXOROT = 0xFFFFFFFF
static u_int32_t CRCTABLE [256]


Typedef Documentation

typedef IOStream<StreamOps::Read> oasys::ReadIOStream

Definition at line 126 of file SerializeStream.h.

typedef MemoryStream<StreamOps::CopyTo> oasys::ReadMemoryStream

Definition at line 124 of file SerializeStream.h.

typedef std::vector<SerializableObject*> oasys::SerializableObjectVector

A vector of SerializableObjects.

Definition at line 115 of file Serialize.h.

typedef std::list<TclCommand*> oasys::TclCommandList

A list of TclCommands.

Definition at line 41 of file TclCommand.h.

typedef pthread_t oasys::ThreadId_t

Definition at line 49 of file Thread.h.

typedef MsgQueue<TimerEvent> oasys::TimerEventQueue

The queue type used in the QueueingTimer.

Definition at line 262 of file Timer.h.

typedef IOStream<StreamOps::Write> oasys::WriteIOStream

Definition at line 127 of file SerializeStream.h.

typedef MemoryStream<StreamOps::CopyFrom> oasys::WriteMemoryStream

Definition at line 125 of file SerializeStream.h.


Enumeration Type Documentation

anonymous enum

Enumerator:
UNIT_TEST_PASSED 
UNIT_TEST_FAILED 
UNIT_TEST_INPUT  Run Tcl script to query for success.

Definition at line 82 of file UnitTest.h.

enum oasys::DurableStoreFlags_t

Enumeration for flags to the datastore functions.

Enumerator:
DS_CREATE 
DS_EXCL 
DS_MULTITYPE 
DS_HASH 
DS_BTREE 

Definition at line 72 of file DurableStore.h.

enum oasys::DurableStoreResult_t

Enumeration for error return codes from the datastore functions

Enumerator:
DS_OK  Success.
DS_NOTFOUND  Database element not found.
DS_BUFSIZE  Buffer too small.
DS_BUSY  Table is still open, can't delete.
DS_EXISTS  Key already exists.
DS_BADTYPE  Error in type collection.
DS_ERR  XXX/bowei placeholder for now.

Definition at line 54 of file DurableStore.h.

enum oasys::IOTimeoutReturn_t

Return code values for the timeout enabled functions such as timeout_read() and timeout_accept().

Note that the functions return an int, not an enumerated type since they may return other information, e.g. the number of bytes read.

Enumerator:
IOEOF  eof
IOERROR  error
IOTIMEOUT  timeout
IOINTR  interrupted by notifier
IOAGAIN  non-blocking sock got EAGAIN
IORATELIMIT  rate limited socket has no space

Definition at line 41 of file IO.h.

enum oasys::log_level_t

Enumerator:
LOG_INVALID 
LOG_DEBUG 
LOG_INFO 
LOG_NOTICE 
LOG_WARN 
LOG_ERR 
LOG_CRIT 
LOG_ALWAYS 

Definition at line 114 of file Log.h.

enum oasys::urlerr_t

Enumerator:
URLPARSE_OK 
URLPARSE_UNPARSED 
URLPARSE_NOURL 
URLPARSE_BADSEP 
URLPARSE_BADPROTO 
URLPARSE_BADPORT 
URLPARSE_NOHOST 

Definition at line 29 of file URL.h.


Function Documentation

void oasys::__log_assert ( bool  x,
const char *  what,
const char *  file,
int  line 
)

Definition at line 48 of file Log.cc.

Referenced by oasys::Formatter::assert_valid(), and oasys::Log::instance().

const char * oasys::_intoa ( u_int32_t  addr,
char *  buf,
size_t  bufsize 
)

Faster wrapper around inet_ntoa.

Definition at line 61 of file NetUtils.cc.

Referenced by oasys::Intoa::Intoa().

static void oasys::atomic_add ( volatile atomic_t v,
u_int32_t  i 
) [inline, static]

Atomic addition function.

Wrapper variants around the basic add/sub functions above

Parameters:
i integer value to add
v pointer to current value

Definition at line 125 of file Atomic-arm.h.

References atomic_add_ret().

Referenced by atomic_incr().

static u_int32_t oasys::atomic_add_ret ( volatile atomic_t v,
u_int32_t  i 
) [inline, static]

Atomic addition function.

Atomic addition function that returns the new value.

Parameters:
i integer value to add
v pointer to current value
v pointer to current value
i integer to add

Definition at line 90 of file Atomic-arm.h.

References atomic_lock(), and atomic_unlock().

Referenced by atomic_add(), and atomic_incr_ret().

static u_int32_t oasys::atomic_cmpxchg32 ( volatile atomic_t v,
u_int32_t  o,
u_int32_t  n 
) [inline, static]

Atomic compare and set.

Atomic compare and swap.

Stores the new value iff the current value is the expected old value.

Parameters:
v pointer to current value
o old value to compare against
n new value to store
Returns:
zero if the compare failed, non-zero otherwise
Stores the new value iff the current value is the expected old value.

Parameters:
v pointer to current value
o old value to compare against
n new value to store
Returns:
the value of v before the swap
Stores the new value iff the current value is the expected old value.

Parameters:
v pointer to current value
o old value to compare against
n new value to store
Returns:
zero if the compare failed, non-zero otherwise

Definition at line 179 of file Atomic-arm.h.

References atomic_lock(), and atomic_unlock().

Referenced by oasys::SpinLock::lock(), oasys::SpinLock::try_lock(), and oasys::Notifier::~Notifier().

static void oasys::atomic_decr ( volatile atomic_t v  )  [inline, static]

Atomic decrement.

Parameters:
v pointer to current value

Definition at line 143 of file Atomic-arm.h.

References atomic_sub().

Referenced by dtn::CLConnection::check_unblock_link(), oasys::SpinLock::lock(), and oasys::Notifier::notify().

static u_int32_t oasys::atomic_decr_ret ( volatile atomic_t v  )  [inline, static]

Atomic addition function.

Wrapper variants around the basic add/sub functions above

Parameters:
i integer value to add
v pointer to current value

Definition at line 155 of file Atomic-arm.h.

References atomic_sub_ret().

static bool oasys::atomic_decr_test ( volatile atomic_t v  )  [inline, static]

Atomic decrement and test.

Returns:
true if the value zero after the decrement, false otherwise.
Parameters:
v pointer to current value

Definition at line 161 of file Atomic-arm.h.

References atomic_sub_ret().

Referenced by oasys::RefCountedObject::del_ref().

static void oasys::atomic_incr ( volatile atomic_t v  )  [inline, static]

Atomic increment.

Parameters:
v pointer to current value

Definition at line 137 of file Atomic-arm.h.

References atomic_add().

Referenced by oasys::RefCountedObject::add_ref(), oasys::SpinLock::lock(), oasys::Notifier::notify(), dtn::CLConnection::queue_bundle(), and oasys::SpinLock::unlock().

static u_int32_t oasys::atomic_incr_ret ( volatile atomic_t v  )  [inline, static]

Atomic increment function that returns the new value.

Parameters:
v pointer to current value

Definition at line 149 of file Atomic-arm.h.

References atomic_add_ret().

Referenced by dtn::DTNServer::shutdown().

static void oasys::atomic_lock ( volatile atomic_t v  )  [inline, static]

Atomic lock function.

Definition at line 44 of file Atomic-arm.h.

Referenced by atomic_add_ret(), atomic_cmpxchg32(), and atomic_sub_ret().

Mutex * oasys::atomic_mutex (  ) 

Global accessor to the singleton atomic mutex.

Definition at line 38 of file Atomic-mutex.cc.

References g_atomic_mutex.

static void oasys::atomic_sub ( volatile atomic_t v,
u_int32_t  i 
) [inline, static]

Atomic subtraction function.

Parameters:
i integer value to subtract
v pointer to current value

Definition at line 131 of file Atomic-arm.h.

References atomic_sub_ret().

Referenced by atomic_decr().

static u_int32_t oasys::atomic_sub_ret ( volatile atomic_t v,
u_int32_t  i 
) [inline, static]

Atomic subtraction function.

Parameters:
i integer value to subtract
v pointer to current value
i integer value to subtract
v pointer to current value

Definition at line 109 of file Atomic-arm.h.

References atomic_lock(), and atomic_unlock().

Referenced by atomic_decr_ret(), atomic_decr_test(), and atomic_sub().

static bool oasys::atomic_try_lock ( volatile atomic_t v  )  [inline, static]

Atomic try_lock function.

Definition at line 62 of file Atomic-arm.h.

static void oasys::atomic_unlock ( volatile atomic_t v  )  [inline, static]

Definition at line 77 of file Atomic-arm.h.

Referenced by atomic_add_ret(), atomic_cmpxchg32(), and atomic_sub_ret().

const char * oasys::bool_to_str ( bool  b  ) 

Definition at line 78 of file StringUtils.cc.

int oasys::cstring_copy ( char *  dest,
size_t  dest_size,
const char *  src 
)

Copy src to dest. Copies at most dest_size - 1 characters and NULL terminates the result in dest. Returns the number of characters copied. If src or dest is null, then nothing is done. src is assumed to be null terminated.

NB. strncpy behavior is fairly broken if you think about it.

Definition at line 34 of file CString.h.

Referenced by oasys::Thread::Thread().

const char * oasys::durable_strerror ( int  result  )  [inline]

Pretty print for durable store errors.

Definition at line 1928 of file DurableStore.h.

Referenced by dtn::GlobalStore::update().

size_t oasys::fast_ultoa ( unsigned long  val,
int  base,
char *  endp 
) [inline]

Convert an unsigned long to ascii in the given base.

The pointer to the tail end of an adequately sized buffer is supplied, and the number of characters written is returned.

Implementation largely copied from the FreeBSD 5.0 distribution.

Returns:
the number of bytes used or the number that would be used if there isn't enough space in the buffer

Definition at line 240 of file StringUtils.h.

References to_char.

Referenced by oasys::StringBuffer::append_int().

void oasys::fill_with_the_beef ( void *  buf,
size_t  len 
) [inline]

Definition at line 23 of file DeadBeef.h.

int oasys::gethostbyname ( const char *  name,
in_addr_t *  addr 
)

Utility wrapper around the gethostbyname() system call.

Definition at line 90 of file NetUtils.cc.

References ASSERT, INADDR_NONE, ExamineDump::l, LOG_ERR, and logf().

Referenced by lookup_host(), dtn::IPConvergenceLayerUtils::parse_nexthop(), dtn::IPConvergenceLayer::parse_nexthop(), and oasys::InAddrOpt::set().

std::string oasys::hex2str ( const char *  bp,
size_t  len 
) [inline]

A hex2str variant with a char*.

Definition at line 191 of file StringUtils.h.

References hex2str().

void oasys::hex2str ( std::string *  str,
const char *  bp,
size_t  len 
) [inline]

A hex2str variant with a char*.

Definition at line 181 of file StringUtils.h.

References hex2str().

std::string oasys::hex2str ( const u_char *  bp,
size_t  len 
) [inline]

Ditto that returns a temporary.

Definition at line 169 of file StringUtils.h.

References hex2str().

void oasys::hex2str ( std::string *  str,
const u_char *  bp,
size_t  len 
) [inline]

Generate a hex string from a binary buffer.

Definition at line 154 of file StringUtils.h.

Referenced by dtn::LoggingRegistration::deliver_bundle(), oasys::MD5::digest_ascii(), hex2str(), dtn::GlobalStore::load(), oasys::SQLExtract::process(), oasys::Unmarshal::process(), and oasys::Marshal::process().

u_int32_t oasys::jenkins_hash ( u_int8_t *  k,
u_int32_t  length,
u_int32_t  initval 
)

Definition at line 101 of file jenkins_hash.cc.

References mix.

const char* oasys::level2str ( log_level_t  level  )  [inline]

Definition at line 135 of file Log.h.

References log_levelnames, and oasys::level2str_t::str.

Referenced by oasys::Log::dump_rules(), and oasys::Log::gen_prefix().

bool oasys::log_enabled ( log_level_t  level,
const char *  path 
) [inline]

Global function to determine if the log path is enabled.

Overridden by the Logger class.

Definition at line 424 of file Log.h.

References oasys::Log::instance(), and oasys::Log::log_level().

Referenced by oasys::Logger::log_enabled(), oasys::Log::log_multiline(), and oasys::Log::vlogf().

int oasys::log_multiline ( const char *  path,
log_level_t  level,
const char *  msg 
) [inline]

Global log_multiline function.

Definition at line 414 of file Log.h.

References oasys::Log::instance(), and oasys::Log::log_multiline().

int oasys::logf ( const char *  path,
log_level_t  level,
const char *  fmt,
  ... 
) [inline]

Global logf function.

Definition at line 400 of file Log.h.

References oasys::Log::instance(), and oasys::Log::vlogf().

Referenced by oasys::Log::add_reparse_handler(), oasys::Log::add_rotate_handler(), oasys::Unmarshal::begin_action(), dtn::BundleTimestamp::check_local_clock(), oasys::IO::close(), oasys::StringHashSet::dump(), oasys::StringSet::dump(), oasys::Marshal::end_action(), gethostbyname(), oasys::Bluetooth::hci_close_dev(), oasys::Bluetooth::hci_dev_up(), oasys::Bluetooth::hci_devid(), oasys::Bluetooth::hci_get_bdaddr(), oasys::Bluetooth::hci_inquiry(), oasys::Bluetooth::hci_open_dev(), oasys::Bluetooth::hci_read_remote_name(), oasys::IO::lseek(), oasys::IO::lstat(), oasys::IO::mkstemp(), oasys::IO::open(), oasys::Log::parse_debug_file(), oasys::IO::poll_with_notifier(), oasys::SQLExtract::process(), oasys::Unmarshal::process(), oasys::Marshal::process(), oasys::FileUtils::readable(), oasys::StreamBuffer::realloc(), oasys::Log::redirect_stdio(), oasys::Log::rotate(), oasys::FileUtils::size(), oasys::Thread::start(), oasys::IO::stat(), oasys::IO::truncate(), and oasys::IO::unlink().

template<typename _SerializablePrefix, typename _SerializableObject>
PrefixAdapter<_SerializablePrefix, _SerializableObject> oasys::prefix_adapter ( _SerializablePrefix *  prefix,
_SerializableObject *  obj 
) [inline]

Definition at line 220 of file TypeShims.h.

static RETSIGTYPE oasys::reparse_handler ( int  sig  )  [static]

Definition at line 460 of file Log.cc.

References oasys::Log::instance(), and oasys::Log::parse_debug_file().

Referenced by oasys::Log::add_reparse_handler().

static void oasys::rotate_handler ( int  sig  )  [static]

Definition at line 446 of file Log.cc.

References oasys::Log::instance(), and oasys::Log::rotate().

Referenced by oasys::Log::add_rotate_handler().

void oasys::safe_htonl ( u_int32_t  val,
char *  bp 
) [inline]

Definition at line 93 of file NetUtils.h.

void oasys::safe_htons ( u_int16_t  val,
char *  bp 
) [inline]

Definition at line 100 of file NetUtils.h.

u_int32_t oasys::safe_ntohl ( const char *  bp  )  [inline]

Definition at line 77 of file NetUtils.h.

u_int16_t oasys::safe_ntohs ( const char *  bp  )  [inline]

Definition at line 85 of file NetUtils.h.

oasys::SCOPE_LOCK_DEFUN ( Exclusive  ,
exclusive   
)

Define ScopeLock_Shared and ScopeLock_Exclusive.

oasys::SCOPE_LOCK_DEFUN ( Shared  ,
shared   
)

Define ScopeLock_Shared and ScopeLock_Exclusive.

template<typename _type>
void oasys::serialize_basic_vector ( oasys::SerializeAction action,
std::string  name,
std::vector< _type > *  v 
) [inline]

Definition at line 28 of file SerializeHelpers.h.

References oasys::SerializeAction::error(), and oasys::SerializeAction::process().

void oasys::str2hex ( const std::string &  str,
u_char *  bp,
size_t  len 
) [inline]

Parse a hex string into a binary buffer.

Results undefined if the string contains characters other than [0-9a-f].

Definition at line 202 of file StringUtils.h.

References HEXTONUM.

Referenced by oasys::MD5::digest_fromascii().

log_level_t oasys::str2level ( const char *  level  )  [inline]

Definition at line 145 of file Log.h.

References oasys::level2str_t::level, LOG_INVALID, log_levelnames, and oasys::level2str_t::str.

Referenced by oasys::LogCommand::exec(), oasys::UnitTester::init(), dtntunnel::DTNTunnel::init_log(), dtn::DTND::init_log(), main(), oasys::LogConfigParser::parse(), and oasys::Log::parse_debug_file().

const char * oasys::str_if ( bool  b,
const char *  true_str,
const char *  false_str 
)

Definition at line 90 of file StringUtils.cc.

bool oasys::str_isascii ( const u_char *  bp,
size_t  len 
) [inline]

Return true if the string contains only printable characters.

Definition at line 217 of file StringUtils.h.

Referenced by dtn::LoggingRegistration::deliver_bundle().

int oasys::tokenize ( const std::string &  str,
const std::string &  sep,
std::vector< std::string > *  tokens 
)

Tokenize a single string into a vector.

Return the number of tokens parsed.

Definition at line 24 of file StringUtils.cc.

References end.

Referenced by oasys::BasicSMTPMsg::BasicSMTPMsg().

int oasys::vlogf ( const char *  path,
log_level_t  level,
const char *  fmt,
va_list  ap 
) [inline]

Global vlogf function.

Definition at line 385 of file Log.h.

References oasys::Log::instance(), and oasys::Log::vlogf().

Referenced by oasys::Logger::logf().


Variable Documentation

u_int32_t oasys::CRCINIT = 0xFFFFFFFF [static]

Definition at line 42 of file CRC32.cc.

Referenced by oasys::CRC32::reset().

u_int32_t oasys::CRCTABLE[256] [static]

Definition at line 44 of file CRC32.cc.

Referenced by oasys::CRC32::update().

u_int32_t oasys::CRCXOROT = 0xFFFFFFFF [static]

Definition at line 43 of file CRC32.cc.

Referenced by oasys::CRC32::value().

SpinLock oasys::g_all_threads_lock_

Definition at line 46 of file Thread.cc.

Mutex oasys::g_atomic_mutex("/XXX/ATOMIC_MUTEX_UNUSED_LOGGER", Mutex::TYPE_FAST, true)

To implement atomic operations without assembly support at userland, we rely on a single global mutex.

Referenced by atomic_mutex().

const char* oasys::INIT_COMMAND [static]

Definition at line 59 of file TclCommand.cc.

level2str_t oasys::log_levelnames[]

Definition at line 57 of file Log.cc.

level2str_t oasys::log_levelnames[]

Initial value:

{
    { "debug",   LOG_DEBUG },
    { "info",    LOG_INFO },
    { "notice",  LOG_NOTICE },
    { "warning", LOG_WARN },
    { "warn",    LOG_WARN },
    { "error",   LOG_ERR },
    { "err",     LOG_ERR },
    { "critical",LOG_CRIT },
    { "crit",    LOG_CRIT },
    { "always",  LOG_ALWAYS },
    { NULL,      LOG_INVALID }
}

Definition at line 57 of file Log.cc.

Referenced by level2str(), and str2level().


Generated on Sat Sep 8 08:43:50 2007 for DTN Reference Implementation by  doxygen 1.5.3