source: mainline/uspace/app/appslauncher/include/vector.h@ 4bfb5a0

Last change on this file since 4bfb5a0 was 4bfb5a0, checked in by GitHub <noreply@…>, 2 years ago

First commit new Application launcher

first version of the application launcher in tile format

  • Property mode set to 100644
File size: 2.6 KB
RevLine 
[4bfb5a0]1/*
2 * Copyright (c) 2023 SimonJRiddix
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * - Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * - Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * - The name of the author may not be used to endorse or promote products
15 * derived from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29/******************************************************************************
30
31 Vector in c
32
33*******************************************************************************/
34
35#ifndef SJR_VECTOR_H
36#define SJR_VECTOR_H
37
38#include <stdio.h>
39#include <stdlib.h>
40#define VECTOR_INIT_CAPACITY 2
41#define UNDEFINE -1
42#define SUCCESS 0
43#define VECTOR_INIT(vec) vector vec;\
44 vector_init(&vec)
45
46//Store and track the stored data
47typedef struct sVectorList
48{
49 void** items;
50 int capacity;
51 int total;
52} sVectorList;
53
54//structure contain the function pointer
55typedef struct sVector vector;
56struct sVector
57{
58 sVectorList vectorList;
59 //function pointers
60 int (*Count)(vector*);
61 int (*Resize)(vector*, int);
62 int (*Add)(vector*, void*);
63 int (*Set)(vector*, int, void*);
64 void* (*Get)(vector*, int);
65 int (*Delete)(vector*, int);
66 int (*Clear)(vector*);
67};
68
69int vector_total(vector* v);
70int vector_resize(vector* v, int capacity);
71int vector_push_back(vector* v, void* item);
72int vector_set(vector* v, int index, void* item);
73void* vector_get(vector* v, int index);
74int vector_delete(vector* v, int index);
75int vector_clear(vector* v);
76void vector_init(vector* v);
77
78#endif
Note: See TracBrowser for help on using the repository browser.