README
上传用户:sy_wanhua
上传日期:2013-07-25
资源大小:3048k
文件大小:3k
- For information about licensing, please see the LICENSE file in this
- directory, or http://www.vovida.org/license.html .
- This directory contains utility classes/functions and execption classes.
- AgentApi, AgentApiMibVars, AgentRegister:
- These classes implement the interface between Managed Objects
- and SNMP Daemon/Network Management.
- CWBuffer, CopyOnWriteData, Data, DataBuffer, DataStore, NewData, StringData:
- Implement string abstraction and copy on write data.
- CommandLine:
- Provides a common mechanism for applications to handle command
- line arguments.
- Common:
- Contains a list of server types.
- Connection, TcpServerSocket, TcpClientSocket:
- Abstracts TCP/IP interface.
- EventControl:
- Implements the starting, stopping and shutting down of a thread.
- CryptoRandom:
- Generates cryptographically random number based on /dev/random.
- Daemon:
- Makes an application a Daemon process.
- Event, Fifo, FifoBase, Writer:
- Related to FIFO queues and Async events.
- FileDataStore:
- Adding, removing entities and hashing functions to distribute
- files under different directories.
- HostMatch:
- Implement IP and hostname comparision function.
- Lock, LockHelper, VMutex, VCondition, VRWLock, VSemaphore,
- ReadLockHelper, WriteLockHelper:
- These classes provide thread synchronization.
- NetworkAddress, UdpStack:
- Abstracts UDP interface.
- SignalAction, SignalSet:
- Helps in signal handling.
- Sptr:
- It is a smart pointer, object allocated from heap gets garbage
- collected when no longer used.
- ThreadIf, VThreadEvent, VThread, VThreadGate, VThreadPool:
- Provide thread abstraction.
- TimeFunc:
- Prints elapsed time.
- Timer, TimerContainer, TimerEntry, VTime:
- Provide timer functions.
- VEnvVar:
- Obtains specific environment variables.
- VFilter:
- A simple filtering class, used in conjunction with infilter.pl
- and outfilter.pl perl scripts.
- VFileSystem:
- Abstracts filesystem operations.
- VFunctor:
- Encapsulates a void function pointer and a argument to a void pointer.
- VNamedPipeFC:
- Abstracts unix pipes.
- cpLog:
- Used for debug information logging.
- md5:
- API's for MD5 algorithms
- parse3tuple:
- Used to read entries from a configuration file.
- support:
- Contains string handling functions
- KNOWN PROBLEMS.
- substrings -- the substring semantics are somewhat surprising, since
- they are designed to speed up access. thus, it is possible to try to
- access memory after it is freed accidentally via the substrings unless
- they are used carefully.
- There are no known problems in the other classes.
- TODO
- Sptr:
-
- the smart pointer could be fixed/improved in several ways. these
- comments are from Evgeny:
- 1. always allocate memory for the counter and mutex -- inefficient --
- more efficient to allocate only once for all of the data (e.g. the way
- the string STL class does it). however, this doesn't seem to be
- possible transparently, as the Sptr class does it. maybe via a mixin
- class or something?
- 2. alternately, allocate a single struct for both count and mutex,
- and write a simple, fast allocator for the mutex and the refcounts
- that's faster and less fraggy than the general purpose malloc/new
- that's being used now.