Content deleted Content added
disambiguating: "wrapper method" has another meaning |
m References after punctuation per WP:REFPUNCT, WP:CITEFOOT, WP:PAIC + other fixes |
||
Line 16:
===Code testing===
Wrapper functions can be used to write [[Debugger|error checking]] routines for pre-existing system functions without increasing the length of a code by a large amount by repeating the same error check for each call to the function.<ref>{{cite book |title=UNIX Network Programming |last=Stevens |first=Richard |author2=Fenner, Bill |author3=Rudoff |author4= Andrew M. |year=2003 |publisher=Addison-Wesley |isbn=9780131411555 |pages=5–6, 29 |url=https://books.google.com/books?id=ptSC4LpwGA0C&client=firefox-a }}</ref> All calls to the original function can be replaced with calls to the wrapper, allowing the programmer to forget about error checking once the wrapper is written.
A test driver is a kind of wrapper function that exercises a code module, typically calling it repeatedly, with different settings or parameters, in order to rigorously pursue each possible path. It is not deliverable code, but is not throwaway code either, being typically retained for use in [[regression testing]].
An interface adaptor is a kind of wrapper function that simplifies, tailors, or amplifies the interface to a code module, with the intent of making it more intelligible or relevant to the user. It may rename parameters, combine parameters, set defaults for parameters, and the like.
===Multiple inheritance===
In a [[programming language]] that does not support [[multiple inheritance]] of base classes, wrapper functions can be used to simulate it. Below is an example of part of a [[
<syntaxhighlight lang="Java">
public class Test implements LinkedList, HashSet{
Line 35:
Many [[Standard library|library]] functions, such as those in the [[C Standard Library]], act as [[Interface (computing)|interface]]s for [[Abstraction (computer science)|abstract]]ion of [[system call]]s. The ''fork'' and ''execve'' functions in [[glibc]] are examples of this. They call the [[low-level|lower-level]] ''[[Fork (operating system)|fork]]'' and ''[[execve]]'' system calls, respectively.
This may lead to incorrectly using the terms "system call" and "syscall" to refer to higher-level library calls rather than the similarly named system calls, which they wrap.<ref>{{Cite web|url=http://man7.org/linux/man-pages/man2/syscalls.2.html|title=syscalls(2) - Linux manual page|website=man7.org|access-date=2020-04-25}}</ref>
==See also==
|