diff options
| author | MMagueta <MMagueta@users.noreply.github.com> | 2025-09-20 04:42:09 +0000 |
|---|---|---|
| committer | MMagueta <MMagueta@users.noreply.github.com> | 2025-09-20 04:42:09 +0000 |
| commit | ebf4767701457f30281aa0ca86159911b0e1edb3 (patch) | |
| tree | 11702ba2fab0f8fd1e98fca1cb4d02e67e292d2b /set_8c.html | |
| download | RNT-ebf4767701457f30281aa0ca86159911b0e1edb3.tar.gz RNT-ebf4767701457f30281aa0ca86159911b0e1edb3.zip | |
deploy: 5ed1406c81044ff73fd919b5aad184aaed0a174bgh-pages
Diffstat (limited to 'set_8c.html')
| -rw-r--r-- | set_8c.html | 413 |
1 files changed, 413 insertions, 0 deletions
diff --git a/set_8c.html b/set_8c.html new file mode 100644 index 0000000..9d37b2e --- /dev/null +++ b/set_8c.html @@ -0,0 +1,413 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> +<head> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta http-equiv="X-UA-Compatible" content="IE=11"/> +<meta name="generator" content="Doxygen 1.9.8"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>Relational Algebra Engine: src/set.c File Reference</title> +<link href="tabs.css" rel="stylesheet" type="text/css"/> +<script type="text/javascript" src="jquery.js"></script> +<script type="text/javascript" src="dynsections.js"></script> +<link href="search/search.css" rel="stylesheet" type="text/css"/> +<script type="text/javascript" src="search/searchdata.js"></script> +<script type="text/javascript" src="search/search.js"></script> +<link href="doxygen.css" rel="stylesheet" type="text/css" /> +</head> +<body> +<div id="top"><!-- do not remove this div, it is closed by doxygen! --> +<div id="titlearea"> +<table cellspacing="0" cellpadding="0"> + <tbody> + <tr id="projectrow"> + <td id="projectalign"> + <div id="projectname">Relational Algebra Engine + </div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.9.8 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ +var searchBox = new SearchBox("searchBox", "search/",'.html'); +/* @license-end */ +</script> +<script type="text/javascript" src="menudata.js"></script> +<script type="text/javascript" src="menu.js"></script> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ +$(function() { + initMenu('',true,false,'search.php','Search'); + $(document).ready(function() { init_search(); }); +}); +/* @license-end */ +</script> +<div id="main-nav"></div> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<div id="MSearchResults"> +<div class="SRPage"> +<div id="SRIndex"> +<div id="SRResults"></div> +<div class="SRStatus" id="Loading">Loading...</div> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +</div> +</div> +</div> +</div> + +<div id="nav-path" class="navpath"> + <ul> +<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul> +</div> +</div><!-- top --> +<div class="header"> + <div class="summary"> +<a href="#nested-classes">Classes</a> | +<a href="#typedef-members">Typedefs</a> | +<a href="#func-members">Functions</a> </div> + <div class="headertitle"><div class="title">set.c File Reference</div></div> +</div><!--header--> +<div class="contents"> + +<p><a class="el" href="structSet.html">Set</a> implementation for the Relational Algebra Engine. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include "<a class="el" href="set_8h_source.html">set.h</a>"</code><br /> +<code>#include <stdlib.h></code><br /> +</div><div class="textblock"><div class="dynheader"> +Include dependency graph for set.c:</div> +<div class="dyncontent"> +<div class="center"><img src="set_8c__incl.png" border="0" usemap="#asrc_2set_8c" alt=""/></div> +<map name="asrc_2set_8c" id="asrc_2set_8c"> +<area shape="rect" title="Set implementation for the Relational Algebra Engine." alt="" coords="47,5,123,31"/> +<area shape="rect" href="set_8h.html" title=" " alt="" coords="15,79,70,104"/> +<area shape="poly" title=" " alt="" coords="81,32,59,68,54,66,76,30"/> +<area shape="rect" title=" " alt="" coords="94,79,165,104"/> +<area shape="poly" title=" " alt="" coords="95,30,117,66,113,68,90,32"/> +<area shape="rect" title=" " alt="" coords="5,152,80,177"/> +<area shape="poly" title=" " alt="" coords="45,104,45,138,40,138,40,104"/> +</map> +</div> +</div><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a> +Classes</h2></td></tr> +<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structSetNode.html">SetNode</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structSet.html">Set</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a> +Typedefs</h2></td></tr> +<tr class="memitem:af51dc1642db17f15aec9837f783b577d" id="r_af51dc1642db17f15aec9837f783b577d"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structSetNode.html">SetNode</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="set_8c.html#af51dc1642db17f15aec9837f783b577d">SetNode</a></td></tr> +<tr class="separator:af51dc1642db17f15aec9837f783b577d"><td class="memSeparator" colspan="2"> </td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a5b646b26d147dfeeeea8e757a8096a8c" id="r_a5b646b26d147dfeeeea8e757a8096a8c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structSet.html">Set</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="set_8c.html#a5b646b26d147dfeeeea8e757a8096a8c">set_create</a> (<a class="el" href="set_8h.html#a06af63e60b3ef1e2879ce1896685b599">SetCompareFn</a> cmp, <a class="el" href="set_8h.html#ae58aa89dcaed24a2807b4b67ff8f9cf6">SetFreeFn</a> freer)</td></tr> +<tr class="memdesc:a5b646b26d147dfeeeea8e757a8096a8c"><td class="mdescLeft"> </td><td class="mdescRight">Create a new <a class="el" href="structSet.html">Set</a>. <br /></td></tr> +<tr class="separator:a5b646b26d147dfeeeea8e757a8096a8c"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a9d762a027f1c3bcdd22f70ee9093a7dd" id="r_a9d762a027f1c3bcdd22f70ee9093a7dd"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="set_8c.html#a9d762a027f1c3bcdd22f70ee9093a7dd">set_destroy</a> (<a class="el" href="structSet.html">Set</a> *set)</td></tr> +<tr class="memdesc:a9d762a027f1c3bcdd22f70ee9093a7dd"><td class="mdescLeft"> </td><td class="mdescRight">Destroy a <a class="el" href="structSet.html">Set</a> and free its memory. <br /></td></tr> +<tr class="separator:a9d762a027f1c3bcdd22f70ee9093a7dd"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a1f829089f94f01c84a55010ad1e6ca77" id="r_a1f829089f94f01c84a55010ad1e6ca77"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="set_8c.html#a1f829089f94f01c84a55010ad1e6ca77">set_contains</a> (const <a class="el" href="structSet.html">Set</a> *set, const void *elem)</td></tr> +<tr class="memdesc:a1f829089f94f01c84a55010ad1e6ca77"><td class="mdescLeft"> </td><td class="mdescRight">Check if a <a class="el" href="structSet.html">Set</a> contains an element. <br /></td></tr> +<tr class="separator:a1f829089f94f01c84a55010ad1e6ca77"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a6d3c6162152fb63fc571c269ff42932e" id="r_a6d3c6162152fb63fc571c269ff42932e"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="set_8c.html#a6d3c6162152fb63fc571c269ff42932e">set_add</a> (<a class="el" href="structSet.html">Set</a> *set, void *elem)</td></tr> +<tr class="memdesc:a6d3c6162152fb63fc571c269ff42932e"><td class="mdescLeft"> </td><td class="mdescRight">Add an element to a <a class="el" href="structSet.html">Set</a>. <br /></td></tr> +<tr class="separator:a6d3c6162152fb63fc571c269ff42932e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a810577df03b3c0d077c2e9c90fef6648" id="r_a810577df03b3c0d077c2e9c90fef6648"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="set_8c.html#a810577df03b3c0d077c2e9c90fef6648">set_remove</a> (<a class="el" href="structSet.html">Set</a> *set, const void *elem)</td></tr> +<tr class="memdesc:a810577df03b3c0d077c2e9c90fef6648"><td class="mdescLeft"> </td><td class="mdescRight">Remove an element from a <a class="el" href="structSet.html">Set</a>. <br /></td></tr> +<tr class="separator:a810577df03b3c0d077c2e9c90fef6648"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3337392b0e2da0fbacb5cbd04bff7ff3" id="r_a3337392b0e2da0fbacb5cbd04bff7ff3"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="set_8c.html#a3337392b0e2da0fbacb5cbd04bff7ff3">set_size</a> (const <a class="el" href="structSet.html">Set</a> *set)</td></tr> +<tr class="memdesc:a3337392b0e2da0fbacb5cbd04bff7ff3"><td class="mdescLeft"> </td><td class="mdescRight">Get the number of elements in a <a class="el" href="structSet.html">Set</a>. <br /></td></tr> +<tr class="separator:a3337392b0e2da0fbacb5cbd04bff7ff3"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:add1f5ca395dd043e9bf77e58d4ba7d96" id="r_add1f5ca395dd043e9bf77e58d4ba7d96"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="set_8c.html#add1f5ca395dd043e9bf77e58d4ba7d96">set_foreach</a> (const <a class="el" href="structSet.html">Set</a> *set, <a class="el" href="set_8h.html#a370a2d3c5b99f48b2b5c2354b419ee2e">SetIterFn</a> fn, void *userdata)</td></tr> +<tr class="memdesc:add1f5ca395dd043e9bf77e58d4ba7d96"><td class="mdescLeft"> </td><td class="mdescRight">Iterate over all elements in a <a class="el" href="structSet.html">Set</a>. <br /></td></tr> +<tr class="separator:add1f5ca395dd043e9bf77e58d4ba7d96"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p><a class="el" href="structSet.html">Set</a> implementation for the Relational Algebra Engine. </p> +<p>Implements a generic set data structure used to represent relations and tuples as sets, in accordance with relational theory. </p> +</div><h2 class="groupheader">Typedef Documentation</h2> +<a id="af51dc1642db17f15aec9837f783b577d" name="af51dc1642db17f15aec9837f783b577d"></a> +<h2 class="memtitle"><span class="permalink"><a href="#af51dc1642db17f15aec9837f783b577d">◆ </a></span>SetNode</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">typedef struct <a class="el" href="structSetNode.html">SetNode</a> <a class="el" href="structSetNode.html">SetNode</a></td> + </tr> + </table> +</div><div class="memdoc"> + +</div> +</div> +<h2 class="groupheader">Function Documentation</h2> +<a id="a6d3c6162152fb63fc571c269ff42932e" name="a6d3c6162152fb63fc571c269ff42932e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a6d3c6162152fb63fc571c269ff42932e">◆ </a></span>set_add()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int set_add </td> + <td>(</td> + <td class="paramtype"><a class="el" href="structSet.html">Set</a> * </td> + <td class="paramname"><em>set</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void * </td> + <td class="paramname"><em>elem</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Add an element to a <a class="el" href="structSet.html">Set</a>. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">set</td><td>Pointer to the <a class="el" href="structSet.html">Set</a>. </td></tr> + <tr><td class="paramname">elem</td><td>Pointer to the element to add. </td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>1 if added, 0 if already present, -1 on error. </dd></dl> + +</div> +</div> +<a id="a1f829089f94f01c84a55010ad1e6ca77" name="a1f829089f94f01c84a55010ad1e6ca77"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a1f829089f94f01c84a55010ad1e6ca77">◆ </a></span>set_contains()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int set_contains </td> + <td>(</td> + <td class="paramtype">const <a class="el" href="structSet.html">Set</a> * </td> + <td class="paramname"><em>set</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">const void * </td> + <td class="paramname"><em>elem</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Check if a <a class="el" href="structSet.html">Set</a> contains an element. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">set</td><td>Pointer to the <a class="el" href="structSet.html">Set</a>. </td></tr> + <tr><td class="paramname">elem</td><td>Pointer to the element to check. </td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>1 if present, 0 if not. </dd></dl> + +</div> +</div> +<a id="a5b646b26d147dfeeeea8e757a8096a8c" name="a5b646b26d147dfeeeea8e757a8096a8c"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a5b646b26d147dfeeeea8e757a8096a8c">◆ </a></span>set_create()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="structSet.html">Set</a> * set_create </td> + <td>(</td> + <td class="paramtype"><a class="el" href="set_8h.html#a06af63e60b3ef1e2879ce1896685b599">SetCompareFn</a> </td> + <td class="paramname"><em>cmp</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="set_8h.html#ae58aa89dcaed24a2807b4b67ff8f9cf6">SetFreeFn</a> </td> + <td class="paramname"><em>freer</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Create a new <a class="el" href="structSet.html">Set</a>. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">cmp</td><td>Comparison function for elements. </td></tr> + <tr><td class="paramname">freer</td><td>Free function for elements (can be NULL). </td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>Pointer to new <a class="el" href="structSet.html">Set</a>, or NULL on failure. </dd></dl> + +</div> +</div> +<a id="a9d762a027f1c3bcdd22f70ee9093a7dd" name="a9d762a027f1c3bcdd22f70ee9093a7dd"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a9d762a027f1c3bcdd22f70ee9093a7dd">◆ </a></span>set_destroy()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void set_destroy </td> + <td>(</td> + <td class="paramtype"><a class="el" href="structSet.html">Set</a> * </td> + <td class="paramname"><em>set</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Destroy a <a class="el" href="structSet.html">Set</a> and free its memory. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">set</td><td>Pointer to the <a class="el" href="structSet.html">Set</a> to destroy. Safe to pass NULL. </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a id="add1f5ca395dd043e9bf77e58d4ba7d96" name="add1f5ca395dd043e9bf77e58d4ba7d96"></a> +<h2 class="memtitle"><span class="permalink"><a href="#add1f5ca395dd043e9bf77e58d4ba7d96">◆ </a></span>set_foreach()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void set_foreach </td> + <td>(</td> + <td class="paramtype">const <a class="el" href="structSet.html">Set</a> * </td> + <td class="paramname"><em>set</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="set_8h.html#a370a2d3c5b99f48b2b5c2354b419ee2e">SetIterFn</a> </td> + <td class="paramname"><em>fn</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void * </td> + <td class="paramname"><em>userdata</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Iterate over all elements in a <a class="el" href="structSet.html">Set</a>. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">set</td><td>Pointer to the <a class="el" href="structSet.html">Set</a>. </td></tr> + <tr><td class="paramname">fn</td><td>Callback function to call for each element. </td></tr> + <tr><td class="paramname">userdata</td><td>User data to pass to callback. </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a id="a810577df03b3c0d077c2e9c90fef6648" name="a810577df03b3c0d077c2e9c90fef6648"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a810577df03b3c0d077c2e9c90fef6648">◆ </a></span>set_remove()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int set_remove </td> + <td>(</td> + <td class="paramtype"><a class="el" href="structSet.html">Set</a> * </td> + <td class="paramname"><em>set</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">const void * </td> + <td class="paramname"><em>elem</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Remove an element from a <a class="el" href="structSet.html">Set</a>. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">set</td><td>Pointer to the <a class="el" href="structSet.html">Set</a>. </td></tr> + <tr><td class="paramname">elem</td><td>Pointer to the element to remove. </td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>1 if removed, 0 if not found. </dd></dl> + +</div> +</div> +<a id="a3337392b0e2da0fbacb5cbd04bff7ff3" name="a3337392b0e2da0fbacb5cbd04bff7ff3"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a3337392b0e2da0fbacb5cbd04bff7ff3">◆ </a></span>set_size()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">size_t set_size </td> + <td>(</td> + <td class="paramtype">const <a class="el" href="structSet.html">Set</a> * </td> + <td class="paramname"><em>set</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get the number of elements in a <a class="el" href="structSet.html">Set</a>. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">set</td><td>Pointer to the <a class="el" href="structSet.html">Set</a>. </td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>Number of elements in the <a class="el" href="structSet.html">Set</a>. </dd></dl> + +</div> +</div> +</div><!-- contents --> +<!-- start footer part --> +<hr class="footer"/><address class="footer"><small> +Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 +</small></address> +</body> +</html> |
