InChI
 
Loading...
Searching...
No Matches
inchi_dll_a.h
Go to the documentation of this file.
1/*
2 * International Chemical Identifier (InChI)
3 * Version 1
4 * Software version 1.07
5 * April 30, 2024
6 *
7 * MIT License
8 *
9 * Copyright (c) 2024 IUPAC and InChI Trust
10 *
11 * Permission is hereby granted, free of charge, to any person obtaining a copy
12 * of this software and associated documentation files (the "Software"), to deal
13 * in the Software without restriction, including without limitation the rights
14 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15 * copies of the Software, and to permit persons to whom the Software is
16 * furnished to do so, subject to the following conditions:
17 *
18 * The above copyright notice and this permission notice shall be included in all
19 * copies or substantial portions of the Software.
20 *
21 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27 * SOFTWARE.
28*
29* The InChI library and programs are free software developed under the
30 * auspices of the International Union of Pure and Applied Chemistry (IUPAC).
31 * Originally developed at NIST.
32 * Modifications and additions by IUPAC and the InChI Trust.
33 * Some portions of code were developed/changed by external contributors
34 * (either contractor or volunteer) which are listed in the file
35 * 'External-contributors' included in this distribution.
36 *
37 * info@inchi-trust.org
38 *
39*/
40
41
42#ifndef __INCHI_DLL_A_H__
43#define __INCHI_DLL_A_H__
44
45#include "../../../INCHI_BASE/src/ichicant.h"
46
78
79typedef struct tagINCHIGEN_CONTROL
80{
81
85
87
88 unsigned long ulTotalProcessingTime;
90 /* Expandable string buffer */
92 /*char *pStr;*/
93 long num_err;
94 long num_inp;
95
96
99
100 /* For the whole structure: */
102
103 /* For each member of pair disconnected/reconnected structures: */
104 ORIG_ATOM_DATA PrepInpData[INCHI_NUM]; /* INCHI_NUM=2; 0 disconnected/original
105 1 reconnected */
107
110
112 /* TAUT_NUM=2; 0 non-tautomeric
113 1 tautomeric
114 2 intermediate tautomeric */
115
118
119/* For each connected component of structures: */
122
123 /* For each connected component of structures: */
126
127/* Placed at the end intentionally */
130
131
132
133/*^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
134Exported functions
135^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
136
137
138#if (defined( _WIN32 ) && defined( _MSC_VER ) && defined(BUILD_LINK_AS_DLL) )
139 /* Win32 & MS VC ++, compile and link as a DLL */
140#ifdef _USRDLL
141 /* InChI library dll */
142#define INCHI_API __declspec(dllexport)
143#define EXPIMP_TEMPLATE
144#define INCHI_DECL
145#else
146 /* calling the InChI dll program */
147#define INCHI_API __declspec(dllimport)
148#define EXPIMP_TEMPLATE extern
149#define INCHI_DECL
150#endif
151#else
152 /* create a statically linked InChI library or link to an executable */
153#define INCHI_API
154#define EXPIMP_TEMPLATE
155#define INCHI_DECL
156#endif
157
158
159
160/* to compile all InChI code as a C++ code #define COMPILE_ALL_CPP */
161#ifndef COMPILE_ALL_CPP
162#ifdef __cplusplus
163extern "C" {
164#endif
165#endif
166
167
168
169
170/* Local functions */
172
173#ifndef COMPILE_ALL_CPP
174#ifdef __cplusplus
175}
176#endif
177#endif
178
179#define PSTR_BUFFER_SIZE 524288
180
181
182#endif /* __INCHI_DLL_A_H__ */
INChI * PINChI2[TAUT_NUM]
Definition ichi.h:259
INChI_Aux * PINChI_Aux2[TAUT_NUM]
Definition ichi.h:302
unsigned long INCHI_MODE
Definition ichisize.h:60
#define INCHI_NUM
Definition inchi_api.h:1179
struct tagINCHIGEN_CONTROL INCHIGEN_CONTROL
void make_norm_atoms_from_inp_atoms(INCHIGEN_DATA *gendata, INCHIGEN_CONTROL *genctl)
Definition inchi_dll_a2.c:2934
struct tagCOMPONENT_TREAT_INFO COMPONENT_TREAT_INFO
#define MAX_SDF_VALUE
Definition incomdef.h:53
#define MAX_SDF_HEADER
Definition incomdef.h:52
#define TAUT_NUM
Definition mode.h:593
Definition ichitaut.h:331
Definition extr_ct.h:110
Definition ichicant.h:189
Definition inchi_dll_a.h:48
T_GROUP_INFO vt_group_info_orig
Definition inchi_dll_a.h:57
sp_ATOM * at[TAUT_NUM]
Definition inchi_dll_a.h:73
int n2
Definition inchi_dll_a.h:50
int num_taut_at
Definition inchi_dll_a.h:62
int num_atoms
Definition inchi_dll_a.h:51
int bMayHaveStereo
Definition inchi_dll_a.h:61
int bPointedEdgeStereo
Definition inchi_dll_a.h:64
int num_at_tg
Definition inchi_dll_a.h:52
INCHI_MODE nUserMode
Definition inchi_dll_a.h:71
int n1
Definition inchi_dll_a.h:49
ATOM_SIZES s[TAUT_NUM]
Definition inchi_dll_a.h:58
int bLooseTSACheck
Definition inchi_dll_a.h:66
int bStereoAtZz
Definition inchi_dll_a.h:67
int num_deleted_H_taut
Definition inchi_dll_a.h:54
inp_ATOM * out_at
Definition inchi_dll_a.h:74
INCHI_MODE bTautFlagsDone
Definition inchi_dll_a.h:70
int vABParityUnknown
Definition inchi_dll_a.h:65
int fix_termhchrg
Definition inchi_dll_a.h:76
int fix_isofixedh
Definition inchi_dll_a.h:75
int bHasIsotopicAtoms
Definition inchi_dll_a.h:60
INCHI_MODE bTautFlags
Definition inchi_dll_a.h:69
BCN Bcn
Definition inchi_dll_a.h:59
int num_deleted_H
Definition inchi_dll_a.h:53
T_GROUP_INFO vt_group_info
Definition inchi_dll_a.h:56
INCHI_MODE nMode
Definition inchi_dll_a.h:55
Definition inpdef.h:443
Definition inchi_dll_a.h:80
INP_ATOM_DATA * InpCurAtData[INCHI_NUM]
Definition inchi_dll_a.h:106
ORIG_STRUCT OrigStruct
Definition inchi_dll_a.h:97
long num_err
Definition inchi_dll_a.h:93
unsigned long ulTotalProcessingTime
Definition inchi_dll_a.h:88
COMPONENT_TREAT_INFO * cti[INCHI_NUM]
Definition inchi_dll_a.h:125
ORIG_ATOM_DATA PrepInpData[INCHI_NUM]
Definition inchi_dll_a.h:104
ORIG_ATOM_DATA OrigInpData
Definition inchi_dll_a.h:98
INP_ATOM_DATA * InpNormAtData[INCHI_NUM]
Definition inchi_dll_a.h:108
int canon_passed
Definition inchi_dll_a.h:84
NORM_CANON_FLAGS ncFlags
Definition inchi_dll_a.h:117
INPUT_PARMS InpParms
Definition inchi_dll_a.h:86
INCHI_IOSTREAM inchi_file[3]
Definition inchi_dll_a.h:128
STRUCT_DATA StructData
Definition inchi_dll_a.h:101
int norm_passed
Definition inchi_dll_a.h:83
char szTitle[MAX_SDF_HEADER+MAX_SDF_VALUE+256]
Definition inchi_dll_a.h:89
INP_ATOM_DATA * InpNormTautData[INCHI_NUM]
Definition inchi_dll_a.h:109
PINChI_Aux2 * pINChI_Aux[INCHI_NUM]
Definition inchi_dll_a.h:121
INCHI_IOS_STRING strbuf_container
Definition inchi_dll_a.h:91
COMP_ATOM_DATA composite_norm_data[INCHI_NUM][TAUT_NUM+1]
Definition inchi_dll_a.h:111
PINChI2 * pINChI[INCHI_NUM]
Definition inchi_dll_a.h:120
long num_inp
Definition inchi_dll_a.h:94
int init_passed
Definition inchi_dll_a.h:82
Definition inchi_api.h:1271
Definition inpdef.h:406
Definition inpdef.h:110
Definition ichidrp.h:120
Definition inpdef.h:433
Definition inpdef.h:305
Definition inpdef.h:340
Definition mode.h:1030
Definition mode.h:1016
Definition ichimain.h:77
Definition ichitaut.h:222