OSSP sa 1.2.6
Sponsored Links
OSSP sa 1.2.6 Ranking & Summary
File size:
0.33 MB
Platform:
Any Platform
License:
MIT/X Consortium License
Price:
Downloads:
1482
Date added:
2005-10-03
Publisher:
Ralf S. Engelschall
OSSP sa 1.2.6 description
OSSP sa is an abstraction library for the Unix socket application programming interface (API) featuring stream and datagram oriented communication over Unix Domain and Internet Domain (TCP and UDP) sockets.
It provides the following key features: address abstraction (local, IPv4, and IPv6), type abstraction, I/O timeouts, I/O stream buffering and convenience I/O functions.
Main features:
Stand-Alone, Self-Contained, Embeddable
- Although there are various Open Source libraries available which provide a similar abstraction approach, they all either lack important features or unfortunately depend on other companion libraries. OSSP sa fills this gap by providing all important features (see following points) as a stand-alone and fully self-contained library. This way OSSP sa can be trivially embedded as a sub-library into other libraries. It especially provides additional support for namespace-safe embedding of its API in order to avoid symbol conflicts.
Address Abstraction
- Most of the ugliness in the Unix Socket API is the necessity to have to deal with the various address structures (struct sockaddr_xx) which exist because of both the different communication types and addressing schemes. OSSP sa fully hides this by providing an abstract and opaque address type (sa_addr_t) together with utility functions which allow one to convert from the traditional struct sockaddr or URI specification to the sa_addr_t and vice versa without having to deal with special cases related to the underlying particular struct sockaddr_xx. OSSP sa support Unix Domain and both IPv4 and IPv6 Internet Domain addressing.
Type Abstraction
- Some other subtle details in the Unix Socket API make the life hard in practice: socklen_t and ssize_t. These two types originally were (and on some platforms still are) plain integers or unsigned integers while POSIX later introduced own types for them (and even revised these types after some time again). This is nasty, because for 100% type-correct API usage (especially important on 64-bit machines where pointers to different integer types make trouble), every application has to check whether the newer types exists, and if not provide own definitions which map to the still actually used integer type on the underlying platform. OSSP sa hides most of this in its API and for socklen_t provides a backward-compatibility definition. Instead of ssize_t it can use size_t because OSSP sa does not use traditional Unix return code semantics.
I/O Timeouts
- Each I/O function in OSSP sa is aware of timeouts (set by sa_timeout(3)), i.e., all I/O operations return SA_ERR_TMT if the timeout expired before the I/O operation was able to succeed. This allows one to easily program less-blocking network services. OSSP sa internally implements these timeouts either through the SO_{SND,RCV}TIMEO feature on more modern Socket implementations or through traditional select(2). This way high performance is achieved on modern platforms while the full functionality still is available on older platforms.
I/O Stream Buffering
- If OSSP sa is used for stream communication, internally all I/O operations can be performed through input and/or output buffers (set by sa_buffer(3)) for achieving higher I/O performance by doing I/O operations on larger aggregated messages and with less required system calls. Additionally if OSSP sa is used for stream communication, for convenience reasons line-oriented reading (sa_readln(3)) and formatted writing (see sa_writef(3)) is provided, modelled after STDIOs fgets(3) and fprintf(3). Both features fully leverage from the I/O buffering.
Enhancements:
- Removed SA_SYSCALL_GETHOSTBYNAME because gethostbyname(3) cannot be overridden as at is use point (function sa_addr_u2a) the sa_t object is not available.
- Additionally, for IPv6 getaddrinfo(3) would have been overridden, too.
- This fixed compilation on platforms without IPv6 APIs.
It provides the following key features: address abstraction (local, IPv4, and IPv6), type abstraction, I/O timeouts, I/O stream buffering and convenience I/O functions.
Main features:
Stand-Alone, Self-Contained, Embeddable
- Although there are various Open Source libraries available which provide a similar abstraction approach, they all either lack important features or unfortunately depend on other companion libraries. OSSP sa fills this gap by providing all important features (see following points) as a stand-alone and fully self-contained library. This way OSSP sa can be trivially embedded as a sub-library into other libraries. It especially provides additional support for namespace-safe embedding of its API in order to avoid symbol conflicts.
Address Abstraction
- Most of the ugliness in the Unix Socket API is the necessity to have to deal with the various address structures (struct sockaddr_xx) which exist because of both the different communication types and addressing schemes. OSSP sa fully hides this by providing an abstract and opaque address type (sa_addr_t) together with utility functions which allow one to convert from the traditional struct sockaddr or URI specification to the sa_addr_t and vice versa without having to deal with special cases related to the underlying particular struct sockaddr_xx. OSSP sa support Unix Domain and both IPv4 and IPv6 Internet Domain addressing.
Type Abstraction
- Some other subtle details in the Unix Socket API make the life hard in practice: socklen_t and ssize_t. These two types originally were (and on some platforms still are) plain integers or unsigned integers while POSIX later introduced own types for them (and even revised these types after some time again). This is nasty, because for 100% type-correct API usage (especially important on 64-bit machines where pointers to different integer types make trouble), every application has to check whether the newer types exists, and if not provide own definitions which map to the still actually used integer type on the underlying platform. OSSP sa hides most of this in its API and for socklen_t provides a backward-compatibility definition. Instead of ssize_t it can use size_t because OSSP sa does not use traditional Unix return code semantics.
I/O Timeouts
- Each I/O function in OSSP sa is aware of timeouts (set by sa_timeout(3)), i.e., all I/O operations return SA_ERR_TMT if the timeout expired before the I/O operation was able to succeed. This allows one to easily program less-blocking network services. OSSP sa internally implements these timeouts either through the SO_{SND,RCV}TIMEO feature on more modern Socket implementations or through traditional select(2). This way high performance is achieved on modern platforms while the full functionality still is available on older platforms.
I/O Stream Buffering
- If OSSP sa is used for stream communication, internally all I/O operations can be performed through input and/or output buffers (set by sa_buffer(3)) for achieving higher I/O performance by doing I/O operations on larger aggregated messages and with less required system calls. Additionally if OSSP sa is used for stream communication, for convenience reasons line-oriented reading (sa_readln(3)) and formatted writing (see sa_writef(3)) is provided, modelled after STDIOs fgets(3) and fprintf(3). Both features fully leverage from the I/O buffering.
Enhancements:
- Removed SA_SYSCALL_GETHOSTBYNAME because gethostbyname(3) cannot be overridden as at is use point (function sa_addr_u2a) the sa_t object is not available.
- Additionally, for IPv6 getaddrinfo(3) would have been overridden, too.
- This fixed compilation on platforms without IPv6 APIs.
OSSP sa 1.2.6 Screenshot
OSSP sa 1.2.6 Keywords
OSSP
API
IPv6
application programming interface
Unix socket
Programming interface
Application programming
abstraction library
sa
I/O
Unix
t
3
abstraction
OSSP sa
OSSP sa 1.2.6
Bookmark OSSP sa 1.2.6
OSSP sa 1.2.6 Copyright
WareSeeker periodically updates pricing and software information of OSSP sa 1.2.6 full version from the publisher, so some information may be slightly out-of-date. You should confirm all information before relying on it. Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future development of OSSP sa 1.2.6 Edition. Download links are directly from our publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed
Featured Software
Want to place your software product here?
Please contact us for consideration.
Contact WareSeeker.com
Related Information
based application programming interface
application programming interface concepts
application programming interface definition
oriented application programming interface that allows
messaging application programming interface
application programming interface diagram
telephony application programming interface
what is application programming interface
application programming interfaces
unix socket programming
application programming interface api
java application programming interface
unix sockets
application programming interface examples
speech application programming interface
application programming interface java
microsoft cryptographic application programming interface
unix system numbers
Related Software
OSSP var is a flexible, full-featured and fast variable construct expansion library. Free Download
Shiela is an access control and logging facility for use with the Concurrent Versions System (CVS). Free Download
OSSP mm is a 2-layer abstraction library which simplifies the usage of shared memory between forked. Free Download
OSSP defines an abstract data type of a data buffer that can assemble, move and truncate chunks of data. Free Download
OSSP ex is a small ISO-C++ style exception handling library for use in the ISO-C language. Free Download
OSSP sio is an I/O abstraction library for layered stream communication. Free Download
OSSP val is a flexible name-to-value mapping library for ISO-C variables. Free Download
OSSP uuid is an API for ISO C, ISO C++, Perl and PHP. Free Download
Latest Software
- AXIGEN Mail Server Office Discount 6.1.0
- AXIGEN Mail Server Office Edition Free 6.1.0
- SA report series for ipfilter for Unix 1.3
- SA report series for FortiGate for Unix 1.1 build 060212
- AXIGEN Mail Server Office Edition 5.0.1
- WEbTide Unix 1.3
- AXIGEN Mail Server StartUp Edition 5.0.1
- Apache Beehive for Unix 1.0.2
Popular Software
Favourite Software