LandscapeDNDC 1.37.0
Loading...
Searching...
No Matches
Lresources.h
1
14
15/*
16 *
17 *
18 * Lresources.txt
19 * ## BEGIN
20 * # this is the top-level resources file
21 * #
22 * airchemistry.bc.* = 0.0 (???)
23 * airchemistry.bc.nitrogen = 370
24 *
25 * include moreresources.txt
26 * include evenmoreresources.txt
27 *
28 * species.maximumslots = 256
29 *
30 * ## END
31 */
32
33#ifndef LDNDC_LRESOURCES_H_
34#define LDNDC_LRESOURCES_H_
35
36#include "crabmeat-config.h"
37#include "crabmeat-dllexport.h"
38#include "cbm_rtcfg.h"
39
40#include "containers/lkeyvalbase.h"
41
42#include <stdio.h>
43
44#define LRESOURCES_TARGETVERSION_KEY "__system__.Lresources.targetversion"
45
46#define LRESOURCES_FILE LDNDC_RESOURCES_PATH "/" LDNDC_RESOURCES_FILENAME
47#define LRESOURCES_TABLE_SIZE 65536
48#define LRESOURCES_KEY_MAXSIZE 127
49#define LRESOURCES_VALUE_MAXSIZE 91
50namespace cbm
51{
52 typedef keyvaluebase_t< LRESOURCES_TABLE_SIZE, LRESOURCES_KEY_MAXSIZE, LRESOURCES_VALUE_MAXSIZE > resource_container_t;
53 class CBM_API Lresources_t : public resource_container_t
54 {
55 public:
56 bool is_open() const;
61 lerr_t read(
62 char const * /*package version*/,
63 char const * = LDNDC_RESOURCES_FILENAME /*filename*/);
64
65 private:
66
67 FILE * open_file(
68 char const * /*filename*/);
69 int read_file(
70 FILE * /*opened resources file*/, int * /*line number*/);
71 int try_open_include_file(
72 FILE **, char const *, std::string * /*resulting filename*/);
73 int insert_resource(
74 char const *,
75 char const *, char const *);
76 };
77}
78
79/* resources dictionary */
80namespace cbm {
81 extern CBM_API Lresources_t & DefaultResources(); }
82#define CBM_DefaultResources cbm::DefaultResources()
83
84#endif /* !LDNDC_LRESOURCES_H_ */
85