Skip to content
Snippets Groups Projects
Commit 4b178d2f authored by Jonathan Schöbel's avatar Jonathan Schöbel
Browse files

register Page

Pages are hold by Data, CMS passes trough the call(s).
parent 245f7faa
No related branches found
No related tags found
No related merge requests found
......@@ -21,6 +21,7 @@ PKG_CHECK_MODULES([CHECK], [check >= 0.9.4])
AC_CHECK_HEADER([limits.h])
AC_CHECK_HEADER([stdio.h])
AC_CHECK_HEADER([stdlib.h])
AC_CHECK_HEADER([string.h])
# Checks for typedefs, structures, and compiler characteristics.
......
......@@ -28,12 +28,16 @@ long_line_behaviour=1
long_line_column=72
[files]
current_page=0
FILE_NAME_0=935;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Fmain.c;0;8
FILE_NAME_1=974;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Fcms.c;0;8
FILE_NAME_2=594;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Fcms.h;0;8
FILE_NAME_3=903;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Fmacro.h;0;8
FILE_NAME_4=226;Make;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2FMakefile.am;0;8
current_page=4
FILE_NAME_0=634;Sh;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fconfigure.ac;0;8
FILE_NAME_1=1000;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Fmain.c;0;8
FILE_NAME_2=1199;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Fcms.c;0;8
FILE_NAME_3=1041;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Fcms.h;0;8
FILE_NAME_4=1983;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Fdata.c;0;8
FILE_NAME_5=1174;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Fdata.h;0;8
FILE_NAME_6=903;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Fmacro.h;0;8
FILE_NAME_7=897;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Fsefht.h;0;8
FILE_NAME_8=292;Make;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2FMakefile.am;0;8
[VTE]
last_dir=/home/jonathan/Dokumente/projekte/prgm/internet/web/SeFHT/src
......
......@@ -55,3 +55,8 @@ SH_Cms_free (struct SH_Cms * cms)
return;
}
page_t
SH_Cms_register_page (struct SH_Cms * cms, const char * name)
{
return SH_Data_register_page (cms->data, name);
}
......@@ -36,4 +36,6 @@ struct SH_Cms
struct SH_Cms * SH_Cms_new ();
void SH_Cms_free (struct SH_Cms * cms);
page_t SH_Cms_register_page (struct SH_Cms * cms, const char * name);
#endif /* _CMS_H */
......@@ -23,12 +23,16 @@
#include <stdlib.h>
#include <string.h>
#include "macro.h"
#include "data.h"
static inline void init_pages (struct SH_Data * data);
struct SH_Data *
SH_Data_new ()
{
......@@ -39,13 +43,61 @@ SH_Data_new ()
EXIT;
}
init_pages (data);
return data;
}
static inline void free_pages (struct SH_Data * data);
void
SH_Data_free (struct SH_Data * data)
{
free_pages (data);
free (data);
return;
}
static inline void
init_pages (struct SH_Data * data)
{
data->page_n = 0;
data->pages = malloc (0);
data->page_next = PAGE_MIN;
return;
}
static inline void
free_pages (struct SH_Data * data)
{
unsigned int index;
for (index = 0; index < data->page_n; index++)
{
free (data->pages[index].name);
}
free (data->pages);
return;
}
page_t
SH_Data_register_page (struct SH_Data * data, const char * name)
{
data->pages = realloc (data->pages,
(data->page_n + 1) * sizeof (struct SH_Page));
data->pages[data->page_n].id = data->page_next;
data->pages[data->page_n].name = strdup (name);
/* abort on overflow */
if (data->page_n == UINT_MAX || data->page_next == PAGE_MAX)
{
EXIT;
}
data->page_n++;
return NEXT_PAGE(data->page_next);
}
......@@ -25,15 +25,31 @@
#ifndef _DATA_H
#define _DATA_H
#include "sefht.h"
#include <limits.h>
typedef unsigned int page_t;
#define PAGE_MIN 0
#define PAGE_MAX UINT_MAX
#define NEXT_PAGE(page) page++
struct SH_Page
{
page_t id;
char * name;
};
struct SH_Data
{
//
unsigned int page_n;
struct SH_Page * pages;
page_t page_next;
};
struct SH_Data * SH_Data_new ();
void SH_Data_free (struct SH_Data * data);
page_t SH_Data_register_page (struct SH_Data * data, const char * name);
#endif /* _DATA_H */
......@@ -27,10 +27,14 @@
int main(int argc, char **argv)
{
page_t page;
/* startup */
struct SH_Cms * cms = SH_Cms_new ();
/* startup */
page = SH_Cms_register_page (cms, "Startpage");
/* shutdown */
SH_Cms_free (cms);
/* shutdown */
......
......@@ -25,11 +25,4 @@
#ifndef _SEFHT_H
#define _SEFHT_H
#include <limits.h>
typedef unsigned int page_t;
#define PAGE_MIN 0
#define PAGE_MAX UINT_MAX
#endif /* _SEFHT_H */
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment