stringlist.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2011 Equinor ASA, Norway.
3
4 The file 'stringlist.h' is part of ERT - Ensemble based Reservoir Tool.
5
6 ERT is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 ERT is distributed in the hope that it will be useful, but WITHOUT ANY
12 WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE.
14
15 See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
16 for more details.
17*/
18
19#ifndef ERT_STRINGLIST_H
20#define ERT_STRINGLIST_H
21
22#include <stdbool.h>
23#include <stdio.h>
24
25#include <ert/util/ert_api_config.hpp>
27#include <ert/util/int_vector.hpp>
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
33
34typedef struct stringlist_struct stringlist_type;
35typedef int ( string_cmp_ftype) (const void * , const void *);
36typedef bool ( file_pred_ftype) (const char *, const void *);
37
38 int stringlist_select_files(stringlist_type * names, const char * path, file_pred_ftype * predicate, const void * pred_arg);
39
40 const char * stringlist_get_last( const stringlist_type * stringlist );
41 char * stringlist_pop( stringlist_type * stringlist);
43 stringlist_type * stringlist_alloc_deep_copy_with_limits(const stringlist_type * src , int offset, int num_strings);
46
48 void stringlist_free__(void * );
51
53
54 const char * stringlist_safe_iget( const stringlist_type * stringlist , int index);
55 bool stringlist_unique(const stringlist_type * stringlist );
56 bool stringlist_iequal( const stringlist_type * stringlist , int index, const char * s );
57 const char * stringlist_iget(const stringlist_type * , int);
58 int stringlist_iget_as_int( const stringlist_type * stringlist , int index , bool * valid);
59 double stringlist_iget_as_double( const stringlist_type * stringlist , int index , bool * valid);
60 bool stringlist_iget_as_bool( const stringlist_type * stringlist, int index, bool * valid);
61 char * stringlist_iget_copy(const stringlist_type * stringlist , int );
62 char * stringlist_alloc_joined_string(const stringlist_type * , const char * );
63 char * stringlist_alloc_joined_substring( const stringlist_type * s , int start_index , int end_index , const char * sep );
64 const char * stringlist_front(const stringlist_type * stringlist);
65 const char * stringlist_back(const stringlist_type * stringlist);
66
67
68
69 void stringlist_iset_copy(stringlist_type *, int index , const char *);
70 void stringlist_iset_ref(stringlist_type *, int index , const char *);
71 void stringlist_iset_owned_ref(stringlist_type *, int index , const char *);
72
73 void stringlist_insert_copy(stringlist_type *, int index , const char *);
74 void stringlist_insert_ref(stringlist_type *, int index , const char *);
76
77 void stringlist_idel(stringlist_type * stringlist , int index);
78
80 void stringlist_fprintf(const stringlist_type * , const char * , FILE *);
81 void stringlist_fprintf_fmt(const stringlist_type * stringlist, const stringlist_type * fmt_list , FILE * stream);
82
83
86 stringlist_type * stringlist_alloc_argv_owned_ref(const char ** argv , int argc);
87 stringlist_type * stringlist_alloc_from_split( const char * input_string , const char * sep );
89
92
94 bool stringlist_contains(const stringlist_type * , const char * );
95 int_vector_type * stringlist_find(const stringlist_type *, const char *);
96 int stringlist_find_first(const stringlist_type * , const char * );
99 char ** stringlist_alloc_char_ref(const stringlist_type * stringlist);
101 void stringlist_fwrite(const stringlist_type * , FILE * );
104 void stringlist_python_sort( stringlist_type * s , int cmp_flag);
105
106#ifdef ERT_HAVE_GLOB
107 int stringlist_select_matching(stringlist_type * names , const char * pattern);
108#endif
109 int stringlist_select_matching_files(stringlist_type * names , const char * path , const char * file_pattern);
110 int stringlist_select_matching_elements(stringlist_type * target , const stringlist_type * src , const char * pattern);
111 int stringlist_append_matching_elements(stringlist_type * target , const stringlist_type * src , const char * pattern);
113
114#ifdef __cplusplus
115}
116#endif
117#endif
int index
Definition: cJSON.h:168
char bool
Definition: msvc_stdbool.h:17
int() string_cmp_ftype(const void *, const void *)
Definition: stringlist.hpp:35
void stringlist_python_sort(stringlist_type *s, int cmp_flag)
bool stringlist_unique(const stringlist_type *stringlist)
const char * stringlist_safe_iget(const stringlist_type *stringlist, int index)
bool() file_pred_ftype(const char *, const void *)
Definition: stringlist.hpp:36
void stringlist_append_stringlist_copy(stringlist_type *, const stringlist_type *)
stringlist_type * stringlist_alloc_argv_ref(const char **, int)
void stringlist_fprintf(const stringlist_type *, const char *, FILE *)
stringlist_type * stringlist_alloc_deep_copy(const stringlist_type *src)
int stringlist_select_matching_elements(stringlist_type *target, const stringlist_type *src, const char *pattern)
stringlist_type * stringlist_alloc_deep_copy_with_offset(const stringlist_type *src, int offset)
char ** stringlist_alloc_char_ref(const stringlist_type *stringlist)
const char * stringlist_back(const stringlist_type *stringlist)
char * stringlist_alloc_joined_string(const stringlist_type *, const char *)
int_vector_type * stringlist_find(const stringlist_type *, const char *)
void stringlist_iset_copy(stringlist_type *, int index, const char *)
void stringlist_insert_ref(stringlist_type *, int index, const char *)
double stringlist_iget_as_double(const stringlist_type *stringlist, int index, bool *valid)
void stringlist_sort(stringlist_type *, string_cmp_ftype *string_cmp)
stringlist_type * stringlist_alloc_new(void)
void stringlist_fprintf_fmt(const stringlist_type *stringlist, const stringlist_type *fmt_list, FILE *stream)
void stringlist_clear(stringlist_type *)
bool stringlist_iget_as_bool(const stringlist_type *stringlist, int index, bool *valid)
const char * stringlist_get_last(const stringlist_type *stringlist)
void stringlist_idel(stringlist_type *stringlist, int index)
char * stringlist_alloc_joined_substring(const stringlist_type *s, int start_index, int end_index, const char *sep)
void stringlist_fread(stringlist_type *, FILE *)
int stringlist_get_size(const stringlist_type *)
char ** stringlist_alloc_char_copy(const stringlist_type *)
int stringlist_find_first(const stringlist_type *, const char *)
const char * stringlist_front(const stringlist_type *stringlist)
int stringlist_append_matching_elements(stringlist_type *target, const stringlist_type *src, const char *pattern)
char * stringlist_iget_copy(const stringlist_type *stringlist, int)
void stringlist_deep_copy(stringlist_type *target, const stringlist_type *src)
stringlist_type * stringlist_alloc_deep_copy_with_limits(const stringlist_type *src, int offset, int num_strings)
void stringlist_free__(void *)
stringlist_type * stringlist_fread_alloc(FILE *)
void stringlist_reverse(stringlist_type *s)
int stringlist_get_argc(const stringlist_type *)
void stringlist_insert_stringlist_copy(stringlist_type *, const stringlist_type *, int)
int stringlist_iget_as_int(const stringlist_type *stringlist, int index, bool *valid)
stringlist_type * stringlist_alloc_argv_copy(const char **, int)
int stringlist_select_matching_files(stringlist_type *names, const char *path, const char *file_pattern)
UTIL_IS_INSTANCE_HEADER(stringlist)
bool stringlist_iequal(const stringlist_type *stringlist, int index, const char *s)
void stringlist_insert_owned_ref(stringlist_type *, int index, const char *)
void stringlist_iset_ref(stringlist_type *, int index, const char *)
stringlist_type * stringlist_alloc_argv_owned_ref(const char **argv, int argc)
void stringlist_free(stringlist_type *)
void stringlist_iset_owned_ref(stringlist_type *, int index, const char *)
int stringlist_select_files(stringlist_type *names, const char *path, file_pred_ftype *predicate, const void *pred_arg)
void stringlist_append_copy(stringlist_type *, const char *)
stringlist_type * stringlist_alloc_from_split(const char *input_string, const char *sep)
bool stringlist_contains(const stringlist_type *, const char *)
bool stringlist_equal(const stringlist_type *, const stringlist_type *)
char * stringlist_pop(stringlist_type *stringlist)
struct stringlist_struct stringlist_type
Definition: stringlist.hpp:34
void stringlist_fwrite(const stringlist_type *, FILE *)
const char * stringlist_iget(const stringlist_type *, int)
void stringlist_insert_copy(stringlist_type *, int index, const char *)