1use crate::*;
3use crate::cape_smart_pointer::CapeSmartPointer;
4use std::marker::PhantomData;
5use std::fmt;
6
7pub const LIBRARY_ID:CapeUUID=CapeUUID::from_slice(&[0x8du8,0x1du8,0x72u8,0x4fu8,0xabu8,0x15u8,0x48u8,0xe5u8,0x80u8,0xe4u8,0xa6u8,0x12u8,0x46u8,0x8eu8,0x68u8,0xd4u8]);
9
10pub const CATEGORYID_COMPONENT_1_2:CapeUUID=CapeUUID::from_slice(&[0x37u8,0xe0u8,0x30u8,0x33u8,0x63u8,0xb9u8,0x4fu8,0x55u8,0xb5u8,0xc4u8,0x80u8,0x7bu8,0xedu8,0xe0u8,0x3du8,0xebu8]);
12
13pub const ICAPEIDENTIFICATION_UUID:CapeUUID=CapeUUID::from_slice(&[0x12u8,0xebu8,0xf1u8,0x84u8,0xf4u8,0x7au8,0x44u8,0x07u8,0xb5u8,0x2au8,0x7fu8,0xccu8,0x0au8,0x70u8,0x45u8,0x1cu8]);
15pub const ICAPECOLLECTION_UUID:CapeUUID=CapeUUID::from_slice(&[0xb1u8,0x35u8,0xa4u8,0x43u8,0x2eu8,0xd8u8,0x45u8,0xefu8,0xbbu8,0x2du8,0xe6u8,0x8du8,0x2eu8,0x63u8,0x1cu8,0x31u8]);
16pub const ICAPEPARAMETER_UUID:CapeUUID=CapeUUID::from_slice(&[0xdbu8,0xa6u8,0x93u8,0x1fu8,0x39u8,0x0cu8,0x42u8,0x29u8,0x9bu8,0x36u8,0xd6u8,0x59u8,0x79u8,0xdbu8,0xd0u8,0xc0u8]);
17pub const ICAPEREALPARAMETER_UUID:CapeUUID=CapeUUID::from_slice(&[0xd2u8,0x75u8,0xb8u8,0x5eu8,0x94u8,0xe4u8,0x4cu8,0xa2u8,0x84u8,0xdeu8,0xd0u8,0x7fu8,0x72u8,0x9fu8,0x55u8,0x8au8]);
18pub const ICAPEINTEGERPARAMETER_UUID:CapeUUID=CapeUUID::from_slice(&[0xa9u8,0x7au8,0xc0u8,0x97u8,0x0fu8,0xd0u8,0x42u8,0x26u8,0x99u8,0xbau8,0xd1u8,0xc9u8,0xaeu8,0x41u8,0xbdu8,0xddu8]);
19pub const ICAPESTRINGPARAMETER_UUID:CapeUUID=CapeUUID::from_slice(&[0xf2u8,0x6cu8,0xe5u8,0x27u8,0x32u8,0x77u8,0x44u8,0x24u8,0xa6u8,0x29u8,0x7fu8,0x93u8,0x08u8,0xdbu8,0xa7u8,0xd3u8]);
20pub const ICAPEBOOLEANPARAMETER_UUID:CapeUUID=CapeUUID::from_slice(&[0x33u8,0xbeu8,0xf4u8,0x2du8,0x73u8,0x48u8,0x41u8,0x41u8,0xb6u8,0xd7u8,0xe2u8,0xefu8,0xb3u8,0x71u8,0x46u8,0x67u8]);
21pub const ICAPEARRAYPARAMETER_UUID:CapeUUID=CapeUUID::from_slice(&[0xaeu8,0xebu8,0x1du8,0x66u8,0x82u8,0x27u8,0x48u8,0xbdu8,0x9au8,0x05u8,0x31u8,0x50u8,0xd0u8,0xdfu8,0x4eu8,0x5du8]);
22pub const ICAPEARRAYREALPARAMETER_UUID:CapeUUID=CapeUUID::from_slice(&[0x96u8,0x18u8,0x66u8,0xf0u8,0xb1u8,0x96u8,0x45u8,0x54u8,0xb9u8,0x50u8,0x55u8,0x99u8,0xadu8,0xe2u8,0x60u8,0xd5u8]);
23pub const ICAPEARRAYINTEGERPARAMETER_UUID:CapeUUID=CapeUUID::from_slice(&[0x22u8,0x10u8,0x3au8,0x3bu8,0xfbu8,0x08u8,0x43u8,0xd1u8,0x83u8,0xebu8,0x56u8,0x98u8,0x2au8,0x2eu8,0xa8u8,0xbau8]);
24pub const ICAPEARRAYSTRINGPARAMETER_UUID:CapeUUID=CapeUUID::from_slice(&[0x03u8,0x77u8,0x51u8,0xf9u8,0x37u8,0xe7u8,0x4fu8,0x61u8,0xb7u8,0x0au8,0x5bu8,0xf5u8,0x75u8,0x1cu8,0xc3u8,0x4au8]);
25pub const ICAPEARRAYBOOLEANPARAMETER_UUID:CapeUUID=CapeUUID::from_slice(&[0xbbu8,0x6bu8,0xf3u8,0x34u8,0xf5u8,0xb4u8,0x4eu8,0x08u8,0x9fu8,0xebu8,0x13u8,0x5du8,0xe8u8,0x21u8,0xb9u8,0x2fu8]);
26pub const ICAPEPARAMETERSPECIFICATION_UUID:CapeUUID=CapeUUID::from_slice(&[0x72u8,0xe7u8,0xe2u8,0xaeu8,0x9fu8,0x00u8,0x40u8,0xbau8,0x86u8,0x12u8,0xbfu8,0xf2u8,0x33u8,0x08u8,0x5eu8,0xfdu8]);
27pub const ICAPEREALPARAMETERSPECIFICATION_UUID:CapeUUID=CapeUUID::from_slice(&[0xf0u8,0x56u8,0x53u8,0x3cu8,0x9fu8,0x56u8,0x44u8,0x87u8,0x8fu8,0xc9u8,0x00u8,0x47u8,0xa5u8,0x7au8,0xebu8,0x53u8]);
28pub const ICAPEINTEGERPARAMETERSPECIFICATION_UUID:CapeUUID=CapeUUID::from_slice(&[0x72u8,0x05u8,0x95u8,0x85u8,0x38u8,0x58u8,0x43u8,0xcau8,0x99u8,0x32u8,0xe3u8,0xa8u8,0xa8u8,0xc8u8,0x07u8,0x48u8]);
29pub const ICAPESTRINGPARAMETERSPECIFICATION_UUID:CapeUUID=CapeUUID::from_slice(&[0x7du8,0xa3u8,0x53u8,0x0au8,0x82u8,0x43u8,0x41u8,0x60u8,0x82u8,0x55u8,0xdfu8,0xb8u8,0x9au8,0x0au8,0xdau8,0x2au8]);
30pub const ICAPEBOOLEANPARAMETERSPECIFICATION_UUID:CapeUUID=CapeUUID::from_slice(&[0x03u8,0x60u8,0x43u8,0xd9u8,0x61u8,0x8fu8,0x45u8,0xd3u8,0xa6u8,0x4fu8,0x45u8,0x68u8,0x67u8,0x52u8,0x6au8,0xb7u8]);
31pub const ICAPEARRAYPARAMETERSPECIFICATION_UUID:CapeUUID=CapeUUID::from_slice(&[0x10u8,0x06u8,0x51u8,0x70u8,0x0cu8,0xb9u8,0x49u8,0x97u8,0x9fu8,0x19u8,0x38u8,0x95u8,0x7eu8,0x01u8,0x84u8,0xd6u8]);
32pub const ICAPEARRAYREALPARAMETERSPECIFICATION_UUID:CapeUUID=CapeUUID::from_slice(&[0xf1u8,0x27u8,0xf8u8,0x98u8,0xa7u8,0xc3u8,0x41u8,0xa1u8,0xa7u8,0xf5u8,0x58u8,0xcbu8,0x35u8,0x99u8,0x5bu8,0x44u8]);
33pub const ICAPEARRAYINTEGERPARAMETERSPECIFICATION_UUID:CapeUUID=CapeUUID::from_slice(&[0x7bu8,0x51u8,0xd2u8,0xb9u8,0x14u8,0xadu8,0x4fu8,0xa8u8,0xb2u8,0x6eu8,0x8fu8,0x63u8,0x27u8,0x76u8,0xc8u8,0x02u8]);
34pub const ICAPEARRAYSTRINGPARAMETERSPECIFICATION_UUID:CapeUUID=CapeUUID::from_slice(&[0x43u8,0xafu8,0x3bu8,0xa8u8,0x22u8,0x06u8,0x4au8,0xb0u8,0xb4u8,0x64u8,0x51u8,0x3fu8,0x01u8,0x66u8,0x3au8,0x12u8]);
35pub const ICAPEARRAYBOOLEANPARAMETERSPECIFICATION_UUID:CapeUUID=CapeUUID::from_slice(&[0x38u8,0x79u8,0x2cu8,0xa7u8,0x35u8,0x45u8,0x4au8,0x1bu8,0x9eu8,0x87u8,0xcdu8,0x85u8,0x56u8,0x12u8,0x7du8,0xe9u8]);
36pub const ICAPEUTILITIES_UUID:CapeUUID=CapeUUID::from_slice(&[0x27u8,0x5cu8,0xb0u8,0x83u8,0x4fu8,0x4fu8,0x41u8,0xa8u8,0xbau8,0x08u8,0x52u8,0x11u8,0xb8u8,0xd4u8,0x8au8,0xe8u8]);
37pub const ICAPESIMULATIONCONTEXT_UUID:CapeUUID=CapeUUID::from_slice(&[0x48u8,0xb2u8,0x11u8,0xc4u8,0xa1u8,0x58u8,0x46u8,0xc2u8,0x89u8,0x82u8,0xf8u8,0xbbu8,0xa6u8,0x44u8,0x10u8,0xbau8]);
38pub const ICAPEDIAGNOSTIC_UUID:CapeUUID=CapeUUID::from_slice(&[0xd3u8,0x03u8,0x58u8,0x46u8,0xbeu8,0xaau8,0x4du8,0xacu8,0xafu8,0x98u8,0x74u8,0xf0u8,0x9au8,0xa1u8,0x7fu8,0x35u8]);
39pub const ICAPEMATERIALMANAGER_UUID:CapeUUID=CapeUUID::from_slice(&[0xb7u8,0x5au8,0x64u8,0x37u8,0x07u8,0xfeu8,0x4eu8,0xf0u8,0xa1u8,0x67u8,0xefu8,0xcau8,0x0bu8,0xe5u8,0x2cu8,0xd8u8]);
40pub const ICAPECOSEUTILITIES_UUID:CapeUUID=CapeUUID::from_slice(&[0x73u8,0x45u8,0x3eu8,0x94u8,0x64u8,0x18u8,0x4fu8,0x6au8,0xabu8,0x31u8,0xd2u8,0x8au8,0x69u8,0x16u8,0x95u8,0x53u8]);
41pub const ICAPETHERMOMATERIAL_UUID:CapeUUID=CapeUUID::from_slice(&[0xf7u8,0xe3u8,0x51u8,0x7au8,0x49u8,0x22u8,0x4du8,0x55u8,0xa2u8,0x14u8,0xbbu8,0x53u8,0x75u8,0x5eu8,0x7du8,0x01u8]);
42pub const ICAPETHERMOMATERIALCONTEXT_UUID:CapeUUID=CapeUUID::from_slice(&[0x6du8,0xaau8,0xc2u8,0x36u8,0x88u8,0x5cu8,0x47u8,0x0au8,0x82u8,0x86u8,0x36u8,0x80u8,0x5bu8,0xedu8,0x43u8,0x61u8]);
43pub const ICAPETHERMOCOMPOUNDS_UUID:CapeUUID=CapeUUID::from_slice(&[0x30u8,0x9du8,0xc5u8,0x15u8,0xaeu8,0x97u8,0x4fu8,0xbeu8,0x8au8,0xa1u8,0xa0u8,0x8eu8,0x13u8,0x59u8,0xffu8,0x69u8]);
44pub const ICAPETHERMOPHASES_UUID:CapeUUID=CapeUUID::from_slice(&[0xd8u8,0x09u8,0x01u8,0xa2u8,0x59u8,0xa2u8,0x43u8,0xb4u8,0x80u8,0x94u8,0xfeu8,0xacu8,0x64u8,0xf3u8,0xc7u8,0xe0u8]);
45pub const ICAPETHERMOPROPERTYROUTINE_UUID:CapeUUID=CapeUUID::from_slice(&[0x82u8,0xf6u8,0xa4u8,0x58u8,0x2cu8,0xd7u8,0x4du8,0x5du8,0x8du8,0x6fu8,0xb8u8,0x02u8,0x78u8,0xdau8,0x3eu8,0xdbu8]);
46pub const ICAPETHERMOEQUILIBRIUMROUTINE_UUID:CapeUUID=CapeUUID::from_slice(&[0x33u8,0x54u8,0x3fu8,0x96u8,0x97u8,0x08u8,0x4eu8,0xf3u8,0x92u8,0x27u8,0x3fu8,0x8du8,0x37u8,0x5fu8,0x6eu8,0xb5u8]);
47pub const ICAPETHERMOUNIVERSALCONSTANT_UUID:CapeUUID=CapeUUID::from_slice(&[0xbeu8,0x14u8,0x7du8,0xcfu8,0x11u8,0xe0u8,0x4eu8,0xdeu8,0x96u8,0x4au8,0xa4u8,0x3fu8,0xa5u8,0x53u8,0xa9u8,0x90u8]);
48pub const ICAPETHERMOPROPERTYPACKAGEMANAGER_UUID:CapeUUID=CapeUUID::from_slice(&[0xa3u8,0xa9u8,0x4fu8,0x1eu8,0x32u8,0xf1u8,0x47u8,0xe3u8,0xb0u8,0x19u8,0x57u8,0x18u8,0xfau8,0x56u8,0x07u8,0x57u8]);
49pub const ICAPEUNIT_UUID:CapeUUID=CapeUUID::from_slice(&[0xafu8,0x5cu8,0x2cu8,0x3fu8,0x57u8,0xe1u8,0x47u8,0x85u8,0x83u8,0x7fu8,0x7au8,0x93u8,0xdbu8,0xcdu8,0x03u8,0xfbu8]);
50pub const ICAPEUNITPORT_UUID:CapeUUID=CapeUUID::from_slice(&[0xa6u8,0x0du8,0x7au8,0x23u8,0x50u8,0x4du8,0x4au8,0xdau8,0xb6u8,0xcbu8,0x09u8,0xd6u8,0xd9u8,0x4du8,0x31u8,0x9eu8]);
51pub const ICAPEPERSISTWRITER_UUID:CapeUUID=CapeUUID::from_slice(&[0xa8u8,0xc7u8,0x92u8,0x8au8,0xe2u8,0x88u8,0x4eu8,0x83u8,0xadu8,0xbdu8,0x0au8,0xbbu8,0x39u8,0x4au8,0xe5u8,0xa6u8]);
52pub const ICAPEPERSISTREADER_UUID:CapeUUID=CapeUUID::from_slice(&[0x82u8,0x74u8,0x18u8,0xa6u8,0x65u8,0x15u8,0x40u8,0xcfu8,0x81u8,0xa7u8,0xdau8,0xb8u8,0xcfu8,0x8fu8,0xa1u8,0x76u8]);
53pub const ICAPEPERSIST_UUID:CapeUUID=CapeUUID::from_slice(&[0xabu8,0xa6u8,0x5du8,0xc8u8,0x93u8,0xf9u8,0x49u8,0x53u8,0x89u8,0x7du8,0xa8u8,0xfau8,0x8eu8,0xa4u8,0xeeu8,0xaeu8]);
54pub const ICAPEREPORT_UUID:CapeUUID=CapeUUID::from_slice(&[0x99u8,0xd2u8,0x06u8,0x68u8,0xcau8,0x44u8,0x42u8,0x37u8,0x8bu8,0x13u8,0x8du8,0x51u8,0x35u8,0xf4u8,0xd1u8,0x65u8]);
55pub const ICAPEFLOWSHEETMONITORINGCOMPONENT_UUID:CapeUUID=CapeUUID::from_slice(&[0x35u8,0xb5u8,0x78u8,0x15u8,0xfcu8,0x6du8,0x4cu8,0x03u8,0xabu8,0xbbu8,0xe2u8,0xf5u8,0xdau8,0x76u8,0x77u8,0xb0u8]);
56pub const ICAPESTREAM_UUID:CapeUUID=CapeUUID::from_slice(&[0xacu8,0x5fu8,0x88u8,0x16u8,0xbdu8,0x51u8,0x4bu8,0x3du8,0xb7u8,0xa4u8,0x05u8,0xffu8,0xddu8,0xdeu8,0xf1u8,0xc3u8]);
57pub const ICAPEFLOWSHEETMONITORINGEVENTSINK_UUID:CapeUUID=CapeUUID::from_slice(&[0xebu8,0x4eu8,0x3bu8,0x42u8,0x77u8,0xfeu8,0x41u8,0xc5u8,0x81u8,0x48u8,0x47u8,0x60u8,0x82u8,0xccu8,0x02u8,0x53u8]);
58pub const ICAPEFLOWSHEETMONITORING_UUID:CapeUUID=CapeUUID::from_slice(&[0x6bu8,0x1cu8,0xf4u8,0xa3u8,0xa3u8,0xe3u8,0x4eu8,0x96u8,0x9au8,0x10u8,0x73u8,0x75u8,0x00u8,0x63u8,0x72u8,0xf5u8]);
59pub const ICAPETHERMOMATERIALCUSTOMDATA_UUID:CapeUUID=CapeUUID::from_slice(&[0x82u8,0xb7u8,0xdau8,0xbcu8,0x66u8,0xd2u8,0x4fu8,0xefu8,0x9au8,0x21u8,0x95u8,0xa7u8,0x44u8,0x00u8,0xb2u8,0xb2u8]);
60pub const ICAPECUSTOMDATASOURCE_UUID:CapeUUID=CapeUUID::from_slice(&[0x97u8,0xc8u8,0x0au8,0xb8u8,0x95u8,0xd7u8,0x46u8,0xd8u8,0x90u8,0x29u8,0x5cu8,0x16u8,0x72u8,0xd2u8,0x36u8,0xc9u8]);
61pub const ICAPETHERMOPETROLEUMFRACTIONS_UUID:CapeUUID=CapeUUID::from_slice(&[0x1eu8,0xbau8,0xd1u8,0x72u8,0x2bu8,0xe9u8,0x4au8,0x9eu8,0x95u8,0x49u8,0x03u8,0x07u8,0xe0u8,0x90u8,0xb0u8,0x28u8]);
62
63#[repr(i32)]
70#[derive(Debug,PartialEq,Eq,Clone,Copy)]
71pub enum CapeParamType {
72 CapeParameterReal = 0,
73 CapeParameterInteger = 1,
74 CapeParameterString = 2,
75 CapeParameterBoolean = 3,
76 CapeParameterArrayReal = 4,
77 CapeParameterArrayInteger = 5,
78 CapeParameterArrayString = 6,
79 CapeParameterArrayBoolean = 7,
80}
81
82impl CapeParamType {
83 pub fn from(value: i32) -> Option<CapeParamType> {
112 match value {
113 0 => Some(CapeParamType::CapeParameterReal),
114 1 => Some(CapeParamType::CapeParameterInteger),
115 2 => Some(CapeParamType::CapeParameterString),
116 3 => Some(CapeParamType::CapeParameterBoolean),
117 4 => Some(CapeParamType::CapeParameterArrayReal),
118 5 => Some(CapeParamType::CapeParameterArrayInteger),
119 6 => Some(CapeParamType::CapeParameterArrayString),
120 7 => Some(CapeParamType::CapeParameterArrayBoolean),
121 _ => None,
122 }
123 }
124 pub fn as_string(&self) -> &str {
126 match self {
127 Self::CapeParameterReal => "CapeParameterReal",
128 Self::CapeParameterInteger => "CapeParameterInteger",
129 Self::CapeParameterString => "CapeParameterString",
130 Self::CapeParameterBoolean => "CapeParameterBoolean",
131 Self::CapeParameterArrayReal => "CapeParameterArrayReal",
132 Self::CapeParameterArrayInteger => "CapeParameterArrayInteger",
133 Self::CapeParameterArrayString => "CapeParameterArrayString",
134 Self::CapeParameterArrayBoolean => "CapeParameterArrayBoolean",
135 }
136 }
137 pub fn iter() -> CapeParamTypeIterator {
149 CapeParamTypeIterator { current: 0 }
150 }
151}
152
153pub struct CapeParamTypeIterator {
167 current: i32,
168}
169impl Iterator for CapeParamTypeIterator {
170 type Item = CapeParamType;
171 fn next(&mut self) -> Option<Self::Item> {
172 if self.current>=8 {
173 None
174 } else {
175 let result=CapeParamType::from(self.current);
176 self.current+=1;
177 result
178 }
179 }
180}
181impl fmt::Display for CapeParamType {
182 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
183 write!(f,"{}",self.as_string())
184 }
185}
186#[repr(i32)]
191#[derive(Debug,PartialEq,Eq,Clone,Copy)]
192pub enum CapeDimensionality {
193 CapeMeter = 0,
194 CapeKilogram = 1,
195 CapeSecond = 2,
196 CapeAmpere = 3,
197 CapeKelvin = 4,
198 CapeMole = 5,
199 CapeCandela = 6,
200 CapeRadian = 7,
201 CapeDifferenceFlag = 8,
202 CapeDimensionalityLength = 9,
203}
204
205impl CapeDimensionality {
206 pub fn from(value: i32) -> Option<CapeDimensionality> {
239 match value {
240 0 => Some(CapeDimensionality::CapeMeter),
241 1 => Some(CapeDimensionality::CapeKilogram),
242 2 => Some(CapeDimensionality::CapeSecond),
243 3 => Some(CapeDimensionality::CapeAmpere),
244 4 => Some(CapeDimensionality::CapeKelvin),
245 5 => Some(CapeDimensionality::CapeMole),
246 6 => Some(CapeDimensionality::CapeCandela),
247 7 => Some(CapeDimensionality::CapeRadian),
248 8 => Some(CapeDimensionality::CapeDifferenceFlag),
249 9 => Some(CapeDimensionality::CapeDimensionalityLength),
250 _ => None,
251 }
252 }
253 pub fn as_string(&self) -> &str {
255 match self {
256 Self::CapeMeter => "CapeMeter",
257 Self::CapeKilogram => "CapeKilogram",
258 Self::CapeSecond => "CapeSecond",
259 Self::CapeAmpere => "CapeAmpere",
260 Self::CapeKelvin => "CapeKelvin",
261 Self::CapeMole => "CapeMole",
262 Self::CapeCandela => "CapeCandela",
263 Self::CapeRadian => "CapeRadian",
264 Self::CapeDifferenceFlag => "CapeDifferenceFlag",
265 Self::CapeDimensionalityLength => "CapeDimensionalityLength",
266 }
267 }
268 pub fn iter() -> CapeDimensionalityIterator {
280 CapeDimensionalityIterator { current: 0 }
281 }
282}
283
284pub struct CapeDimensionalityIterator {
298 current: i32,
299}
300impl Iterator for CapeDimensionalityIterator {
301 type Item = CapeDimensionality;
302 fn next(&mut self) -> Option<Self::Item> {
303 if self.current>=10 {
304 None
305 } else {
306 let result=CapeDimensionality::from(self.current);
307 self.current+=1;
308 result
309 }
310 }
311}
312impl fmt::Display for CapeDimensionality {
313 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
314 write!(f,"{}",self.as_string())
315 }
316}
317#[repr(i32)]
322#[derive(Debug,PartialEq,Eq,Clone,Copy)]
323pub enum CapePersistedDataType {
324 CapePersistedReal = 0,
325 CapePersistedInteger = 1,
326 CapePersistedBoolean = 2,
327 CapePersistedString = 3,
328 CapePersistedEnumeration = 4,
329 CapePersistedValue = 5,
330 CapePersistedArrayReal = 6,
331 CapePersistedArrayInteger = 7,
332 CapePersistedArrayBoolean = 8,
333 CapePersistedArrayString = 9,
334 CapePersistedArrayEnumeration = 10,
335 CapePersistedArrayValue = 11,
336 CapePersistedArrayByte = 12,
337}
338
339impl CapePersistedDataType {
340 pub fn from(value: i32) -> Option<CapePersistedDataType> {
379 match value {
380 0 => Some(CapePersistedDataType::CapePersistedReal),
381 1 => Some(CapePersistedDataType::CapePersistedInteger),
382 2 => Some(CapePersistedDataType::CapePersistedBoolean),
383 3 => Some(CapePersistedDataType::CapePersistedString),
384 4 => Some(CapePersistedDataType::CapePersistedEnumeration),
385 5 => Some(CapePersistedDataType::CapePersistedValue),
386 6 => Some(CapePersistedDataType::CapePersistedArrayReal),
387 7 => Some(CapePersistedDataType::CapePersistedArrayInteger),
388 8 => Some(CapePersistedDataType::CapePersistedArrayBoolean),
389 9 => Some(CapePersistedDataType::CapePersistedArrayString),
390 10 => Some(CapePersistedDataType::CapePersistedArrayEnumeration),
391 11 => Some(CapePersistedDataType::CapePersistedArrayValue),
392 12 => Some(CapePersistedDataType::CapePersistedArrayByte),
393 _ => None,
394 }
395 }
396 pub fn as_string(&self) -> &str {
398 match self {
399 Self::CapePersistedReal => "CapePersistedReal",
400 Self::CapePersistedInteger => "CapePersistedInteger",
401 Self::CapePersistedBoolean => "CapePersistedBoolean",
402 Self::CapePersistedString => "CapePersistedString",
403 Self::CapePersistedEnumeration => "CapePersistedEnumeration",
404 Self::CapePersistedValue => "CapePersistedValue",
405 Self::CapePersistedArrayReal => "CapePersistedArrayReal",
406 Self::CapePersistedArrayInteger => "CapePersistedArrayInteger",
407 Self::CapePersistedArrayBoolean => "CapePersistedArrayBoolean",
408 Self::CapePersistedArrayString => "CapePersistedArrayString",
409 Self::CapePersistedArrayEnumeration => "CapePersistedArrayEnumeration",
410 Self::CapePersistedArrayValue => "CapePersistedArrayValue",
411 Self::CapePersistedArrayByte => "CapePersistedArrayByte",
412 }
413 }
414 pub fn iter() -> CapePersistedDataTypeIterator {
426 CapePersistedDataTypeIterator { current: 0 }
427 }
428}
429
430pub struct CapePersistedDataTypeIterator {
444 current: i32,
445}
446impl Iterator for CapePersistedDataTypeIterator {
447 type Item = CapePersistedDataType;
448 fn next(&mut self) -> Option<Self::Item> {
449 if self.current>=13 {
450 None
451 } else {
452 let result=CapePersistedDataType::from(self.current);
453 self.current+=1;
454 result
455 }
456 }
457}
458impl fmt::Display for CapePersistedDataType {
459 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
460 write!(f,"{}",self.as_string())
461 }
462}
463#[repr(i32)]
468#[derive(Debug,PartialEq,Eq,Clone,Copy)]
469pub enum CapeParamMode {
470 CapeInput = 1,
471 CapeOutput = 2,
472 CapeInputOutput = 3,
473}
474
475impl CapeParamMode {
476 pub fn from(value: i32) -> Option<CapeParamMode> {
495 match value {
496 1 => Some(CapeParamMode::CapeInput),
497 2 => Some(CapeParamMode::CapeOutput),
498 3 => Some(CapeParamMode::CapeInputOutput),
499 _ => None,
500 }
501 }
502 pub fn as_string(&self) -> &str {
504 match self {
505 Self::CapeInput => "CapeInput",
506 Self::CapeOutput => "CapeOutput",
507 Self::CapeInputOutput => "CapeInputOutput",
508 }
509 }
510 pub fn iter() -> CapeParamModeIterator {
522 CapeParamModeIterator { current: 0 }
523 }
524}
525
526pub struct CapeParamModeIterator {
540 current: i32,
541}
542impl Iterator for CapeParamModeIterator {
543 type Item = CapeParamMode;
544 fn next(&mut self) -> Option<Self::Item> {
545 if self.current>=3 {
546 None
547 } else {
548 let result=CapeParamMode::from(self.current);
549 self.current+=1;
550 result
551 }
552 }
553}
554impl fmt::Display for CapeParamMode {
555 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
556 write!(f,"{}",self.as_string())
557 }
558}
559#[repr(i32)]
564#[derive(Debug,PartialEq,Eq,Clone,Copy)]
565pub enum CapeValidationStatus {
566 CapeNotValidated = 0,
567 CapeInvalid = 1,
568 CapeValid = 2,
569}
570
571impl CapeValidationStatus {
572 pub fn from(value: i32) -> Option<CapeValidationStatus> {
591 match value {
592 0 => Some(CapeValidationStatus::CapeNotValidated),
593 1 => Some(CapeValidationStatus::CapeInvalid),
594 2 => Some(CapeValidationStatus::CapeValid),
595 _ => None,
596 }
597 }
598 pub fn as_string(&self) -> &str {
600 match self {
601 Self::CapeNotValidated => "CapeNotValidated",
602 Self::CapeInvalid => "CapeInvalid",
603 Self::CapeValid => "CapeValid",
604 }
605 }
606 pub fn iter() -> CapeValidationStatusIterator {
618 CapeValidationStatusIterator { current: 0 }
619 }
620}
621
622pub struct CapeValidationStatusIterator {
636 current: i32,
637}
638impl Iterator for CapeValidationStatusIterator {
639 type Item = CapeValidationStatus;
640 fn next(&mut self) -> Option<Self::Item> {
641 if self.current>=3 {
642 None
643 } else {
644 let result=CapeValidationStatus::from(self.current);
645 self.current+=1;
646 result
647 }
648 }
649}
650impl fmt::Display for CapeValidationStatus {
651 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
652 write!(f,"{}",self.as_string())
653 }
654}
655#[repr(i32)]
660#[derive(Debug,PartialEq,Eq,Clone,Copy)]
661pub enum CapeCalculationCode {
662 CapeNoCalculation = 0,
663 CapeLogFugacityCoefficients = 1,
664 CapeTDerivative = 2,
665 CapePDerivative = 4,
666 CapeMoleNumbersDerivatives = 8,
667}
668
669impl CapeCalculationCode {
670 pub fn from(value: i32) -> Option<CapeCalculationCode> {
693 match value {
694 0 => Some(CapeCalculationCode::CapeNoCalculation),
695 1 => Some(CapeCalculationCode::CapeLogFugacityCoefficients),
696 2 => Some(CapeCalculationCode::CapeTDerivative),
697 4 => Some(CapeCalculationCode::CapePDerivative),
698 8 => Some(CapeCalculationCode::CapeMoleNumbersDerivatives),
699 _ => None,
700 }
701 }
702 pub fn as_string(&self) -> &str {
704 match self {
705 Self::CapeNoCalculation => "CapeNoCalculation",
706 Self::CapeLogFugacityCoefficients => "CapeLogFugacityCoefficients",
707 Self::CapeTDerivative => "CapeTDerivative",
708 Self::CapePDerivative => "CapePDerivative",
709 Self::CapeMoleNumbersDerivatives => "CapeMoleNumbersDerivatives",
710 }
711 }
712 pub fn iter() -> CapeCalculationCodeIterator {
724 CapeCalculationCodeIterator { current: 0 }
725 }
726}
727
728pub struct CapeCalculationCodeIterator {
742 current: i32,
743}
744impl Iterator for CapeCalculationCodeIterator {
745 type Item = CapeCalculationCode;
746 fn next(&mut self) -> Option<Self::Item> {
747 if self.current>=5 {
748 None
749 } else {
750 let result=CapeCalculationCode::from(self.current);
751 self.current+=1;
752 result
753 }
754 }
755}
756impl fmt::Display for CapeCalculationCode {
757 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
758 write!(f,"{}",self.as_string())
759 }
760}
761#[repr(i32)]
766#[derive(Debug,PartialEq,Eq,Clone,Copy)]
767pub enum CapePhaseStatus {
768 CapeUnknownphasestatus = 0,
769 CapeAtequilibrium = 1,
770 CapeEstimates = 2,
771}
772
773impl CapePhaseStatus {
774 pub fn from(value: i32) -> Option<CapePhaseStatus> {
793 match value {
794 0 => Some(CapePhaseStatus::CapeUnknownphasestatus),
795 1 => Some(CapePhaseStatus::CapeAtequilibrium),
796 2 => Some(CapePhaseStatus::CapeEstimates),
797 _ => None,
798 }
799 }
800 pub fn as_string(&self) -> &str {
802 match self {
803 Self::CapeUnknownphasestatus => "CapeUnknownphasestatus",
804 Self::CapeAtequilibrium => "CapeAtequilibrium",
805 Self::CapeEstimates => "CapeEstimates",
806 }
807 }
808 pub fn iter() -> CapePhaseStatusIterator {
820 CapePhaseStatusIterator { current: 0 }
821 }
822}
823
824pub struct CapePhaseStatusIterator {
838 current: i32,
839}
840impl Iterator for CapePhaseStatusIterator {
841 type Item = CapePhaseStatus;
842 fn next(&mut self) -> Option<Self::Item> {
843 if self.current>=3 {
844 None
845 } else {
846 let result=CapePhaseStatus::from(self.current);
847 self.current+=1;
848 result
849 }
850 }
851}
852impl fmt::Display for CapePhaseStatus {
853 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
854 write!(f,"{}",self.as_string())
855 }
856}
857#[repr(i32)]
862#[derive(Debug,PartialEq,Eq,Clone,Copy)]
863pub enum CapeEditResult {
864 CapeModified = 0,
865 CapeNotModified = 1,
866}
867
868impl CapeEditResult {
869 pub fn from(value: i32) -> Option<CapeEditResult> {
886 match value {
887 0 => Some(CapeEditResult::CapeModified),
888 1 => Some(CapeEditResult::CapeNotModified),
889 _ => None,
890 }
891 }
892 pub fn as_string(&self) -> &str {
894 match self {
895 Self::CapeModified => "CapeModified",
896 Self::CapeNotModified => "CapeNotModified",
897 }
898 }
899 pub fn iter() -> CapeEditResultIterator {
911 CapeEditResultIterator { current: 0 }
912 }
913}
914
915pub struct CapeEditResultIterator {
929 current: i32,
930}
931impl Iterator for CapeEditResultIterator {
932 type Item = CapeEditResult;
933 fn next(&mut self) -> Option<Self::Item> {
934 if self.current>=2 {
935 None
936 } else {
937 let result=CapeEditResult::from(self.current);
938 self.current+=1;
939 result
940 }
941 }
942}
943impl fmt::Display for CapeEditResult {
944 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
945 write!(f,"{}",self.as_string())
946 }
947}
948#[repr(i32)]
953#[derive(Debug,PartialEq,Eq,Clone,Copy)]
954pub enum CapePortType {
955 CapeMaterial = 0,
956 CapeEnergy = 1,
957 CapeInformation = 2,
958 CapeAny = 3,
959}
960
961impl CapePortType {
962 pub fn from(value: i32) -> Option<CapePortType> {
983 match value {
984 0 => Some(CapePortType::CapeMaterial),
985 1 => Some(CapePortType::CapeEnergy),
986 2 => Some(CapePortType::CapeInformation),
987 3 => Some(CapePortType::CapeAny),
988 _ => None,
989 }
990 }
991 pub fn as_string(&self) -> &str {
993 match self {
994 Self::CapeMaterial => "CapeMaterial",
995 Self::CapeEnergy => "CapeEnergy",
996 Self::CapeInformation => "CapeInformation",
997 Self::CapeAny => "CapeAny",
998 }
999 }
1000 pub fn iter() -> CapePortTypeIterator {
1012 CapePortTypeIterator { current: 0 }
1013 }
1014}
1015
1016pub struct CapePortTypeIterator {
1030 current: i32,
1031}
1032impl Iterator for CapePortTypeIterator {
1033 type Item = CapePortType;
1034 fn next(&mut self) -> Option<Self::Item> {
1035 if self.current>=4 {
1036 None
1037 } else {
1038 let result=CapePortType::from(self.current);
1039 self.current+=1;
1040 result
1041 }
1042 }
1043}
1044impl fmt::Display for CapePortType {
1045 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1046 write!(f,"{}",self.as_string())
1047 }
1048}
1049#[repr(i32)]
1054#[derive(Debug,PartialEq,Eq,Clone,Copy)]
1055pub enum CapePortDirection {
1056 CapeInlet = 0,
1057 CapeOutlet = 1,
1058 CapeInletOutlet = 2,
1059}
1060
1061impl CapePortDirection {
1062 pub fn from(value: i32) -> Option<CapePortDirection> {
1081 match value {
1082 0 => Some(CapePortDirection::CapeInlet),
1083 1 => Some(CapePortDirection::CapeOutlet),
1084 2 => Some(CapePortDirection::CapeInletOutlet),
1085 _ => None,
1086 }
1087 }
1088 pub fn as_string(&self) -> &str {
1090 match self {
1091 Self::CapeInlet => "CapeInlet",
1092 Self::CapeOutlet => "CapeOutlet",
1093 Self::CapeInletOutlet => "CapeInletOutlet",
1094 }
1095 }
1096 pub fn iter() -> CapePortDirectionIterator {
1108 CapePortDirectionIterator { current: 0 }
1109 }
1110}
1111
1112pub struct CapePortDirectionIterator {
1126 current: i32,
1127}
1128impl Iterator for CapePortDirectionIterator {
1129 type Item = CapePortDirection;
1130 fn next(&mut self) -> Option<Self::Item> {
1131 if self.current>=3 {
1132 None
1133 } else {
1134 let result=CapePortDirection::from(self.current);
1135 self.current+=1;
1136 result
1137 }
1138 }
1139}
1140impl fmt::Display for CapePortDirection {
1141 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1142 write!(f,"{}",self.as_string())
1143 }
1144}
1145#[repr(i32)]
1150#[derive(Debug,PartialEq,Eq,Clone,Copy)]
1151pub enum CapeSolutionStatus {
1152 CapeSolved = 0,
1153 CapeNotSolved = 1,
1154}
1155
1156impl CapeSolutionStatus {
1157 pub fn from(value: i32) -> Option<CapeSolutionStatus> {
1174 match value {
1175 0 => Some(CapeSolutionStatus::CapeSolved),
1176 1 => Some(CapeSolutionStatus::CapeNotSolved),
1177 _ => None,
1178 }
1179 }
1180 pub fn as_string(&self) -> &str {
1182 match self {
1183 Self::CapeSolved => "CapeSolved",
1184 Self::CapeNotSolved => "CapeNotSolved",
1185 }
1186 }
1187 pub fn iter() -> CapeSolutionStatusIterator {
1199 CapeSolutionStatusIterator { current: 0 }
1200 }
1201}
1202
1203pub struct CapeSolutionStatusIterator {
1217 current: i32,
1218}
1219impl Iterator for CapeSolutionStatusIterator {
1220 type Item = CapeSolutionStatus;
1221 fn next(&mut self) -> Option<Self::Item> {
1222 if self.current>=2 {
1223 None
1224 } else {
1225 let result=CapeSolutionStatus::from(self.current);
1226 self.current+=1;
1227 result
1228 }
1229 }
1230}
1231impl fmt::Display for CapeSolutionStatus {
1232 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1233 write!(f,"{}",self.as_string())
1234 }
1235}
1236#[repr(i32)]
1241#[derive(Debug,PartialEq,Eq,Clone,Copy)]
1242pub enum CapeStreamType {
1243 CapeAnyStreams = 0,
1244 CapeMaterialStream = 1,
1245 CapeEnergyStream = 2,
1246 CapeInformationStream = 3,
1247}
1248
1249impl CapeStreamType {
1250 pub fn from(value: i32) -> Option<CapeStreamType> {
1271 match value {
1272 0 => Some(CapeStreamType::CapeAnyStreams),
1273 1 => Some(CapeStreamType::CapeMaterialStream),
1274 2 => Some(CapeStreamType::CapeEnergyStream),
1275 3 => Some(CapeStreamType::CapeInformationStream),
1276 _ => None,
1277 }
1278 }
1279 pub fn as_string(&self) -> &str {
1281 match self {
1282 Self::CapeAnyStreams => "CapeAnyStreams",
1283 Self::CapeMaterialStream => "CapeMaterialStream",
1284 Self::CapeEnergyStream => "CapeEnergyStream",
1285 Self::CapeInformationStream => "CapeInformationStream",
1286 }
1287 }
1288 pub fn iter() -> CapeStreamTypeIterator {
1300 CapeStreamTypeIterator { current: 0 }
1301 }
1302}
1303
1304pub struct CapeStreamTypeIterator {
1318 current: i32,
1319}
1320impl Iterator for CapeStreamTypeIterator {
1321 type Item = CapeStreamType;
1322 fn next(&mut self) -> Option<Self::Item> {
1323 if self.current>=4 {
1324 None
1325 } else {
1326 let result=CapeStreamType::from(self.current);
1327 self.current+=1;
1328 result
1329 }
1330 }
1331}
1332impl fmt::Display for CapeStreamType {
1333 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1334 write!(f,"{}",self.as_string())
1335 }
1336}
1337#[repr(i32)]
1342#[derive(Debug,PartialEq,Eq,Clone,Copy)]
1343pub enum CapeMonitoringEvent {
1344 CapeUnitOperationAdded = 0,
1345 CapeUnitOperationRenamed = 1,
1346 CapeUnitOperationRemoved = 2,
1347 CapeStreamAdded = 3,
1348 CapeStreamRenamed = 4,
1349 CapeStreamRemoved = 5,
1350 CapeConnectionChanged = 6,
1351 CapeFlowsheetSolutionStatusChanged = 7,
1352 CapeNextTimeStep = 8,
1353 CapeFlowsheetValidationStatusChanged = 9,
1354}
1355
1356impl CapeMonitoringEvent {
1357 pub fn from(value: i32) -> Option<CapeMonitoringEvent> {
1390 match value {
1391 0 => Some(CapeMonitoringEvent::CapeUnitOperationAdded),
1392 1 => Some(CapeMonitoringEvent::CapeUnitOperationRenamed),
1393 2 => Some(CapeMonitoringEvent::CapeUnitOperationRemoved),
1394 3 => Some(CapeMonitoringEvent::CapeStreamAdded),
1395 4 => Some(CapeMonitoringEvent::CapeStreamRenamed),
1396 5 => Some(CapeMonitoringEvent::CapeStreamRemoved),
1397 6 => Some(CapeMonitoringEvent::CapeConnectionChanged),
1398 7 => Some(CapeMonitoringEvent::CapeFlowsheetSolutionStatusChanged),
1399 8 => Some(CapeMonitoringEvent::CapeNextTimeStep),
1400 9 => Some(CapeMonitoringEvent::CapeFlowsheetValidationStatusChanged),
1401 _ => None,
1402 }
1403 }
1404 pub fn as_string(&self) -> &str {
1406 match self {
1407 Self::CapeUnitOperationAdded => "CapeUnitOperationAdded",
1408 Self::CapeUnitOperationRenamed => "CapeUnitOperationRenamed",
1409 Self::CapeUnitOperationRemoved => "CapeUnitOperationRemoved",
1410 Self::CapeStreamAdded => "CapeStreamAdded",
1411 Self::CapeStreamRenamed => "CapeStreamRenamed",
1412 Self::CapeStreamRemoved => "CapeStreamRemoved",
1413 Self::CapeConnectionChanged => "CapeConnectionChanged",
1414 Self::CapeFlowsheetSolutionStatusChanged => "CapeFlowsheetSolutionStatusChanged",
1415 Self::CapeNextTimeStep => "CapeNextTimeStep",
1416 Self::CapeFlowsheetValidationStatusChanged => "CapeFlowsheetValidationStatusChanged",
1417 }
1418 }
1419 pub fn iter() -> CapeMonitoringEventIterator {
1431 CapeMonitoringEventIterator { current: 0 }
1432 }
1433}
1434
1435pub struct CapeMonitoringEventIterator {
1449 current: i32,
1450}
1451impl Iterator for CapeMonitoringEventIterator {
1452 type Item = CapeMonitoringEvent;
1453 fn next(&mut self) -> Option<Self::Item> {
1454 if self.current>=10 {
1455 None
1456 } else {
1457 let result=CapeMonitoringEvent::from(self.current);
1458 self.current+=1;
1459 result
1460 }
1461 }
1462}
1463impl fmt::Display for CapeMonitoringEvent {
1464 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1465 write!(f,"{}",self.as_string())
1466 }
1467}
1468
1469pub trait ICapeIdentification {
1476 fn get_component_name(&mut self,name:&mut CapeStringOut) -> Result<(),COBIAError>;
1477 fn set_component_name(&mut self,name:&CapeStringIn) -> Result<(),COBIAError>;
1478 fn get_component_description(&mut self,desc:&mut CapeStringOut) -> Result<(),COBIAError>;
1479 fn set_component_description(&mut self,desc:&CapeStringIn) -> Result<(),COBIAError>;
1480}
1481
1482pub trait ICapeIdentificationImpl : ICapeIdentification {
1483 type T: ICapeInterfaceImpl+ICapeIdentificationImpl;
1484
1485 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
1486
1487 fn init_interface() -> crate::C::ICapeInterface {
1489 crate::C::ICapeInterface {
1490 me: std::ptr::null_mut(),
1491 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeIdentification_VTable).cast_mut()
1492 as *mut crate::C::ICapeInterface_VTable,
1493 }
1494 }
1495
1496 fn init<Timpl: ICapeIdentificationImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
1497 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeIdentification =
1498 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeIdentification;
1499 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
1500 u.add_interface(
1501 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeIdentification_UUID),
1502 iface as *mut crate::C::ICapeInterface,
1503 );
1504 }
1505
1506 extern "C" fn raw_get_component_name(me: *mut std::ffi::c_void,name:*mut crate::C::ICapeString) -> crate::C::CapeResult {
1507 if name.is_null() {
1508 return COBIAERR_NULLPOINTER;
1509 }
1510 let p = me as *mut Self::T;
1511 let myself=unsafe { &mut *p };
1512 if name.is_null() {
1513 return COBIAERR_NULLPOINTER;
1514 }
1515 let mut name=unsafe{*((&name as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
1516 let mut name=CapeStringOut::new(&mut name);
1517 match myself.get_component_name(&mut name) {
1518 Ok(_) => COBIAERR_NOERROR,
1519 Err(e) => myself.set_last_error(e,"ICapeIdentification::GetComponentName")
1520 }
1521 }
1522
1523 extern "C" fn raw_set_component_name(me: *mut std::ffi::c_void,name:*mut crate::C::ICapeString) -> crate::C::CapeResult {
1524 let p = me as *mut Self::T;
1525 let myself=unsafe { &mut *p };
1526 let name=CapeStringIn::new(&name);
1527 match myself.set_component_name(&name) {
1528 Ok(_) => COBIAERR_NOERROR,
1529 Err(e) => myself.set_last_error(e,"ICapeIdentification::SetComponentName")
1530 }
1531 }
1532
1533 extern "C" fn raw_get_component_description(me: *mut std::ffi::c_void,desc:*mut crate::C::ICapeString) -> crate::C::CapeResult {
1534 if desc.is_null() {
1535 return COBIAERR_NULLPOINTER;
1536 }
1537 let p = me as *mut Self::T;
1538 let myself=unsafe { &mut *p };
1539 if desc.is_null() {
1540 return COBIAERR_NULLPOINTER;
1541 }
1542 let mut desc=unsafe{*((&desc as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
1543 let mut desc=CapeStringOut::new(&mut desc);
1544 match myself.get_component_description(&mut desc) {
1545 Ok(_) => COBIAERR_NOERROR,
1546 Err(e) => myself.set_last_error(e,"ICapeIdentification::GetComponentDescription")
1547 }
1548 }
1549
1550 extern "C" fn raw_set_component_description(me: *mut std::ffi::c_void,desc:*mut crate::C::ICapeString) -> crate::C::CapeResult {
1551 let p = me as *mut Self::T;
1552 let myself=unsafe { &mut *p };
1553 let desc=CapeStringIn::new(&desc);
1554 match myself.set_component_description(&desc) {
1555 Ok(_) => COBIAERR_NOERROR,
1556 Err(e) => myself.set_last_error(e,"ICapeIdentification::SetComponentDescription")
1557 }
1558 }
1559
1560 const VTABLE: C::CAPEOPEN_1_2_ICapeIdentification_VTable =
1561 C::CAPEOPEN_1_2_ICapeIdentification_VTable {
1562 base: crate::C::ICapeInterface_VTable {
1563 addReference: Some(Self::T::raw_add_reference),
1564 release: Some(Self::T::raw_release),
1565 queryInterface: Some(Self::T::raw_query_interface),
1566 getLastError: Some(Self::T::raw_get_last_error),
1567 },
1568 getComponentName: Some(Self::T::raw_get_component_name),
1569 putComponentName: Some(Self::T::raw_set_component_name),
1570 getComponentDescription: Some(Self::T::raw_get_component_description),
1571 putComponentDescription: Some(Self::T::raw_set_component_description),
1572 };
1573}
1574
1575#[cape_smart_pointer(ICAPEIDENTIFICATION_UUID)]
1576pub struct CapeIdentification {
1577 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeIdentification,
1578}
1579
1580impl CapeIdentification {
1581
1582 pub fn get_component_name<TypeOfName:CapeStringProviderOut>(&self,name:&mut TypeOfName) -> Result<(),COBIAError> {
1583 let result_code = unsafe {
1584 ((*(*self.interface).vTbl).getComponentName.unwrap())((*self.interface).me,(&name.as_cape_string_out() as *const crate::C::ICapeString).cast_mut())
1585 };
1586 match result_code {
1587 COBIAERR_NOERROR => {Ok(())},
1588 _ => Err(COBIAError::from_object(result_code,self))
1589 }
1590 }
1591
1592 pub fn set_component_name<TypeOfName:CapeStringProviderIn>(&self,name:&TypeOfName) -> Result<(),COBIAError> {
1593 let result_code = unsafe {
1594 ((*(*self.interface).vTbl).putComponentName.unwrap())((*self.interface).me,(&name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut())
1595 };
1596 match result_code {
1597 COBIAERR_NOERROR => {Ok(())},
1598 _ => Err(COBIAError::from_object(result_code,self))
1599 }
1600 }
1601
1602 pub fn get_component_description<TypeOfDesc:CapeStringProviderOut>(&self,desc:&mut TypeOfDesc) -> Result<(),COBIAError> {
1603 let result_code = unsafe {
1604 ((*(*self.interface).vTbl).getComponentDescription.unwrap())((*self.interface).me,(&desc.as_cape_string_out() as *const crate::C::ICapeString).cast_mut())
1605 };
1606 match result_code {
1607 COBIAERR_NOERROR => {Ok(())},
1608 _ => Err(COBIAError::from_object(result_code,self))
1609 }
1610 }
1611
1612 pub fn set_component_description<TypeOfDesc:CapeStringProviderIn>(&self,desc:&TypeOfDesc) -> Result<(),COBIAError> {
1613 let result_code = unsafe {
1614 ((*(*self.interface).vTbl).putComponentDescription.unwrap())((*self.interface).me,(&desc.as_cape_string_in() as *const crate::C::ICapeString).cast_mut())
1615 };
1616 match result_code {
1617 COBIAERR_NOERROR => {Ok(())},
1618 _ => Err(COBIAError::from_object(result_code,self))
1619 }
1620 }
1621
1622}
1623
1624pub trait ICapeCollection<CollectionItem:CapeSmartPointer> {
1629 fn item_by_index(&mut self,index:CapeInteger) -> Result<CollectionItem,COBIAError>;
1630 fn item_by_name(&mut self,name:&CapeStringIn) -> Result<CollectionItem,COBIAError>;
1631 fn get_count(&mut self) -> Result<CapeInteger,COBIAError>;
1632}
1633
1634pub trait ICapeCollectionImpl<CollectionItem:CapeSmartPointer> : ICapeCollection<CollectionItem> {
1635 type T: ICapeInterfaceImpl+ICapeCollectionImpl<CollectionItem>;
1636
1637 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
1638
1639 fn init_interface() -> crate::C::ICapeInterface {
1641 crate::C::ICapeInterface {
1642 me: std::ptr::null_mut(),
1643 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeCollection_VTable).cast_mut()
1644 as *mut crate::C::ICapeInterface_VTable,
1645 }
1646 }
1647
1648 fn init<Timpl: ICapeCollectionImpl<CollectionItem>+ICapeInterfaceImpl>(u: &mut Timpl) {
1649 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeCollection =
1650 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeCollection;
1651 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
1652 u.add_interface(
1653 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeCollection_UUID),
1654 iface as *mut crate::C::ICapeInterface,
1655 );
1656 }
1657
1658 extern "C" fn raw_item_by_index(me: *mut std::ffi::c_void,index:CapeInteger,item:*mut *mut crate::C::ICapeInterface) -> crate::C::CapeResult {
1659 if item.is_null() {
1660 return COBIAERR_NULLPOINTER;
1661 }
1662 let p = me as *mut Self::T;
1663 let myself=unsafe { &mut *p };
1664 if item.is_null() {
1665 return COBIAERR_NULLPOINTER;
1666 }
1667 match myself.item_by_index(index) {
1668 Ok(_item) => {
1669 unsafe{*item=_item.detach() as *mut crate::C::ICapeInterface;}
1670 COBIAERR_NOERROR
1671 },
1672 Err(e) => myself.set_last_error(e,"ICapeCollection::ItemByIndex")
1673 }
1674 }
1675
1676 extern "C" fn raw_item_by_name(me: *mut std::ffi::c_void,name:*mut crate::C::ICapeString,item:*mut *mut crate::C::ICapeInterface) -> crate::C::CapeResult {
1677 if item.is_null() {
1678 return COBIAERR_NULLPOINTER;
1679 }
1680 let p = me as *mut Self::T;
1681 let myself=unsafe { &mut *p };
1682 if item.is_null() {
1683 return COBIAERR_NULLPOINTER;
1684 }
1685 let name=CapeStringIn::new(&name);
1686 match myself.item_by_name(&name) {
1687 Ok(_item) => {
1688 unsafe{*item=_item.detach() as *mut crate::C::ICapeInterface;}
1689 COBIAERR_NOERROR
1690 },
1691 Err(e) => myself.set_last_error(e,"ICapeCollection::ItemByName")
1692 }
1693 }
1694
1695 extern "C" fn raw_get_count(me: *mut std::ffi::c_void,item_count:*mut CapeInteger) -> crate::C::CapeResult {
1696 if item_count.is_null() {
1697 return COBIAERR_NULLPOINTER;
1698 }
1699 let p = me as *mut Self::T;
1700 let myself=unsafe { &mut *p };
1701 match myself.get_count() {
1702 Ok(_item_count) => {
1703 unsafe{*item_count=_item_count;}
1704 COBIAERR_NOERROR
1705 },
1706 Err(e) => myself.set_last_error(e,"ICapeCollection::GetCount")
1707 }
1708 }
1709
1710 const VTABLE: C::CAPEOPEN_1_2_ICapeCollection_VTable =
1711 C::CAPEOPEN_1_2_ICapeCollection_VTable {
1712 base: crate::C::ICapeInterface_VTable {
1713 addReference: Some(Self::T::raw_add_reference),
1714 release: Some(Self::T::raw_release),
1715 queryInterface: Some(Self::T::raw_query_interface),
1716 getLastError: Some(Self::T::raw_get_last_error),
1717 },
1718 ItemByIndex: Some(Self::T::raw_item_by_index),
1719 ItemByName: Some(Self::T::raw_item_by_name),
1720 getCount: Some(Self::T::raw_get_count),
1721 };
1722}
1723
1724#[cape_smart_pointer(ICAPECOLLECTION_UUID)]
1725pub struct CapeCollection<CollectionItem:CapeSmartPointer> {
1726 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeCollection,
1727 phantom_collection_item : PhantomData<CollectionItem>,
1728}
1729
1730impl<CollectionItem:CapeSmartPointer> CapeCollection<CollectionItem> {
1731
1732 pub fn item_by_index(&self,index:CapeInteger) -> Result<CollectionItem,COBIAError> {
1733 let mut item: *mut crate::C::ICapeInterface=std::ptr::null_mut();
1734 let result_code = unsafe {
1735 ((*(*self.interface).vTbl).ItemByIndex.unwrap())((*self.interface).me,index,&mut item as *mut *mut crate::C::ICapeInterface)
1736 };
1737 let item=crate::CapeObject::attach(item);
1738 let item=match CollectionItem::from_object(&item) {
1739 Ok(_item) => _item,
1740 Err(e) => {return Err(e);}
1741 };
1742 match result_code {
1743 COBIAERR_NOERROR => {Ok(item)},
1744 _ => Err(COBIAError::from_object(result_code,self))
1745 }
1746 }
1747
1748 pub fn item_by_name<TypeOfName:CapeStringProviderIn>(&self,name:&TypeOfName) -> Result<CollectionItem,COBIAError> {
1749 let mut item: *mut crate::C::ICapeInterface=std::ptr::null_mut();
1750 let result_code = unsafe {
1751 ((*(*self.interface).vTbl).ItemByName.unwrap())((*self.interface).me,(&name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),&mut item as *mut *mut crate::C::ICapeInterface)
1752 };
1753 let item=crate::CapeObject::attach(item);
1754 let item=match CollectionItem::from_object(&item) {
1755 Ok(_item) => _item,
1756 Err(e) => {return Err(e);}
1757 };
1758 match result_code {
1759 COBIAERR_NOERROR => {Ok(item)},
1760 _ => Err(COBIAError::from_object(result_code,self))
1761 }
1762 }
1763
1764 pub fn get_count(&self) -> Result<CapeInteger,COBIAError> {
1765 let mut item_count:CapeInteger=0;
1766 let result_code = unsafe {
1767 ((*(*self.interface).vTbl).getCount.unwrap())((*self.interface).me,&mut item_count as *mut CapeInteger)
1768 };
1769 match result_code {
1770 COBIAERR_NOERROR => {Ok(item_count)},
1771 _ => Err(COBIAError::from_object(result_code,self))
1772 }
1773 }
1774
1775}
1776
1777pub trait ICapeParameter {
1782 fn get_val_status(&mut self) -> Result<CapeValidationStatus,COBIAError>;
1783 fn get_mode(&mut self) -> Result<CapeParamMode,COBIAError>;
1784 fn get_type(&mut self) -> Result<CapeParamType,COBIAError>;
1785 fn validate(&mut self,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
1786 fn reset(&mut self) -> Result<(),COBIAError>;
1787}
1788
1789pub trait ICapeParameterImpl : ICapeParameter {
1790 type T: ICapeInterfaceImpl+ICapeParameterImpl;
1791
1792 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
1793
1794 fn init_interface() -> crate::C::ICapeInterface {
1796 crate::C::ICapeInterface {
1797 me: std::ptr::null_mut(),
1798 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeParameter_VTable).cast_mut()
1799 as *mut crate::C::ICapeInterface_VTable,
1800 }
1801 }
1802
1803 fn init<Timpl: ICapeParameterImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
1804 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeParameter =
1805 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeParameter;
1806 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
1807 u.add_interface(
1808 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeParameter_UUID),
1809 iface as *mut crate::C::ICapeInterface,
1810 );
1811 }
1812
1813 extern "C" fn raw_get_val_status(me: *mut std::ffi::c_void,val_status:*mut C::CAPEOPEN_1_2_CapeValidationStatus) -> crate::C::CapeResult {
1814 if val_status.is_null() {
1815 return COBIAERR_NULLPOINTER;
1816 }
1817 let p = me as *mut Self::T;
1818 let myself=unsafe { &mut *p };
1819 match myself.get_val_status() {
1820 Ok(_val_status) => {
1821 unsafe{*val_status=_val_status as C::CAPEOPEN_1_2_CapeValidationStatus;}
1822 COBIAERR_NOERROR
1823 },
1824 Err(e) => myself.set_last_error(e,"ICapeParameter::GetValStatus")
1825 }
1826 }
1827
1828 extern "C" fn raw_get_mode(me: *mut std::ffi::c_void,mode:*mut C::CAPEOPEN_1_2_CapeParamMode) -> crate::C::CapeResult {
1829 if mode.is_null() {
1830 return COBIAERR_NULLPOINTER;
1831 }
1832 let p = me as *mut Self::T;
1833 let myself=unsafe { &mut *p };
1834 match myself.get_mode() {
1835 Ok(_mode) => {
1836 unsafe{*mode=_mode as C::CAPEOPEN_1_2_CapeParamMode;}
1837 COBIAERR_NOERROR
1838 },
1839 Err(e) => myself.set_last_error(e,"ICapeParameter::GetMode")
1840 }
1841 }
1842
1843 extern "C" fn raw_get_type(me: *mut std::ffi::c_void,parameter_type:*mut C::CAPEOPEN_1_2_CapeParamType) -> crate::C::CapeResult {
1844 if parameter_type.is_null() {
1845 return COBIAERR_NULLPOINTER;
1846 }
1847 let p = me as *mut Self::T;
1848 let myself=unsafe { &mut *p };
1849 match myself.get_type() {
1850 Ok(_parameter_type) => {
1851 unsafe{*parameter_type=_parameter_type as C::CAPEOPEN_1_2_CapeParamType;}
1852 COBIAERR_NOERROR
1853 },
1854 Err(e) => myself.set_last_error(e,"ICapeParameter::GetType")
1855 }
1856 }
1857
1858 extern "C" fn raw_validate(me: *mut std::ffi::c_void,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
1859 if message.is_null()||is_ok.is_null() {
1860 return COBIAERR_NULLPOINTER;
1861 }
1862 let p = me as *mut Self::T;
1863 let myself=unsafe { &mut *p };
1864 if message.is_null() {
1865 return COBIAERR_NULLPOINTER;
1866 }
1867 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
1868 let mut message=CapeStringOut::new(&mut message);
1869 match myself.validate(&mut message) {
1870 Ok(_is_ok) => {
1871 unsafe{*is_ok=_is_ok;}
1872 COBIAERR_NOERROR
1873 },
1874 Err(e) => myself.set_last_error(e,"ICapeParameter::Validate")
1875 }
1876 }
1877
1878 extern "C" fn raw_reset(me: *mut std::ffi::c_void) -> crate::C::CapeResult {
1879 let p = me as *mut Self::T;
1880 let myself=unsafe { &mut *p };
1881 match myself.reset() {
1882 Ok(_) => COBIAERR_NOERROR,
1883 Err(e) => myself.set_last_error(e,"ICapeParameter::Reset")
1884 }
1885 }
1886
1887 const VTABLE: C::CAPEOPEN_1_2_ICapeParameter_VTable =
1888 C::CAPEOPEN_1_2_ICapeParameter_VTable {
1889 base: crate::C::ICapeInterface_VTable {
1890 addReference: Some(Self::T::raw_add_reference),
1891 release: Some(Self::T::raw_release),
1892 queryInterface: Some(Self::T::raw_query_interface),
1893 getLastError: Some(Self::T::raw_get_last_error),
1894 },
1895 getValStatus: Some(Self::T::raw_get_val_status),
1896 getMode: Some(Self::T::raw_get_mode),
1897 getType: Some(Self::T::raw_get_type),
1898 Validate: Some(Self::T::raw_validate),
1899 Reset: Some(Self::T::raw_reset),
1900 };
1901}
1902
1903#[cape_smart_pointer(ICAPEPARAMETER_UUID)]
1904pub struct CapeParameter {
1905 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeParameter,
1906}
1907
1908impl CapeParameter {
1909
1910 pub fn get_val_status(&self) -> Result<CapeValidationStatus,COBIAError> {
1911 let mut val_status:C::CAPEOPEN_1_2_CapeValidationStatus=0;
1912 let result_code = unsafe {
1913 ((*(*self.interface).vTbl).getValStatus.unwrap())((*self.interface).me,&mut val_status as *mut C::CAPEOPEN_1_2_CapeValidationStatus)
1914 };
1915 let val_status=match CapeValidationStatus::from(val_status) {
1916 Some(_val_status) => _val_status,
1917 None => {return Err(COBIAError::Message("Invalid enumeration value".to_string()));}
1918 };
1919 match result_code {
1920 COBIAERR_NOERROR => {Ok(val_status)},
1921 _ => Err(COBIAError::from_object(result_code,self))
1922 }
1923 }
1924
1925 pub fn get_mode(&self) -> Result<CapeParamMode,COBIAError> {
1926 let mut mode:C::CAPEOPEN_1_2_CapeParamMode=0;
1927 let result_code = unsafe {
1928 ((*(*self.interface).vTbl).getMode.unwrap())((*self.interface).me,&mut mode as *mut C::CAPEOPEN_1_2_CapeParamMode)
1929 };
1930 let mode=match CapeParamMode::from(mode) {
1931 Some(_mode) => _mode,
1932 None => {return Err(COBIAError::Message("Invalid enumeration value".to_string()));}
1933 };
1934 match result_code {
1935 COBIAERR_NOERROR => {Ok(mode)},
1936 _ => Err(COBIAError::from_object(result_code,self))
1937 }
1938 }
1939
1940 pub fn get_type(&self) -> Result<CapeParamType,COBIAError> {
1941 let mut parameter_type:C::CAPEOPEN_1_2_CapeParamType=0;
1942 let result_code = unsafe {
1943 ((*(*self.interface).vTbl).getType.unwrap())((*self.interface).me,&mut parameter_type as *mut C::CAPEOPEN_1_2_CapeParamType)
1944 };
1945 let parameter_type=match CapeParamType::from(parameter_type) {
1946 Some(_parameter_type) => _parameter_type,
1947 None => {return Err(COBIAError::Message("Invalid enumeration value".to_string()));}
1948 };
1949 match result_code {
1950 COBIAERR_NOERROR => {Ok(parameter_type)},
1951 _ => Err(COBIAError::from_object(result_code,self))
1952 }
1953 }
1954
1955 pub fn validate<TypeOfMessage:CapeStringProviderOut>(&self,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
1956 let mut is_ok:CapeBoolean=false as CapeBoolean;
1957 let result_code = unsafe {
1958 ((*(*self.interface).vTbl).Validate.unwrap())((*self.interface).me,(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
1959 };
1960 match result_code {
1961 COBIAERR_NOERROR => {Ok(is_ok)},
1962 _ => Err(COBIAError::from_object(result_code,self))
1963 }
1964 }
1965
1966 pub fn reset(&self) -> Result<(),COBIAError> {
1967 let result_code = unsafe {
1968 ((*(*self.interface).vTbl).Reset.unwrap())((*self.interface).me)
1969 };
1970 match result_code {
1971 COBIAERR_NOERROR => {Ok(())},
1972 _ => Err(COBIAError::from_object(result_code,self))
1973 }
1974 }
1975
1976}
1977
1978pub trait ICapeRealParameter {
1983 fn get_value(&mut self) -> Result<CapeReal,COBIAError>;
1984 fn set_value(&mut self,value:CapeReal) -> Result<(),COBIAError>;
1985 fn get_default_value(&mut self) -> Result<CapeReal,COBIAError>;
1986 fn get_lower_bound(&mut self) -> Result<CapeReal,COBIAError>;
1987 fn get_upper_bound(&mut self) -> Result<CapeReal,COBIAError>;
1988 fn get_dimensionality(&mut self,dimensionality:&mut CapeArrayRealOut) -> Result<(),COBIAError>;
1989 fn validate(&mut self,value:CapeReal,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
1990}
1991
1992pub trait ICapeRealParameterImpl : ICapeRealParameter {
1993 type T: ICapeInterfaceImpl+ICapeRealParameterImpl;
1994
1995 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
1996
1997 fn init_interface() -> crate::C::ICapeInterface {
1999 crate::C::ICapeInterface {
2000 me: std::ptr::null_mut(),
2001 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeRealParameter_VTable).cast_mut()
2002 as *mut crate::C::ICapeInterface_VTable,
2003 }
2004 }
2005
2006 fn init<Timpl: ICapeRealParameterImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
2007 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeRealParameter =
2008 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeRealParameter;
2009 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
2010 u.add_interface(
2011 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeRealParameter_UUID),
2012 iface as *mut crate::C::ICapeInterface,
2013 );
2014 }
2015
2016 extern "C" fn raw_get_value(me: *mut std::ffi::c_void,value:*mut CapeReal) -> crate::C::CapeResult {
2017 if value.is_null() {
2018 return COBIAERR_NULLPOINTER;
2019 }
2020 let p = me as *mut Self::T;
2021 let myself=unsafe { &mut *p };
2022 match myself.get_value() {
2023 Ok(_value) => {
2024 unsafe{*value=_value;}
2025 COBIAERR_NOERROR
2026 },
2027 Err(e) => myself.set_last_error(e,"ICapeRealParameter::GetValue")
2028 }
2029 }
2030
2031 extern "C" fn raw_set_value(me: *mut std::ffi::c_void,value:CapeReal) -> crate::C::CapeResult {
2032 let p = me as *mut Self::T;
2033 let myself=unsafe { &mut *p };
2034 match myself.set_value(value) {
2035 Ok(_) => COBIAERR_NOERROR,
2036 Err(e) => myself.set_last_error(e,"ICapeRealParameter::SetValue")
2037 }
2038 }
2039
2040 extern "C" fn raw_get_default_value(me: *mut std::ffi::c_void,default_value:*mut CapeReal) -> crate::C::CapeResult {
2041 if default_value.is_null() {
2042 return COBIAERR_NULLPOINTER;
2043 }
2044 let p = me as *mut Self::T;
2045 let myself=unsafe { &mut *p };
2046 match myself.get_default_value() {
2047 Ok(_default_value) => {
2048 unsafe{*default_value=_default_value;}
2049 COBIAERR_NOERROR
2050 },
2051 Err(e) => myself.set_last_error(e,"ICapeRealParameter::GetDefaultValue")
2052 }
2053 }
2054
2055 extern "C" fn raw_get_lower_bound(me: *mut std::ffi::c_void,l_bound:*mut CapeReal) -> crate::C::CapeResult {
2056 if l_bound.is_null() {
2057 return COBIAERR_NULLPOINTER;
2058 }
2059 let p = me as *mut Self::T;
2060 let myself=unsafe { &mut *p };
2061 match myself.get_lower_bound() {
2062 Ok(_l_bound) => {
2063 unsafe{*l_bound=_l_bound;}
2064 COBIAERR_NOERROR
2065 },
2066 Err(e) => myself.set_last_error(e,"ICapeRealParameter::GetLowerBound")
2067 }
2068 }
2069
2070 extern "C" fn raw_get_upper_bound(me: *mut std::ffi::c_void,u_bound:*mut CapeReal) -> crate::C::CapeResult {
2071 if u_bound.is_null() {
2072 return COBIAERR_NULLPOINTER;
2073 }
2074 let p = me as *mut Self::T;
2075 let myself=unsafe { &mut *p };
2076 match myself.get_upper_bound() {
2077 Ok(_u_bound) => {
2078 unsafe{*u_bound=_u_bound;}
2079 COBIAERR_NOERROR
2080 },
2081 Err(e) => myself.set_last_error(e,"ICapeRealParameter::GetUpperBound")
2082 }
2083 }
2084
2085 extern "C" fn raw_get_dimensionality(me: *mut std::ffi::c_void,dimensionality:*mut crate::C::ICapeArrayReal) -> crate::C::CapeResult {
2086 if dimensionality.is_null() {
2087 return COBIAERR_NULLPOINTER;
2088 }
2089 let p = me as *mut Self::T;
2090 let myself=unsafe { &mut *p };
2091 if dimensionality.is_null() {
2092 return COBIAERR_NULLPOINTER;
2093 }
2094 let mut dimensionality=unsafe{*((&dimensionality as *const *mut crate::C::ICapeArrayReal) as *mut *mut crate::C::ICapeArrayReal)};
2095 let mut dimensionality=CapeArrayRealOut::new(&mut dimensionality);
2096 match myself.get_dimensionality(&mut dimensionality) {
2097 Ok(_) => COBIAERR_NOERROR,
2098 Err(e) => myself.set_last_error(e,"ICapeRealParameter::GetDimensionality")
2099 }
2100 }
2101
2102 extern "C" fn raw_validate(me: *mut std::ffi::c_void,value:CapeReal,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
2103 if message.is_null()||is_ok.is_null() {
2104 return COBIAERR_NULLPOINTER;
2105 }
2106 let p = me as *mut Self::T;
2107 let myself=unsafe { &mut *p };
2108 if message.is_null() {
2109 return COBIAERR_NULLPOINTER;
2110 }
2111 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
2112 let mut message=CapeStringOut::new(&mut message);
2113 match myself.validate(value,&mut message) {
2114 Ok(_is_ok) => {
2115 unsafe{*is_ok=_is_ok;}
2116 COBIAERR_NOERROR
2117 },
2118 Err(e) => myself.set_last_error(e,"ICapeRealParameter::Validate")
2119 }
2120 }
2121
2122 const VTABLE: C::CAPEOPEN_1_2_ICapeRealParameter_VTable =
2123 C::CAPEOPEN_1_2_ICapeRealParameter_VTable {
2124 base: crate::C::ICapeInterface_VTable {
2125 addReference: Some(Self::T::raw_add_reference),
2126 release: Some(Self::T::raw_release),
2127 queryInterface: Some(Self::T::raw_query_interface),
2128 getLastError: Some(Self::T::raw_get_last_error),
2129 },
2130 getValue: Some(Self::T::raw_get_value),
2131 putValue: Some(Self::T::raw_set_value),
2132 getDefaultValue: Some(Self::T::raw_get_default_value),
2133 getLowerBound: Some(Self::T::raw_get_lower_bound),
2134 getUpperBound: Some(Self::T::raw_get_upper_bound),
2135 getDimensionality: Some(Self::T::raw_get_dimensionality),
2136 Validate: Some(Self::T::raw_validate),
2137 };
2138}
2139
2140#[cape_smart_pointer(ICAPEREALPARAMETER_UUID)]
2141pub struct CapeRealParameter {
2142 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeRealParameter,
2143}
2144
2145impl CapeRealParameter {
2146
2147 pub fn get_value(&self) -> Result<CapeReal,COBIAError> {
2148 let mut value:CapeReal=0.0;
2149 let result_code = unsafe {
2150 ((*(*self.interface).vTbl).getValue.unwrap())((*self.interface).me,&mut value as *mut CapeReal)
2151 };
2152 match result_code {
2153 COBIAERR_NOERROR => {Ok(value)},
2154 _ => Err(COBIAError::from_object(result_code,self))
2155 }
2156 }
2157
2158 pub fn set_value(&self,value:CapeReal) -> Result<(),COBIAError> {
2159 let result_code = unsafe {
2160 ((*(*self.interface).vTbl).putValue.unwrap())((*self.interface).me,value)
2161 };
2162 match result_code {
2163 COBIAERR_NOERROR => {Ok(())},
2164 _ => Err(COBIAError::from_object(result_code,self))
2165 }
2166 }
2167
2168 pub fn get_default_value(&self) -> Result<CapeReal,COBIAError> {
2169 let mut default_value:CapeReal=0.0;
2170 let result_code = unsafe {
2171 ((*(*self.interface).vTbl).getDefaultValue.unwrap())((*self.interface).me,&mut default_value as *mut CapeReal)
2172 };
2173 match result_code {
2174 COBIAERR_NOERROR => {Ok(default_value)},
2175 _ => Err(COBIAError::from_object(result_code,self))
2176 }
2177 }
2178
2179 pub fn get_lower_bound(&self) -> Result<CapeReal,COBIAError> {
2180 let mut l_bound:CapeReal=0.0;
2181 let result_code = unsafe {
2182 ((*(*self.interface).vTbl).getLowerBound.unwrap())((*self.interface).me,&mut l_bound as *mut CapeReal)
2183 };
2184 match result_code {
2185 COBIAERR_NOERROR => {Ok(l_bound)},
2186 _ => Err(COBIAError::from_object(result_code,self))
2187 }
2188 }
2189
2190 pub fn get_upper_bound(&self) -> Result<CapeReal,COBIAError> {
2191 let mut u_bound:CapeReal=0.0;
2192 let result_code = unsafe {
2193 ((*(*self.interface).vTbl).getUpperBound.unwrap())((*self.interface).me,&mut u_bound as *mut CapeReal)
2194 };
2195 match result_code {
2196 COBIAERR_NOERROR => {Ok(u_bound)},
2197 _ => Err(COBIAError::from_object(result_code,self))
2198 }
2199 }
2200
2201 pub fn get_dimensionality<TypeOfDimensionality:CapeArrayRealProviderOut>(&self,dimensionality:&mut TypeOfDimensionality) -> Result<(),COBIAError> {
2202 let result_code = unsafe {
2203 ((*(*self.interface).vTbl).getDimensionality.unwrap())((*self.interface).me,(&dimensionality.as_cape_array_real_out() as *const crate::C::ICapeArrayReal).cast_mut())
2204 };
2205 match result_code {
2206 COBIAERR_NOERROR => {Ok(())},
2207 _ => Err(COBIAError::from_object(result_code,self))
2208 }
2209 }
2210
2211 pub fn validate<TypeOfMessage:CapeStringProviderOut>(&self,value:CapeReal,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
2212 let mut is_ok:CapeBoolean=false as CapeBoolean;
2213 let result_code = unsafe {
2214 ((*(*self.interface).vTbl).Validate.unwrap())((*self.interface).me,value,(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
2215 };
2216 match result_code {
2217 COBIAERR_NOERROR => {Ok(is_ok)},
2218 _ => Err(COBIAError::from_object(result_code,self))
2219 }
2220 }
2221
2222}
2223
2224pub trait ICapeIntegerParameter {
2229 fn get_value(&mut self) -> Result<CapeInteger,COBIAError>;
2230 fn set_value(&mut self,value:CapeInteger) -> Result<(),COBIAError>;
2231 fn get_default_value(&mut self) -> Result<CapeInteger,COBIAError>;
2232 fn get_lower_bound(&mut self) -> Result<CapeInteger,COBIAError>;
2233 fn get_upper_bound(&mut self) -> Result<CapeInteger,COBIAError>;
2234 fn validate(&mut self,value:CapeInteger,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
2235}
2236
2237pub trait ICapeIntegerParameterImpl : ICapeIntegerParameter {
2238 type T: ICapeInterfaceImpl+ICapeIntegerParameterImpl;
2239
2240 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
2241
2242 fn init_interface() -> crate::C::ICapeInterface {
2244 crate::C::ICapeInterface {
2245 me: std::ptr::null_mut(),
2246 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeIntegerParameter_VTable).cast_mut()
2247 as *mut crate::C::ICapeInterface_VTable,
2248 }
2249 }
2250
2251 fn init<Timpl: ICapeIntegerParameterImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
2252 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeIntegerParameter =
2253 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeIntegerParameter;
2254 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
2255 u.add_interface(
2256 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeIntegerParameter_UUID),
2257 iface as *mut crate::C::ICapeInterface,
2258 );
2259 }
2260
2261 extern "C" fn raw_get_value(me: *mut std::ffi::c_void,value:*mut CapeInteger) -> crate::C::CapeResult {
2262 if value.is_null() {
2263 return COBIAERR_NULLPOINTER;
2264 }
2265 let p = me as *mut Self::T;
2266 let myself=unsafe { &mut *p };
2267 match myself.get_value() {
2268 Ok(_value) => {
2269 unsafe{*value=_value;}
2270 COBIAERR_NOERROR
2271 },
2272 Err(e) => myself.set_last_error(e,"ICapeIntegerParameter::GetValue")
2273 }
2274 }
2275
2276 extern "C" fn raw_set_value(me: *mut std::ffi::c_void,value:CapeInteger) -> crate::C::CapeResult {
2277 let p = me as *mut Self::T;
2278 let myself=unsafe { &mut *p };
2279 match myself.set_value(value) {
2280 Ok(_) => COBIAERR_NOERROR,
2281 Err(e) => myself.set_last_error(e,"ICapeIntegerParameter::SetValue")
2282 }
2283 }
2284
2285 extern "C" fn raw_get_default_value(me: *mut std::ffi::c_void,default_value:*mut CapeInteger) -> crate::C::CapeResult {
2286 if default_value.is_null() {
2287 return COBIAERR_NULLPOINTER;
2288 }
2289 let p = me as *mut Self::T;
2290 let myself=unsafe { &mut *p };
2291 match myself.get_default_value() {
2292 Ok(_default_value) => {
2293 unsafe{*default_value=_default_value;}
2294 COBIAERR_NOERROR
2295 },
2296 Err(e) => myself.set_last_error(e,"ICapeIntegerParameter::GetDefaultValue")
2297 }
2298 }
2299
2300 extern "C" fn raw_get_lower_bound(me: *mut std::ffi::c_void,l_bound:*mut CapeInteger) -> crate::C::CapeResult {
2301 if l_bound.is_null() {
2302 return COBIAERR_NULLPOINTER;
2303 }
2304 let p = me as *mut Self::T;
2305 let myself=unsafe { &mut *p };
2306 match myself.get_lower_bound() {
2307 Ok(_l_bound) => {
2308 unsafe{*l_bound=_l_bound;}
2309 COBIAERR_NOERROR
2310 },
2311 Err(e) => myself.set_last_error(e,"ICapeIntegerParameter::GetLowerBound")
2312 }
2313 }
2314
2315 extern "C" fn raw_get_upper_bound(me: *mut std::ffi::c_void,u_bound:*mut CapeInteger) -> crate::C::CapeResult {
2316 if u_bound.is_null() {
2317 return COBIAERR_NULLPOINTER;
2318 }
2319 let p = me as *mut Self::T;
2320 let myself=unsafe { &mut *p };
2321 match myself.get_upper_bound() {
2322 Ok(_u_bound) => {
2323 unsafe{*u_bound=_u_bound;}
2324 COBIAERR_NOERROR
2325 },
2326 Err(e) => myself.set_last_error(e,"ICapeIntegerParameter::GetUpperBound")
2327 }
2328 }
2329
2330 extern "C" fn raw_validate(me: *mut std::ffi::c_void,value:CapeInteger,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
2331 if message.is_null()||is_ok.is_null() {
2332 return COBIAERR_NULLPOINTER;
2333 }
2334 let p = me as *mut Self::T;
2335 let myself=unsafe { &mut *p };
2336 if message.is_null() {
2337 return COBIAERR_NULLPOINTER;
2338 }
2339 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
2340 let mut message=CapeStringOut::new(&mut message);
2341 match myself.validate(value,&mut message) {
2342 Ok(_is_ok) => {
2343 unsafe{*is_ok=_is_ok;}
2344 COBIAERR_NOERROR
2345 },
2346 Err(e) => myself.set_last_error(e,"ICapeIntegerParameter::Validate")
2347 }
2348 }
2349
2350 const VTABLE: C::CAPEOPEN_1_2_ICapeIntegerParameter_VTable =
2351 C::CAPEOPEN_1_2_ICapeIntegerParameter_VTable {
2352 base: crate::C::ICapeInterface_VTable {
2353 addReference: Some(Self::T::raw_add_reference),
2354 release: Some(Self::T::raw_release),
2355 queryInterface: Some(Self::T::raw_query_interface),
2356 getLastError: Some(Self::T::raw_get_last_error),
2357 },
2358 getValue: Some(Self::T::raw_get_value),
2359 putValue: Some(Self::T::raw_set_value),
2360 getDefaultValue: Some(Self::T::raw_get_default_value),
2361 getLowerBound: Some(Self::T::raw_get_lower_bound),
2362 getUpperBound: Some(Self::T::raw_get_upper_bound),
2363 Validate: Some(Self::T::raw_validate),
2364 };
2365}
2366
2367#[cape_smart_pointer(ICAPEINTEGERPARAMETER_UUID)]
2368pub struct CapeIntegerParameter {
2369 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeIntegerParameter,
2370}
2371
2372impl CapeIntegerParameter {
2373
2374 pub fn get_value(&self) -> Result<CapeInteger,COBIAError> {
2375 let mut value:CapeInteger=0;
2376 let result_code = unsafe {
2377 ((*(*self.interface).vTbl).getValue.unwrap())((*self.interface).me,&mut value as *mut CapeInteger)
2378 };
2379 match result_code {
2380 COBIAERR_NOERROR => {Ok(value)},
2381 _ => Err(COBIAError::from_object(result_code,self))
2382 }
2383 }
2384
2385 pub fn set_value(&self,value:CapeInteger) -> Result<(),COBIAError> {
2386 let result_code = unsafe {
2387 ((*(*self.interface).vTbl).putValue.unwrap())((*self.interface).me,value)
2388 };
2389 match result_code {
2390 COBIAERR_NOERROR => {Ok(())},
2391 _ => Err(COBIAError::from_object(result_code,self))
2392 }
2393 }
2394
2395 pub fn get_default_value(&self) -> Result<CapeInteger,COBIAError> {
2396 let mut default_value:CapeInteger=0;
2397 let result_code = unsafe {
2398 ((*(*self.interface).vTbl).getDefaultValue.unwrap())((*self.interface).me,&mut default_value as *mut CapeInteger)
2399 };
2400 match result_code {
2401 COBIAERR_NOERROR => {Ok(default_value)},
2402 _ => Err(COBIAError::from_object(result_code,self))
2403 }
2404 }
2405
2406 pub fn get_lower_bound(&self) -> Result<CapeInteger,COBIAError> {
2407 let mut l_bound:CapeInteger=0;
2408 let result_code = unsafe {
2409 ((*(*self.interface).vTbl).getLowerBound.unwrap())((*self.interface).me,&mut l_bound as *mut CapeInteger)
2410 };
2411 match result_code {
2412 COBIAERR_NOERROR => {Ok(l_bound)},
2413 _ => Err(COBIAError::from_object(result_code,self))
2414 }
2415 }
2416
2417 pub fn get_upper_bound(&self) -> Result<CapeInteger,COBIAError> {
2418 let mut u_bound:CapeInteger=0;
2419 let result_code = unsafe {
2420 ((*(*self.interface).vTbl).getUpperBound.unwrap())((*self.interface).me,&mut u_bound as *mut CapeInteger)
2421 };
2422 match result_code {
2423 COBIAERR_NOERROR => {Ok(u_bound)},
2424 _ => Err(COBIAError::from_object(result_code,self))
2425 }
2426 }
2427
2428 pub fn validate<TypeOfMessage:CapeStringProviderOut>(&self,value:CapeInteger,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
2429 let mut is_ok:CapeBoolean=false as CapeBoolean;
2430 let result_code = unsafe {
2431 ((*(*self.interface).vTbl).Validate.unwrap())((*self.interface).me,value,(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
2432 };
2433 match result_code {
2434 COBIAERR_NOERROR => {Ok(is_ok)},
2435 _ => Err(COBIAError::from_object(result_code,self))
2436 }
2437 }
2438
2439}
2440
2441pub trait ICapeStringParameter {
2446 fn get_value(&mut self,value:&mut CapeStringOut) -> Result<(),COBIAError>;
2447 fn set_value(&mut self,value:&CapeStringIn) -> Result<(),COBIAError>;
2448 fn get_default_value(&mut self,default_value:&mut CapeStringOut) -> Result<(),COBIAError>;
2449 fn get_option_list(&mut self,option_names:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
2450 fn get_restricted_to_list(&mut self) -> Result<CapeBoolean,COBIAError>;
2451 fn validate(&mut self,value:&CapeStringIn,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
2452}
2453
2454pub trait ICapeStringParameterImpl : ICapeStringParameter {
2455 type T: ICapeInterfaceImpl+ICapeStringParameterImpl;
2456
2457 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
2458
2459 fn init_interface() -> crate::C::ICapeInterface {
2461 crate::C::ICapeInterface {
2462 me: std::ptr::null_mut(),
2463 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeStringParameter_VTable).cast_mut()
2464 as *mut crate::C::ICapeInterface_VTable,
2465 }
2466 }
2467
2468 fn init<Timpl: ICapeStringParameterImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
2469 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeStringParameter =
2470 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeStringParameter;
2471 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
2472 u.add_interface(
2473 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeStringParameter_UUID),
2474 iface as *mut crate::C::ICapeInterface,
2475 );
2476 }
2477
2478 extern "C" fn raw_get_value(me: *mut std::ffi::c_void,value:*mut crate::C::ICapeString) -> crate::C::CapeResult {
2479 if value.is_null() {
2480 return COBIAERR_NULLPOINTER;
2481 }
2482 let p = me as *mut Self::T;
2483 let myself=unsafe { &mut *p };
2484 if value.is_null() {
2485 return COBIAERR_NULLPOINTER;
2486 }
2487 let mut value=unsafe{*((&value as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
2488 let mut value=CapeStringOut::new(&mut value);
2489 match myself.get_value(&mut value) {
2490 Ok(_) => COBIAERR_NOERROR,
2491 Err(e) => myself.set_last_error(e,"ICapeStringParameter::GetValue")
2492 }
2493 }
2494
2495 extern "C" fn raw_set_value(me: *mut std::ffi::c_void,value:*mut crate::C::ICapeString) -> crate::C::CapeResult {
2496 let p = me as *mut Self::T;
2497 let myself=unsafe { &mut *p };
2498 let value=CapeStringIn::new(&value);
2499 match myself.set_value(&value) {
2500 Ok(_) => COBIAERR_NOERROR,
2501 Err(e) => myself.set_last_error(e,"ICapeStringParameter::SetValue")
2502 }
2503 }
2504
2505 extern "C" fn raw_get_default_value(me: *mut std::ffi::c_void,default_value:*mut crate::C::ICapeString) -> crate::C::CapeResult {
2506 if default_value.is_null() {
2507 return COBIAERR_NULLPOINTER;
2508 }
2509 let p = me as *mut Self::T;
2510 let myself=unsafe { &mut *p };
2511 if default_value.is_null() {
2512 return COBIAERR_NULLPOINTER;
2513 }
2514 let mut default_value=unsafe{*((&default_value as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
2515 let mut default_value=CapeStringOut::new(&mut default_value);
2516 match myself.get_default_value(&mut default_value) {
2517 Ok(_) => COBIAERR_NOERROR,
2518 Err(e) => myself.set_last_error(e,"ICapeStringParameter::GetDefaultValue")
2519 }
2520 }
2521
2522 extern "C" fn raw_get_option_list(me: *mut std::ffi::c_void,option_names:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
2523 if option_names.is_null() {
2524 return COBIAERR_NULLPOINTER;
2525 }
2526 let p = me as *mut Self::T;
2527 let myself=unsafe { &mut *p };
2528 if option_names.is_null() {
2529 return COBIAERR_NULLPOINTER;
2530 }
2531 let mut option_names=unsafe{*((&option_names as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
2532 let mut option_names=CapeArrayStringOut::new(&mut option_names);
2533 match myself.get_option_list(&mut option_names) {
2534 Ok(_) => COBIAERR_NOERROR,
2535 Err(e) => myself.set_last_error(e,"ICapeStringParameter::GetOptionList")
2536 }
2537 }
2538
2539 extern "C" fn raw_get_restricted_to_list(me: *mut std::ffi::c_void,restricted:*mut CapeBoolean) -> crate::C::CapeResult {
2540 if restricted.is_null() {
2541 return COBIAERR_NULLPOINTER;
2542 }
2543 let p = me as *mut Self::T;
2544 let myself=unsafe { &mut *p };
2545 match myself.get_restricted_to_list() {
2546 Ok(_restricted) => {
2547 unsafe{*restricted=_restricted;}
2548 COBIAERR_NOERROR
2549 },
2550 Err(e) => myself.set_last_error(e,"ICapeStringParameter::GetRestrictedToList")
2551 }
2552 }
2553
2554 extern "C" fn raw_validate(me: *mut std::ffi::c_void,value:*mut crate::C::ICapeString,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
2555 if message.is_null()||is_ok.is_null() {
2556 return COBIAERR_NULLPOINTER;
2557 }
2558 let p = me as *mut Self::T;
2559 let myself=unsafe { &mut *p };
2560 if message.is_null() {
2561 return COBIAERR_NULLPOINTER;
2562 }
2563 let value=CapeStringIn::new(&value);
2564 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
2565 let mut message=CapeStringOut::new(&mut message);
2566 match myself.validate(&value,&mut message) {
2567 Ok(_is_ok) => {
2568 unsafe{*is_ok=_is_ok;}
2569 COBIAERR_NOERROR
2570 },
2571 Err(e) => myself.set_last_error(e,"ICapeStringParameter::Validate")
2572 }
2573 }
2574
2575 const VTABLE: C::CAPEOPEN_1_2_ICapeStringParameter_VTable =
2576 C::CAPEOPEN_1_2_ICapeStringParameter_VTable {
2577 base: crate::C::ICapeInterface_VTable {
2578 addReference: Some(Self::T::raw_add_reference),
2579 release: Some(Self::T::raw_release),
2580 queryInterface: Some(Self::T::raw_query_interface),
2581 getLastError: Some(Self::T::raw_get_last_error),
2582 },
2583 getValue: Some(Self::T::raw_get_value),
2584 putValue: Some(Self::T::raw_set_value),
2585 getDefaultValue: Some(Self::T::raw_get_default_value),
2586 getOptionList: Some(Self::T::raw_get_option_list),
2587 getRestrictedToList: Some(Self::T::raw_get_restricted_to_list),
2588 Validate: Some(Self::T::raw_validate),
2589 };
2590}
2591
2592#[cape_smart_pointer(ICAPESTRINGPARAMETER_UUID)]
2593pub struct CapeStringParameter {
2594 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeStringParameter,
2595}
2596
2597impl CapeStringParameter {
2598
2599 pub fn get_value<TypeOfValue:CapeStringProviderOut>(&self,value:&mut TypeOfValue) -> Result<(),COBIAError> {
2600 let result_code = unsafe {
2601 ((*(*self.interface).vTbl).getValue.unwrap())((*self.interface).me,(&value.as_cape_string_out() as *const crate::C::ICapeString).cast_mut())
2602 };
2603 match result_code {
2604 COBIAERR_NOERROR => {Ok(())},
2605 _ => Err(COBIAError::from_object(result_code,self))
2606 }
2607 }
2608
2609 pub fn set_value<TypeOfValue:CapeStringProviderIn>(&self,value:&TypeOfValue) -> Result<(),COBIAError> {
2610 let result_code = unsafe {
2611 ((*(*self.interface).vTbl).putValue.unwrap())((*self.interface).me,(&value.as_cape_string_in() as *const crate::C::ICapeString).cast_mut())
2612 };
2613 match result_code {
2614 COBIAERR_NOERROR => {Ok(())},
2615 _ => Err(COBIAError::from_object(result_code,self))
2616 }
2617 }
2618
2619 pub fn get_default_value<TypeOfDefaultValue:CapeStringProviderOut>(&self,default_value:&mut TypeOfDefaultValue) -> Result<(),COBIAError> {
2620 let result_code = unsafe {
2621 ((*(*self.interface).vTbl).getDefaultValue.unwrap())((*self.interface).me,(&default_value.as_cape_string_out() as *const crate::C::ICapeString).cast_mut())
2622 };
2623 match result_code {
2624 COBIAERR_NOERROR => {Ok(())},
2625 _ => Err(COBIAError::from_object(result_code,self))
2626 }
2627 }
2628
2629 pub fn get_option_list<TypeOfOptionNames:CapeArrayStringProviderOut>(&self,option_names:&mut TypeOfOptionNames) -> Result<(),COBIAError> {
2630 let result_code = unsafe {
2631 ((*(*self.interface).vTbl).getOptionList.unwrap())((*self.interface).me,(&option_names.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
2632 };
2633 match result_code {
2634 COBIAERR_NOERROR => {Ok(())},
2635 _ => Err(COBIAError::from_object(result_code,self))
2636 }
2637 }
2638
2639 pub fn get_restricted_to_list(&self) -> Result<CapeBoolean,COBIAError> {
2640 let mut restricted:CapeBoolean=false as CapeBoolean;
2641 let result_code = unsafe {
2642 ((*(*self.interface).vTbl).getRestrictedToList.unwrap())((*self.interface).me,&mut restricted as *mut CapeBoolean)
2643 };
2644 match result_code {
2645 COBIAERR_NOERROR => {Ok(restricted)},
2646 _ => Err(COBIAError::from_object(result_code,self))
2647 }
2648 }
2649
2650 pub fn validate<TypeOfValue:CapeStringProviderIn,TypeOfMessage:CapeStringProviderOut>(&self,value:&TypeOfValue,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
2651 let mut is_ok:CapeBoolean=false as CapeBoolean;
2652 let result_code = unsafe {
2653 ((*(*self.interface).vTbl).Validate.unwrap())((*self.interface).me,(&value.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
2654 };
2655 match result_code {
2656 COBIAERR_NOERROR => {Ok(is_ok)},
2657 _ => Err(COBIAError::from_object(result_code,self))
2658 }
2659 }
2660
2661}
2662
2663pub trait ICapeBooleanParameter {
2668 fn get_value(&mut self) -> Result<CapeBoolean,COBIAError>;
2669 fn set_value(&mut self,value:CapeBoolean) -> Result<(),COBIAError>;
2670 fn get_default_value(&mut self) -> Result<CapeBoolean,COBIAError>;
2671 fn validate(&mut self,value:CapeBoolean,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
2672}
2673
2674pub trait ICapeBooleanParameterImpl : ICapeBooleanParameter {
2675 type T: ICapeInterfaceImpl+ICapeBooleanParameterImpl;
2676
2677 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
2678
2679 fn init_interface() -> crate::C::ICapeInterface {
2681 crate::C::ICapeInterface {
2682 me: std::ptr::null_mut(),
2683 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeBooleanParameter_VTable).cast_mut()
2684 as *mut crate::C::ICapeInterface_VTable,
2685 }
2686 }
2687
2688 fn init<Timpl: ICapeBooleanParameterImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
2689 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeBooleanParameter =
2690 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeBooleanParameter;
2691 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
2692 u.add_interface(
2693 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeBooleanParameter_UUID),
2694 iface as *mut crate::C::ICapeInterface,
2695 );
2696 }
2697
2698 extern "C" fn raw_get_value(me: *mut std::ffi::c_void,value:*mut CapeBoolean) -> crate::C::CapeResult {
2699 if value.is_null() {
2700 return COBIAERR_NULLPOINTER;
2701 }
2702 let p = me as *mut Self::T;
2703 let myself=unsafe { &mut *p };
2704 match myself.get_value() {
2705 Ok(_value) => {
2706 unsafe{*value=_value;}
2707 COBIAERR_NOERROR
2708 },
2709 Err(e) => myself.set_last_error(e,"ICapeBooleanParameter::GetValue")
2710 }
2711 }
2712
2713 extern "C" fn raw_set_value(me: *mut std::ffi::c_void,value:CapeBoolean) -> crate::C::CapeResult {
2714 let p = me as *mut Self::T;
2715 let myself=unsafe { &mut *p };
2716 match myself.set_value(value) {
2717 Ok(_) => COBIAERR_NOERROR,
2718 Err(e) => myself.set_last_error(e,"ICapeBooleanParameter::SetValue")
2719 }
2720 }
2721
2722 extern "C" fn raw_get_default_value(me: *mut std::ffi::c_void,default_value:*mut CapeBoolean) -> crate::C::CapeResult {
2723 if default_value.is_null() {
2724 return COBIAERR_NULLPOINTER;
2725 }
2726 let p = me as *mut Self::T;
2727 let myself=unsafe { &mut *p };
2728 match myself.get_default_value() {
2729 Ok(_default_value) => {
2730 unsafe{*default_value=_default_value;}
2731 COBIAERR_NOERROR
2732 },
2733 Err(e) => myself.set_last_error(e,"ICapeBooleanParameter::GetDefaultValue")
2734 }
2735 }
2736
2737 extern "C" fn raw_validate(me: *mut std::ffi::c_void,value:CapeBoolean,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
2738 if message.is_null()||is_ok.is_null() {
2739 return COBIAERR_NULLPOINTER;
2740 }
2741 let p = me as *mut Self::T;
2742 let myself=unsafe { &mut *p };
2743 if message.is_null() {
2744 return COBIAERR_NULLPOINTER;
2745 }
2746 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
2747 let mut message=CapeStringOut::new(&mut message);
2748 match myself.validate(value,&mut message) {
2749 Ok(_is_ok) => {
2750 unsafe{*is_ok=_is_ok;}
2751 COBIAERR_NOERROR
2752 },
2753 Err(e) => myself.set_last_error(e,"ICapeBooleanParameter::Validate")
2754 }
2755 }
2756
2757 const VTABLE: C::CAPEOPEN_1_2_ICapeBooleanParameter_VTable =
2758 C::CAPEOPEN_1_2_ICapeBooleanParameter_VTable {
2759 base: crate::C::ICapeInterface_VTable {
2760 addReference: Some(Self::T::raw_add_reference),
2761 release: Some(Self::T::raw_release),
2762 queryInterface: Some(Self::T::raw_query_interface),
2763 getLastError: Some(Self::T::raw_get_last_error),
2764 },
2765 getValue: Some(Self::T::raw_get_value),
2766 putValue: Some(Self::T::raw_set_value),
2767 getDefaultValue: Some(Self::T::raw_get_default_value),
2768 Validate: Some(Self::T::raw_validate),
2769 };
2770}
2771
2772#[cape_smart_pointer(ICAPEBOOLEANPARAMETER_UUID)]
2773pub struct CapeBooleanParameter {
2774 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeBooleanParameter,
2775}
2776
2777impl CapeBooleanParameter {
2778
2779 pub fn get_value(&self) -> Result<CapeBoolean,COBIAError> {
2780 let mut value:CapeBoolean=false as CapeBoolean;
2781 let result_code = unsafe {
2782 ((*(*self.interface).vTbl).getValue.unwrap())((*self.interface).me,&mut value as *mut CapeBoolean)
2783 };
2784 match result_code {
2785 COBIAERR_NOERROR => {Ok(value)},
2786 _ => Err(COBIAError::from_object(result_code,self))
2787 }
2788 }
2789
2790 pub fn set_value(&self,value:CapeBoolean) -> Result<(),COBIAError> {
2791 let result_code = unsafe {
2792 ((*(*self.interface).vTbl).putValue.unwrap())((*self.interface).me,value)
2793 };
2794 match result_code {
2795 COBIAERR_NOERROR => {Ok(())},
2796 _ => Err(COBIAError::from_object(result_code,self))
2797 }
2798 }
2799
2800 pub fn get_default_value(&self) -> Result<CapeBoolean,COBIAError> {
2801 let mut default_value:CapeBoolean=false as CapeBoolean;
2802 let result_code = unsafe {
2803 ((*(*self.interface).vTbl).getDefaultValue.unwrap())((*self.interface).me,&mut default_value as *mut CapeBoolean)
2804 };
2805 match result_code {
2806 COBIAERR_NOERROR => {Ok(default_value)},
2807 _ => Err(COBIAError::from_object(result_code,self))
2808 }
2809 }
2810
2811 pub fn validate<TypeOfMessage:CapeStringProviderOut>(&self,value:CapeBoolean,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
2812 let mut is_ok:CapeBoolean=false as CapeBoolean;
2813 let result_code = unsafe {
2814 ((*(*self.interface).vTbl).Validate.unwrap())((*self.interface).me,value,(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
2815 };
2816 match result_code {
2817 COBIAERR_NOERROR => {Ok(is_ok)},
2818 _ => Err(COBIAError::from_object(result_code,self))
2819 }
2820 }
2821
2822}
2823
2824pub trait ICapeArrayParameter {
2829 fn get_num_dimensions(&mut self) -> Result<CapeInteger,COBIAError>;
2830 fn get_size(&mut self,size:&mut CapeArrayIntegerOut) -> Result<(),COBIAError>;
2831}
2832
2833pub trait ICapeArrayParameterImpl : ICapeArrayParameter {
2834 type T: ICapeInterfaceImpl+ICapeArrayParameterImpl;
2835
2836 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
2837
2838 fn init_interface() -> crate::C::ICapeInterface {
2840 crate::C::ICapeInterface {
2841 me: std::ptr::null_mut(),
2842 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeArrayParameter_VTable).cast_mut()
2843 as *mut crate::C::ICapeInterface_VTable,
2844 }
2845 }
2846
2847 fn init<Timpl: ICapeArrayParameterImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
2848 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeArrayParameter =
2849 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeArrayParameter;
2850 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
2851 u.add_interface(
2852 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeArrayParameter_UUID),
2853 iface as *mut crate::C::ICapeInterface,
2854 );
2855 }
2856
2857 extern "C" fn raw_get_num_dimensions(me: *mut std::ffi::c_void,num_dimensions:*mut CapeInteger) -> crate::C::CapeResult {
2858 if num_dimensions.is_null() {
2859 return COBIAERR_NULLPOINTER;
2860 }
2861 let p = me as *mut Self::T;
2862 let myself=unsafe { &mut *p };
2863 match myself.get_num_dimensions() {
2864 Ok(_num_dimensions) => {
2865 unsafe{*num_dimensions=_num_dimensions;}
2866 COBIAERR_NOERROR
2867 },
2868 Err(e) => myself.set_last_error(e,"ICapeArrayParameter::GetNumDimensions")
2869 }
2870 }
2871
2872 extern "C" fn raw_get_size(me: *mut std::ffi::c_void,size:*mut crate::C::ICapeArrayInteger) -> crate::C::CapeResult {
2873 if size.is_null() {
2874 return COBIAERR_NULLPOINTER;
2875 }
2876 let p = me as *mut Self::T;
2877 let myself=unsafe { &mut *p };
2878 if size.is_null() {
2879 return COBIAERR_NULLPOINTER;
2880 }
2881 let mut size=unsafe{*((&size as *const *mut crate::C::ICapeArrayInteger) as *mut *mut crate::C::ICapeArrayInteger)};
2882 let mut size=CapeArrayIntegerOut::new(&mut size);
2883 match myself.get_size(&mut size) {
2884 Ok(_) => COBIAERR_NOERROR,
2885 Err(e) => myself.set_last_error(e,"ICapeArrayParameter::GetSize")
2886 }
2887 }
2888
2889 const VTABLE: C::CAPEOPEN_1_2_ICapeArrayParameter_VTable =
2890 C::CAPEOPEN_1_2_ICapeArrayParameter_VTable {
2891 base: crate::C::ICapeInterface_VTable {
2892 addReference: Some(Self::T::raw_add_reference),
2893 release: Some(Self::T::raw_release),
2894 queryInterface: Some(Self::T::raw_query_interface),
2895 getLastError: Some(Self::T::raw_get_last_error),
2896 },
2897 getNumDimensions: Some(Self::T::raw_get_num_dimensions),
2898 getSize: Some(Self::T::raw_get_size),
2899 };
2900}
2901
2902#[cape_smart_pointer(ICAPEARRAYPARAMETER_UUID)]
2903pub struct CapeArrayParameter {
2904 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeArrayParameter,
2905}
2906
2907impl CapeArrayParameter {
2908
2909 pub fn get_num_dimensions(&self) -> Result<CapeInteger,COBIAError> {
2910 let mut num_dimensions:CapeInteger=0;
2911 let result_code = unsafe {
2912 ((*(*self.interface).vTbl).getNumDimensions.unwrap())((*self.interface).me,&mut num_dimensions as *mut CapeInteger)
2913 };
2914 match result_code {
2915 COBIAERR_NOERROR => {Ok(num_dimensions)},
2916 _ => Err(COBIAError::from_object(result_code,self))
2917 }
2918 }
2919
2920 pub fn get_size<TypeOfSize:CapeArrayIntegerProviderOut>(&self,size:&mut TypeOfSize) -> Result<(),COBIAError> {
2921 let result_code = unsafe {
2922 ((*(*self.interface).vTbl).getSize.unwrap())((*self.interface).me,(&size.as_cape_array_integer_out() as *const crate::C::ICapeArrayInteger).cast_mut())
2923 };
2924 match result_code {
2925 COBIAERR_NOERROR => {Ok(())},
2926 _ => Err(COBIAError::from_object(result_code,self))
2927 }
2928 }
2929
2930}
2931
2932pub trait ICapeArrayRealParameter {
2937 fn get_value(&mut self,value:&mut CapeArrayRealOut) -> Result<(),COBIAError>;
2938 fn set_value(&mut self,value:&CapeArrayRealIn) -> Result<(),COBIAError>;
2939 fn get_element_value(&mut self,position:&CapeArrayIntegerIn) -> Result<CapeReal,COBIAError>;
2940 fn set_element_value(&mut self,position:&CapeArrayIntegerIn,value:CapeReal) -> Result<(),COBIAError>;
2941 fn get_default_value(&mut self) -> Result<CapeReal,COBIAError>;
2942 fn get_lower_bound(&mut self) -> Result<CapeReal,COBIAError>;
2943 fn get_upper_bound(&mut self) -> Result<CapeReal,COBIAError>;
2944 fn get_dimensionality(&mut self,dimensionality:&mut CapeArrayRealOut) -> Result<(),COBIAError>;
2945 fn validate_element(&mut self,position:&CapeArrayIntegerIn,value:CapeReal,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
2946 fn validate(&mut self,value:&CapeArrayRealIn,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
2947}
2948
2949pub trait ICapeArrayRealParameterImpl : ICapeArrayRealParameter {
2950 type T: ICapeInterfaceImpl+ICapeArrayRealParameterImpl;
2951
2952 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
2953
2954 fn init_interface() -> crate::C::ICapeInterface {
2956 crate::C::ICapeInterface {
2957 me: std::ptr::null_mut(),
2958 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeArrayRealParameter_VTable).cast_mut()
2959 as *mut crate::C::ICapeInterface_VTable,
2960 }
2961 }
2962
2963 fn init<Timpl: ICapeArrayRealParameterImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
2964 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeArrayRealParameter =
2965 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeArrayRealParameter;
2966 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
2967 u.add_interface(
2968 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeArrayRealParameter_UUID),
2969 iface as *mut crate::C::ICapeInterface,
2970 );
2971 }
2972
2973 extern "C" fn raw_get_value(me: *mut std::ffi::c_void,value:*mut crate::C::ICapeArrayReal) -> crate::C::CapeResult {
2974 if value.is_null() {
2975 return COBIAERR_NULLPOINTER;
2976 }
2977 let p = me as *mut Self::T;
2978 let myself=unsafe { &mut *p };
2979 if value.is_null() {
2980 return COBIAERR_NULLPOINTER;
2981 }
2982 let mut value=unsafe{*((&value as *const *mut crate::C::ICapeArrayReal) as *mut *mut crate::C::ICapeArrayReal)};
2983 let mut value=CapeArrayRealOut::new(&mut value);
2984 match myself.get_value(&mut value) {
2985 Ok(_) => COBIAERR_NOERROR,
2986 Err(e) => myself.set_last_error(e,"ICapeArrayRealParameter::GetValue")
2987 }
2988 }
2989
2990 extern "C" fn raw_set_value(me: *mut std::ffi::c_void,value:*mut crate::C::ICapeArrayReal) -> crate::C::CapeResult {
2991 let p = me as *mut Self::T;
2992 let myself=unsafe { &mut *p };
2993 let value=CapeArrayRealIn::new(&value);
2994 match myself.set_value(&value) {
2995 Ok(_) => COBIAERR_NOERROR,
2996 Err(e) => myself.set_last_error(e,"ICapeArrayRealParameter::SetValue")
2997 }
2998 }
2999
3000 extern "C" fn raw_get_element_value(me: *mut std::ffi::c_void,position:*mut crate::C::ICapeArrayInteger,value:*mut CapeReal) -> crate::C::CapeResult {
3001 if value.is_null() {
3002 return COBIAERR_NULLPOINTER;
3003 }
3004 let p = me as *mut Self::T;
3005 let myself=unsafe { &mut *p };
3006 let position=CapeArrayIntegerIn::new(&position);
3007 match myself.get_element_value(&position) {
3008 Ok(_value) => {
3009 unsafe{*value=_value;}
3010 COBIAERR_NOERROR
3011 },
3012 Err(e) => myself.set_last_error(e,"ICapeArrayRealParameter::GetElementValue")
3013 }
3014 }
3015
3016 extern "C" fn raw_set_element_value(me: *mut std::ffi::c_void,position:*mut crate::C::ICapeArrayInteger,value:CapeReal) -> crate::C::CapeResult {
3017 let p = me as *mut Self::T;
3018 let myself=unsafe { &mut *p };
3019 let position=CapeArrayIntegerIn::new(&position);
3020 match myself.set_element_value(&position,value) {
3021 Ok(_) => COBIAERR_NOERROR,
3022 Err(e) => myself.set_last_error(e,"ICapeArrayRealParameter::SetElementValue")
3023 }
3024 }
3025
3026 extern "C" fn raw_get_default_value(me: *mut std::ffi::c_void,default_value:*mut CapeReal) -> crate::C::CapeResult {
3027 if default_value.is_null() {
3028 return COBIAERR_NULLPOINTER;
3029 }
3030 let p = me as *mut Self::T;
3031 let myself=unsafe { &mut *p };
3032 match myself.get_default_value() {
3033 Ok(_default_value) => {
3034 unsafe{*default_value=_default_value;}
3035 COBIAERR_NOERROR
3036 },
3037 Err(e) => myself.set_last_error(e,"ICapeArrayRealParameter::GetDefaultValue")
3038 }
3039 }
3040
3041 extern "C" fn raw_get_lower_bound(me: *mut std::ffi::c_void,l_bound:*mut CapeReal) -> crate::C::CapeResult {
3042 if l_bound.is_null() {
3043 return COBIAERR_NULLPOINTER;
3044 }
3045 let p = me as *mut Self::T;
3046 let myself=unsafe { &mut *p };
3047 match myself.get_lower_bound() {
3048 Ok(_l_bound) => {
3049 unsafe{*l_bound=_l_bound;}
3050 COBIAERR_NOERROR
3051 },
3052 Err(e) => myself.set_last_error(e,"ICapeArrayRealParameter::GetLowerBound")
3053 }
3054 }
3055
3056 extern "C" fn raw_get_upper_bound(me: *mut std::ffi::c_void,u_bound:*mut CapeReal) -> crate::C::CapeResult {
3057 if u_bound.is_null() {
3058 return COBIAERR_NULLPOINTER;
3059 }
3060 let p = me as *mut Self::T;
3061 let myself=unsafe { &mut *p };
3062 match myself.get_upper_bound() {
3063 Ok(_u_bound) => {
3064 unsafe{*u_bound=_u_bound;}
3065 COBIAERR_NOERROR
3066 },
3067 Err(e) => myself.set_last_error(e,"ICapeArrayRealParameter::GetUpperBound")
3068 }
3069 }
3070
3071 extern "C" fn raw_get_dimensionality(me: *mut std::ffi::c_void,dimensionality:*mut crate::C::ICapeArrayReal) -> crate::C::CapeResult {
3072 if dimensionality.is_null() {
3073 return COBIAERR_NULLPOINTER;
3074 }
3075 let p = me as *mut Self::T;
3076 let myself=unsafe { &mut *p };
3077 if dimensionality.is_null() {
3078 return COBIAERR_NULLPOINTER;
3079 }
3080 let mut dimensionality=unsafe{*((&dimensionality as *const *mut crate::C::ICapeArrayReal) as *mut *mut crate::C::ICapeArrayReal)};
3081 let mut dimensionality=CapeArrayRealOut::new(&mut dimensionality);
3082 match myself.get_dimensionality(&mut dimensionality) {
3083 Ok(_) => COBIAERR_NOERROR,
3084 Err(e) => myself.set_last_error(e,"ICapeArrayRealParameter::GetDimensionality")
3085 }
3086 }
3087
3088 extern "C" fn raw_validate_element(me: *mut std::ffi::c_void,position:*mut crate::C::ICapeArrayInteger,value:CapeReal,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
3089 if message.is_null()||is_ok.is_null() {
3090 return COBIAERR_NULLPOINTER;
3091 }
3092 let p = me as *mut Self::T;
3093 let myself=unsafe { &mut *p };
3094 if message.is_null() {
3095 return COBIAERR_NULLPOINTER;
3096 }
3097 let position=CapeArrayIntegerIn::new(&position);
3098 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
3099 let mut message=CapeStringOut::new(&mut message);
3100 match myself.validate_element(&position,value,&mut message) {
3101 Ok(_is_ok) => {
3102 unsafe{*is_ok=_is_ok;}
3103 COBIAERR_NOERROR
3104 },
3105 Err(e) => myself.set_last_error(e,"ICapeArrayRealParameter::ValidateElement")
3106 }
3107 }
3108
3109 extern "C" fn raw_validate(me: *mut std::ffi::c_void,value:*mut crate::C::ICapeArrayReal,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
3110 if message.is_null()||is_ok.is_null() {
3111 return COBIAERR_NULLPOINTER;
3112 }
3113 let p = me as *mut Self::T;
3114 let myself=unsafe { &mut *p };
3115 if message.is_null() {
3116 return COBIAERR_NULLPOINTER;
3117 }
3118 let value=CapeArrayRealIn::new(&value);
3119 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
3120 let mut message=CapeStringOut::new(&mut message);
3121 match myself.validate(&value,&mut message) {
3122 Ok(_is_ok) => {
3123 unsafe{*is_ok=_is_ok;}
3124 COBIAERR_NOERROR
3125 },
3126 Err(e) => myself.set_last_error(e,"ICapeArrayRealParameter::Validate")
3127 }
3128 }
3129
3130 const VTABLE: C::CAPEOPEN_1_2_ICapeArrayRealParameter_VTable =
3131 C::CAPEOPEN_1_2_ICapeArrayRealParameter_VTable {
3132 base: crate::C::ICapeInterface_VTable {
3133 addReference: Some(Self::T::raw_add_reference),
3134 release: Some(Self::T::raw_release),
3135 queryInterface: Some(Self::T::raw_query_interface),
3136 getLastError: Some(Self::T::raw_get_last_error),
3137 },
3138 getValue: Some(Self::T::raw_get_value),
3139 putValue: Some(Self::T::raw_set_value),
3140 GetElementValue: Some(Self::T::raw_get_element_value),
3141 SetElementValue: Some(Self::T::raw_set_element_value),
3142 getDefaultValue: Some(Self::T::raw_get_default_value),
3143 getLowerBound: Some(Self::T::raw_get_lower_bound),
3144 getUpperBound: Some(Self::T::raw_get_upper_bound),
3145 getDimensionality: Some(Self::T::raw_get_dimensionality),
3146 ValidateElement: Some(Self::T::raw_validate_element),
3147 Validate: Some(Self::T::raw_validate),
3148 };
3149}
3150
3151#[cape_smart_pointer(ICAPEARRAYREALPARAMETER_UUID)]
3152pub struct CapeArrayRealParameter {
3153 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeArrayRealParameter,
3154}
3155
3156impl CapeArrayRealParameter {
3157
3158 pub fn get_value<TypeOfValue:CapeArrayRealProviderOut>(&self,value:&mut TypeOfValue) -> Result<(),COBIAError> {
3159 let result_code = unsafe {
3160 ((*(*self.interface).vTbl).getValue.unwrap())((*self.interface).me,(&value.as_cape_array_real_out() as *const crate::C::ICapeArrayReal).cast_mut())
3161 };
3162 match result_code {
3163 COBIAERR_NOERROR => {Ok(())},
3164 _ => Err(COBIAError::from_object(result_code,self))
3165 }
3166 }
3167
3168 pub fn set_value<TypeOfValue:CapeArrayRealProviderIn>(&self,value:&TypeOfValue) -> Result<(),COBIAError> {
3169 let result_code = unsafe {
3170 ((*(*self.interface).vTbl).putValue.unwrap())((*self.interface).me,(&value.as_cape_array_real_in() as *const crate::C::ICapeArrayReal).cast_mut())
3171 };
3172 match result_code {
3173 COBIAERR_NOERROR => {Ok(())},
3174 _ => Err(COBIAError::from_object(result_code,self))
3175 }
3176 }
3177
3178 pub fn get_element_value<TypeOfPosition:CapeArrayIntegerProviderIn>(&self,position:&TypeOfPosition) -> Result<CapeReal,COBIAError> {
3179 let mut value:CapeReal=0.0;
3180 let result_code = unsafe {
3181 ((*(*self.interface).vTbl).GetElementValue.unwrap())((*self.interface).me,(&position.as_cape_array_integer_in() as *const crate::C::ICapeArrayInteger).cast_mut(),&mut value as *mut CapeReal)
3182 };
3183 match result_code {
3184 COBIAERR_NOERROR => {Ok(value)},
3185 _ => Err(COBIAError::from_object(result_code,self))
3186 }
3187 }
3188
3189 pub fn set_element_value<TypeOfPosition:CapeArrayIntegerProviderIn>(&self,position:&TypeOfPosition,value:CapeReal) -> Result<(),COBIAError> {
3190 let result_code = unsafe {
3191 ((*(*self.interface).vTbl).SetElementValue.unwrap())((*self.interface).me,(&position.as_cape_array_integer_in() as *const crate::C::ICapeArrayInteger).cast_mut(),value)
3192 };
3193 match result_code {
3194 COBIAERR_NOERROR => {Ok(())},
3195 _ => Err(COBIAError::from_object(result_code,self))
3196 }
3197 }
3198
3199 pub fn get_default_value(&self) -> Result<CapeReal,COBIAError> {
3200 let mut default_value:CapeReal=0.0;
3201 let result_code = unsafe {
3202 ((*(*self.interface).vTbl).getDefaultValue.unwrap())((*self.interface).me,&mut default_value as *mut CapeReal)
3203 };
3204 match result_code {
3205 COBIAERR_NOERROR => {Ok(default_value)},
3206 _ => Err(COBIAError::from_object(result_code,self))
3207 }
3208 }
3209
3210 pub fn get_lower_bound(&self) -> Result<CapeReal,COBIAError> {
3211 let mut l_bound:CapeReal=0.0;
3212 let result_code = unsafe {
3213 ((*(*self.interface).vTbl).getLowerBound.unwrap())((*self.interface).me,&mut l_bound as *mut CapeReal)
3214 };
3215 match result_code {
3216 COBIAERR_NOERROR => {Ok(l_bound)},
3217 _ => Err(COBIAError::from_object(result_code,self))
3218 }
3219 }
3220
3221 pub fn get_upper_bound(&self) -> Result<CapeReal,COBIAError> {
3222 let mut u_bound:CapeReal=0.0;
3223 let result_code = unsafe {
3224 ((*(*self.interface).vTbl).getUpperBound.unwrap())((*self.interface).me,&mut u_bound as *mut CapeReal)
3225 };
3226 match result_code {
3227 COBIAERR_NOERROR => {Ok(u_bound)},
3228 _ => Err(COBIAError::from_object(result_code,self))
3229 }
3230 }
3231
3232 pub fn get_dimensionality<TypeOfDimensionality:CapeArrayRealProviderOut>(&self,dimensionality:&mut TypeOfDimensionality) -> Result<(),COBIAError> {
3233 let result_code = unsafe {
3234 ((*(*self.interface).vTbl).getDimensionality.unwrap())((*self.interface).me,(&dimensionality.as_cape_array_real_out() as *const crate::C::ICapeArrayReal).cast_mut())
3235 };
3236 match result_code {
3237 COBIAERR_NOERROR => {Ok(())},
3238 _ => Err(COBIAError::from_object(result_code,self))
3239 }
3240 }
3241
3242 pub fn validate_element<TypeOfPosition:CapeArrayIntegerProviderIn,TypeOfMessage:CapeStringProviderOut>(&self,position:&TypeOfPosition,value:CapeReal,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
3243 let mut is_ok:CapeBoolean=false as CapeBoolean;
3244 let result_code = unsafe {
3245 ((*(*self.interface).vTbl).ValidateElement.unwrap())((*self.interface).me,(&position.as_cape_array_integer_in() as *const crate::C::ICapeArrayInteger).cast_mut(),value,(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
3246 };
3247 match result_code {
3248 COBIAERR_NOERROR => {Ok(is_ok)},
3249 _ => Err(COBIAError::from_object(result_code,self))
3250 }
3251 }
3252
3253 pub fn validate<TypeOfValue:CapeArrayRealProviderIn,TypeOfMessage:CapeStringProviderOut>(&self,value:&TypeOfValue,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
3254 let mut is_ok:CapeBoolean=false as CapeBoolean;
3255 let result_code = unsafe {
3256 ((*(*self.interface).vTbl).Validate.unwrap())((*self.interface).me,(&value.as_cape_array_real_in() as *const crate::C::ICapeArrayReal).cast_mut(),(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
3257 };
3258 match result_code {
3259 COBIAERR_NOERROR => {Ok(is_ok)},
3260 _ => Err(COBIAError::from_object(result_code,self))
3261 }
3262 }
3263
3264}
3265
3266pub trait ICapeArrayIntegerParameter {
3271 fn get_value(&mut self,value:&mut CapeArrayIntegerOut) -> Result<(),COBIAError>;
3272 fn set_value(&mut self,value:&CapeArrayIntegerIn) -> Result<(),COBIAError>;
3273 fn get_element_value(&mut self,position:&CapeArrayIntegerIn) -> Result<CapeInteger,COBIAError>;
3274 fn set_element_value(&mut self,position:&CapeArrayIntegerIn,value:CapeInteger) -> Result<(),COBIAError>;
3275 fn get_default_value(&mut self) -> Result<CapeInteger,COBIAError>;
3276 fn get_lower_bound(&mut self) -> Result<CapeInteger,COBIAError>;
3277 fn get_upper_bound(&mut self) -> Result<CapeInteger,COBIAError>;
3278 fn validate_element(&mut self,position:&CapeArrayIntegerIn,value:CapeInteger,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
3279 fn validate(&mut self,value:&CapeArrayIntegerIn,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
3280}
3281
3282pub trait ICapeArrayIntegerParameterImpl : ICapeArrayIntegerParameter {
3283 type T: ICapeInterfaceImpl+ICapeArrayIntegerParameterImpl;
3284
3285 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
3286
3287 fn init_interface() -> crate::C::ICapeInterface {
3289 crate::C::ICapeInterface {
3290 me: std::ptr::null_mut(),
3291 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeArrayIntegerParameter_VTable).cast_mut()
3292 as *mut crate::C::ICapeInterface_VTable,
3293 }
3294 }
3295
3296 fn init<Timpl: ICapeArrayIntegerParameterImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
3297 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeArrayIntegerParameter =
3298 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeArrayIntegerParameter;
3299 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
3300 u.add_interface(
3301 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeArrayIntegerParameter_UUID),
3302 iface as *mut crate::C::ICapeInterface,
3303 );
3304 }
3305
3306 extern "C" fn raw_get_value(me: *mut std::ffi::c_void,value:*mut crate::C::ICapeArrayInteger) -> crate::C::CapeResult {
3307 if value.is_null() {
3308 return COBIAERR_NULLPOINTER;
3309 }
3310 let p = me as *mut Self::T;
3311 let myself=unsafe { &mut *p };
3312 if value.is_null() {
3313 return COBIAERR_NULLPOINTER;
3314 }
3315 let mut value=unsafe{*((&value as *const *mut crate::C::ICapeArrayInteger) as *mut *mut crate::C::ICapeArrayInteger)};
3316 let mut value=CapeArrayIntegerOut::new(&mut value);
3317 match myself.get_value(&mut value) {
3318 Ok(_) => COBIAERR_NOERROR,
3319 Err(e) => myself.set_last_error(e,"ICapeArrayIntegerParameter::GetValue")
3320 }
3321 }
3322
3323 extern "C" fn raw_set_value(me: *mut std::ffi::c_void,value:*mut crate::C::ICapeArrayInteger) -> crate::C::CapeResult {
3324 let p = me as *mut Self::T;
3325 let myself=unsafe { &mut *p };
3326 let value=CapeArrayIntegerIn::new(&value);
3327 match myself.set_value(&value) {
3328 Ok(_) => COBIAERR_NOERROR,
3329 Err(e) => myself.set_last_error(e,"ICapeArrayIntegerParameter::SetValue")
3330 }
3331 }
3332
3333 extern "C" fn raw_get_element_value(me: *mut std::ffi::c_void,position:*mut crate::C::ICapeArrayInteger,value:*mut CapeInteger) -> crate::C::CapeResult {
3334 if value.is_null() {
3335 return COBIAERR_NULLPOINTER;
3336 }
3337 let p = me as *mut Self::T;
3338 let myself=unsafe { &mut *p };
3339 let position=CapeArrayIntegerIn::new(&position);
3340 match myself.get_element_value(&position) {
3341 Ok(_value) => {
3342 unsafe{*value=_value;}
3343 COBIAERR_NOERROR
3344 },
3345 Err(e) => myself.set_last_error(e,"ICapeArrayIntegerParameter::GetElementValue")
3346 }
3347 }
3348
3349 extern "C" fn raw_set_element_value(me: *mut std::ffi::c_void,position:*mut crate::C::ICapeArrayInteger,value:CapeInteger) -> crate::C::CapeResult {
3350 let p = me as *mut Self::T;
3351 let myself=unsafe { &mut *p };
3352 let position=CapeArrayIntegerIn::new(&position);
3353 match myself.set_element_value(&position,value) {
3354 Ok(_) => COBIAERR_NOERROR,
3355 Err(e) => myself.set_last_error(e,"ICapeArrayIntegerParameter::SetElementValue")
3356 }
3357 }
3358
3359 extern "C" fn raw_get_default_value(me: *mut std::ffi::c_void,default_value:*mut CapeInteger) -> crate::C::CapeResult {
3360 if default_value.is_null() {
3361 return COBIAERR_NULLPOINTER;
3362 }
3363 let p = me as *mut Self::T;
3364 let myself=unsafe { &mut *p };
3365 match myself.get_default_value() {
3366 Ok(_default_value) => {
3367 unsafe{*default_value=_default_value;}
3368 COBIAERR_NOERROR
3369 },
3370 Err(e) => myself.set_last_error(e,"ICapeArrayIntegerParameter::GetDefaultValue")
3371 }
3372 }
3373
3374 extern "C" fn raw_get_lower_bound(me: *mut std::ffi::c_void,l_bound:*mut CapeInteger) -> crate::C::CapeResult {
3375 if l_bound.is_null() {
3376 return COBIAERR_NULLPOINTER;
3377 }
3378 let p = me as *mut Self::T;
3379 let myself=unsafe { &mut *p };
3380 match myself.get_lower_bound() {
3381 Ok(_l_bound) => {
3382 unsafe{*l_bound=_l_bound;}
3383 COBIAERR_NOERROR
3384 },
3385 Err(e) => myself.set_last_error(e,"ICapeArrayIntegerParameter::GetLowerBound")
3386 }
3387 }
3388
3389 extern "C" fn raw_get_upper_bound(me: *mut std::ffi::c_void,u_bound:*mut CapeInteger) -> crate::C::CapeResult {
3390 if u_bound.is_null() {
3391 return COBIAERR_NULLPOINTER;
3392 }
3393 let p = me as *mut Self::T;
3394 let myself=unsafe { &mut *p };
3395 match myself.get_upper_bound() {
3396 Ok(_u_bound) => {
3397 unsafe{*u_bound=_u_bound;}
3398 COBIAERR_NOERROR
3399 },
3400 Err(e) => myself.set_last_error(e,"ICapeArrayIntegerParameter::GetUpperBound")
3401 }
3402 }
3403
3404 extern "C" fn raw_validate_element(me: *mut std::ffi::c_void,position:*mut crate::C::ICapeArrayInteger,value:CapeInteger,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
3405 if message.is_null()||is_ok.is_null() {
3406 return COBIAERR_NULLPOINTER;
3407 }
3408 let p = me as *mut Self::T;
3409 let myself=unsafe { &mut *p };
3410 if message.is_null() {
3411 return COBIAERR_NULLPOINTER;
3412 }
3413 let position=CapeArrayIntegerIn::new(&position);
3414 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
3415 let mut message=CapeStringOut::new(&mut message);
3416 match myself.validate_element(&position,value,&mut message) {
3417 Ok(_is_ok) => {
3418 unsafe{*is_ok=_is_ok;}
3419 COBIAERR_NOERROR
3420 },
3421 Err(e) => myself.set_last_error(e,"ICapeArrayIntegerParameter::ValidateElement")
3422 }
3423 }
3424
3425 extern "C" fn raw_validate(me: *mut std::ffi::c_void,value:*mut crate::C::ICapeArrayInteger,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
3426 if message.is_null()||is_ok.is_null() {
3427 return COBIAERR_NULLPOINTER;
3428 }
3429 let p = me as *mut Self::T;
3430 let myself=unsafe { &mut *p };
3431 if message.is_null() {
3432 return COBIAERR_NULLPOINTER;
3433 }
3434 let value=CapeArrayIntegerIn::new(&value);
3435 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
3436 let mut message=CapeStringOut::new(&mut message);
3437 match myself.validate(&value,&mut message) {
3438 Ok(_is_ok) => {
3439 unsafe{*is_ok=_is_ok;}
3440 COBIAERR_NOERROR
3441 },
3442 Err(e) => myself.set_last_error(e,"ICapeArrayIntegerParameter::Validate")
3443 }
3444 }
3445
3446 const VTABLE: C::CAPEOPEN_1_2_ICapeArrayIntegerParameter_VTable =
3447 C::CAPEOPEN_1_2_ICapeArrayIntegerParameter_VTable {
3448 base: crate::C::ICapeInterface_VTable {
3449 addReference: Some(Self::T::raw_add_reference),
3450 release: Some(Self::T::raw_release),
3451 queryInterface: Some(Self::T::raw_query_interface),
3452 getLastError: Some(Self::T::raw_get_last_error),
3453 },
3454 getValue: Some(Self::T::raw_get_value),
3455 putValue: Some(Self::T::raw_set_value),
3456 GetElementValue: Some(Self::T::raw_get_element_value),
3457 SetElementValue: Some(Self::T::raw_set_element_value),
3458 getDefaultValue: Some(Self::T::raw_get_default_value),
3459 getLowerBound: Some(Self::T::raw_get_lower_bound),
3460 getUpperBound: Some(Self::T::raw_get_upper_bound),
3461 ValidateElement: Some(Self::T::raw_validate_element),
3462 Validate: Some(Self::T::raw_validate),
3463 };
3464}
3465
3466#[cape_smart_pointer(ICAPEARRAYINTEGERPARAMETER_UUID)]
3467pub struct CapeArrayIntegerParameter {
3468 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeArrayIntegerParameter,
3469}
3470
3471impl CapeArrayIntegerParameter {
3472
3473 pub fn get_value<TypeOfValue:CapeArrayIntegerProviderOut>(&self,value:&mut TypeOfValue) -> Result<(),COBIAError> {
3474 let result_code = unsafe {
3475 ((*(*self.interface).vTbl).getValue.unwrap())((*self.interface).me,(&value.as_cape_array_integer_out() as *const crate::C::ICapeArrayInteger).cast_mut())
3476 };
3477 match result_code {
3478 COBIAERR_NOERROR => {Ok(())},
3479 _ => Err(COBIAError::from_object(result_code,self))
3480 }
3481 }
3482
3483 pub fn set_value<TypeOfValue:CapeArrayIntegerProviderIn>(&self,value:&TypeOfValue) -> Result<(),COBIAError> {
3484 let result_code = unsafe {
3485 ((*(*self.interface).vTbl).putValue.unwrap())((*self.interface).me,(&value.as_cape_array_integer_in() as *const crate::C::ICapeArrayInteger).cast_mut())
3486 };
3487 match result_code {
3488 COBIAERR_NOERROR => {Ok(())},
3489 _ => Err(COBIAError::from_object(result_code,self))
3490 }
3491 }
3492
3493 pub fn get_element_value<TypeOfPosition:CapeArrayIntegerProviderIn>(&self,position:&TypeOfPosition) -> Result<CapeInteger,COBIAError> {
3494 let mut value:CapeInteger=0;
3495 let result_code = unsafe {
3496 ((*(*self.interface).vTbl).GetElementValue.unwrap())((*self.interface).me,(&position.as_cape_array_integer_in() as *const crate::C::ICapeArrayInteger).cast_mut(),&mut value as *mut CapeInteger)
3497 };
3498 match result_code {
3499 COBIAERR_NOERROR => {Ok(value)},
3500 _ => Err(COBIAError::from_object(result_code,self))
3501 }
3502 }
3503
3504 pub fn set_element_value<TypeOfPosition:CapeArrayIntegerProviderIn>(&self,position:&TypeOfPosition,value:CapeInteger) -> Result<(),COBIAError> {
3505 let result_code = unsafe {
3506 ((*(*self.interface).vTbl).SetElementValue.unwrap())((*self.interface).me,(&position.as_cape_array_integer_in() as *const crate::C::ICapeArrayInteger).cast_mut(),value)
3507 };
3508 match result_code {
3509 COBIAERR_NOERROR => {Ok(())},
3510 _ => Err(COBIAError::from_object(result_code,self))
3511 }
3512 }
3513
3514 pub fn get_default_value(&self) -> Result<CapeInteger,COBIAError> {
3515 let mut default_value:CapeInteger=0;
3516 let result_code = unsafe {
3517 ((*(*self.interface).vTbl).getDefaultValue.unwrap())((*self.interface).me,&mut default_value as *mut CapeInteger)
3518 };
3519 match result_code {
3520 COBIAERR_NOERROR => {Ok(default_value)},
3521 _ => Err(COBIAError::from_object(result_code,self))
3522 }
3523 }
3524
3525 pub fn get_lower_bound(&self) -> Result<CapeInteger,COBIAError> {
3526 let mut l_bound:CapeInteger=0;
3527 let result_code = unsafe {
3528 ((*(*self.interface).vTbl).getLowerBound.unwrap())((*self.interface).me,&mut l_bound as *mut CapeInteger)
3529 };
3530 match result_code {
3531 COBIAERR_NOERROR => {Ok(l_bound)},
3532 _ => Err(COBIAError::from_object(result_code,self))
3533 }
3534 }
3535
3536 pub fn get_upper_bound(&self) -> Result<CapeInteger,COBIAError> {
3537 let mut u_bound:CapeInteger=0;
3538 let result_code = unsafe {
3539 ((*(*self.interface).vTbl).getUpperBound.unwrap())((*self.interface).me,&mut u_bound as *mut CapeInteger)
3540 };
3541 match result_code {
3542 COBIAERR_NOERROR => {Ok(u_bound)},
3543 _ => Err(COBIAError::from_object(result_code,self))
3544 }
3545 }
3546
3547 pub fn validate_element<TypeOfPosition:CapeArrayIntegerProviderIn,TypeOfMessage:CapeStringProviderOut>(&self,position:&TypeOfPosition,value:CapeInteger,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
3548 let mut is_ok:CapeBoolean=false as CapeBoolean;
3549 let result_code = unsafe {
3550 ((*(*self.interface).vTbl).ValidateElement.unwrap())((*self.interface).me,(&position.as_cape_array_integer_in() as *const crate::C::ICapeArrayInteger).cast_mut(),value,(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
3551 };
3552 match result_code {
3553 COBIAERR_NOERROR => {Ok(is_ok)},
3554 _ => Err(COBIAError::from_object(result_code,self))
3555 }
3556 }
3557
3558 pub fn validate<TypeOfValue:CapeArrayIntegerProviderIn,TypeOfMessage:CapeStringProviderOut>(&self,value:&TypeOfValue,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
3559 let mut is_ok:CapeBoolean=false as CapeBoolean;
3560 let result_code = unsafe {
3561 ((*(*self.interface).vTbl).Validate.unwrap())((*self.interface).me,(&value.as_cape_array_integer_in() as *const crate::C::ICapeArrayInteger).cast_mut(),(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
3562 };
3563 match result_code {
3564 COBIAERR_NOERROR => {Ok(is_ok)},
3565 _ => Err(COBIAError::from_object(result_code,self))
3566 }
3567 }
3568
3569}
3570
3571pub trait ICapeArrayStringParameter {
3576 fn get_value(&mut self,value:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
3577 fn set_value(&mut self,value:&CapeArrayStringIn) -> Result<(),COBIAError>;
3578 fn get_element_value(&mut self,position:&CapeArrayIntegerIn,value:&mut CapeStringOut) -> Result<(),COBIAError>;
3579 fn set_element_value(&mut self,position:&CapeArrayIntegerIn,value:&CapeStringIn) -> Result<(),COBIAError>;
3580 fn get_default_value(&mut self,default_value:&mut CapeStringOut) -> Result<(),COBIAError>;
3581 fn get_option_list(&mut self,option_names:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
3582 fn get_restricted_to_list(&mut self) -> Result<CapeBoolean,COBIAError>;
3583 fn validate_element(&mut self,position:&CapeArrayIntegerIn,value:&CapeStringIn,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
3584 fn validate(&mut self,value:&CapeArrayStringIn,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
3585}
3586
3587pub trait ICapeArrayStringParameterImpl : ICapeArrayStringParameter {
3588 type T: ICapeInterfaceImpl+ICapeArrayStringParameterImpl;
3589
3590 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
3591
3592 fn init_interface() -> crate::C::ICapeInterface {
3594 crate::C::ICapeInterface {
3595 me: std::ptr::null_mut(),
3596 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeArrayStringParameter_VTable).cast_mut()
3597 as *mut crate::C::ICapeInterface_VTable,
3598 }
3599 }
3600
3601 fn init<Timpl: ICapeArrayStringParameterImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
3602 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeArrayStringParameter =
3603 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeArrayStringParameter;
3604 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
3605 u.add_interface(
3606 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeArrayStringParameter_UUID),
3607 iface as *mut crate::C::ICapeInterface,
3608 );
3609 }
3610
3611 extern "C" fn raw_get_value(me: *mut std::ffi::c_void,value:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
3612 if value.is_null() {
3613 return COBIAERR_NULLPOINTER;
3614 }
3615 let p = me as *mut Self::T;
3616 let myself=unsafe { &mut *p };
3617 if value.is_null() {
3618 return COBIAERR_NULLPOINTER;
3619 }
3620 let mut value=unsafe{*((&value as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
3621 let mut value=CapeArrayStringOut::new(&mut value);
3622 match myself.get_value(&mut value) {
3623 Ok(_) => COBIAERR_NOERROR,
3624 Err(e) => myself.set_last_error(e,"ICapeArrayStringParameter::GetValue")
3625 }
3626 }
3627
3628 extern "C" fn raw_set_value(me: *mut std::ffi::c_void,value:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
3629 let p = me as *mut Self::T;
3630 let myself=unsafe { &mut *p };
3631 let value=CapeArrayStringIn::new(&value);
3632 match myself.set_value(&value) {
3633 Ok(_) => COBIAERR_NOERROR,
3634 Err(e) => myself.set_last_error(e,"ICapeArrayStringParameter::SetValue")
3635 }
3636 }
3637
3638 extern "C" fn raw_get_element_value(me: *mut std::ffi::c_void,position:*mut crate::C::ICapeArrayInteger,value:*mut crate::C::ICapeString) -> crate::C::CapeResult {
3639 if value.is_null() {
3640 return COBIAERR_NULLPOINTER;
3641 }
3642 let p = me as *mut Self::T;
3643 let myself=unsafe { &mut *p };
3644 if value.is_null() {
3645 return COBIAERR_NULLPOINTER;
3646 }
3647 let position=CapeArrayIntegerIn::new(&position);
3648 let mut value=unsafe{*((&value as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
3649 let mut value=CapeStringOut::new(&mut value);
3650 match myself.get_element_value(&position,&mut value) {
3651 Ok(_) => COBIAERR_NOERROR,
3652 Err(e) => myself.set_last_error(e,"ICapeArrayStringParameter::GetElementValue")
3653 }
3654 }
3655
3656 extern "C" fn raw_set_element_value(me: *mut std::ffi::c_void,position:*mut crate::C::ICapeArrayInteger,value:*mut crate::C::ICapeString) -> crate::C::CapeResult {
3657 let p = me as *mut Self::T;
3658 let myself=unsafe { &mut *p };
3659 let position=CapeArrayIntegerIn::new(&position);
3660 let value=CapeStringIn::new(&value);
3661 match myself.set_element_value(&position,&value) {
3662 Ok(_) => COBIAERR_NOERROR,
3663 Err(e) => myself.set_last_error(e,"ICapeArrayStringParameter::SetElementValue")
3664 }
3665 }
3666
3667 extern "C" fn raw_get_default_value(me: *mut std::ffi::c_void,default_value:*mut crate::C::ICapeString) -> crate::C::CapeResult {
3668 if default_value.is_null() {
3669 return COBIAERR_NULLPOINTER;
3670 }
3671 let p = me as *mut Self::T;
3672 let myself=unsafe { &mut *p };
3673 if default_value.is_null() {
3674 return COBIAERR_NULLPOINTER;
3675 }
3676 let mut default_value=unsafe{*((&default_value as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
3677 let mut default_value=CapeStringOut::new(&mut default_value);
3678 match myself.get_default_value(&mut default_value) {
3679 Ok(_) => COBIAERR_NOERROR,
3680 Err(e) => myself.set_last_error(e,"ICapeArrayStringParameter::GetDefaultValue")
3681 }
3682 }
3683
3684 extern "C" fn raw_get_option_list(me: *mut std::ffi::c_void,option_names:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
3685 if option_names.is_null() {
3686 return COBIAERR_NULLPOINTER;
3687 }
3688 let p = me as *mut Self::T;
3689 let myself=unsafe { &mut *p };
3690 if option_names.is_null() {
3691 return COBIAERR_NULLPOINTER;
3692 }
3693 let mut option_names=unsafe{*((&option_names as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
3694 let mut option_names=CapeArrayStringOut::new(&mut option_names);
3695 match myself.get_option_list(&mut option_names) {
3696 Ok(_) => COBIAERR_NOERROR,
3697 Err(e) => myself.set_last_error(e,"ICapeArrayStringParameter::GetOptionList")
3698 }
3699 }
3700
3701 extern "C" fn raw_get_restricted_to_list(me: *mut std::ffi::c_void,restricted:*mut CapeBoolean) -> crate::C::CapeResult {
3702 if restricted.is_null() {
3703 return COBIAERR_NULLPOINTER;
3704 }
3705 let p = me as *mut Self::T;
3706 let myself=unsafe { &mut *p };
3707 match myself.get_restricted_to_list() {
3708 Ok(_restricted) => {
3709 unsafe{*restricted=_restricted;}
3710 COBIAERR_NOERROR
3711 },
3712 Err(e) => myself.set_last_error(e,"ICapeArrayStringParameter::GetRestrictedToList")
3713 }
3714 }
3715
3716 extern "C" fn raw_validate_element(me: *mut std::ffi::c_void,position:*mut crate::C::ICapeArrayInteger,value:*mut crate::C::ICapeString,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
3717 if message.is_null()||is_ok.is_null() {
3718 return COBIAERR_NULLPOINTER;
3719 }
3720 let p = me as *mut Self::T;
3721 let myself=unsafe { &mut *p };
3722 if message.is_null() {
3723 return COBIAERR_NULLPOINTER;
3724 }
3725 let position=CapeArrayIntegerIn::new(&position);
3726 let value=CapeStringIn::new(&value);
3727 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
3728 let mut message=CapeStringOut::new(&mut message);
3729 match myself.validate_element(&position,&value,&mut message) {
3730 Ok(_is_ok) => {
3731 unsafe{*is_ok=_is_ok;}
3732 COBIAERR_NOERROR
3733 },
3734 Err(e) => myself.set_last_error(e,"ICapeArrayStringParameter::ValidateElement")
3735 }
3736 }
3737
3738 extern "C" fn raw_validate(me: *mut std::ffi::c_void,value:*mut crate::C::ICapeArrayString,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
3739 if message.is_null()||is_ok.is_null() {
3740 return COBIAERR_NULLPOINTER;
3741 }
3742 let p = me as *mut Self::T;
3743 let myself=unsafe { &mut *p };
3744 if message.is_null() {
3745 return COBIAERR_NULLPOINTER;
3746 }
3747 let value=CapeArrayStringIn::new(&value);
3748 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
3749 let mut message=CapeStringOut::new(&mut message);
3750 match myself.validate(&value,&mut message) {
3751 Ok(_is_ok) => {
3752 unsafe{*is_ok=_is_ok;}
3753 COBIAERR_NOERROR
3754 },
3755 Err(e) => myself.set_last_error(e,"ICapeArrayStringParameter::Validate")
3756 }
3757 }
3758
3759 const VTABLE: C::CAPEOPEN_1_2_ICapeArrayStringParameter_VTable =
3760 C::CAPEOPEN_1_2_ICapeArrayStringParameter_VTable {
3761 base: crate::C::ICapeInterface_VTable {
3762 addReference: Some(Self::T::raw_add_reference),
3763 release: Some(Self::T::raw_release),
3764 queryInterface: Some(Self::T::raw_query_interface),
3765 getLastError: Some(Self::T::raw_get_last_error),
3766 },
3767 getValue: Some(Self::T::raw_get_value),
3768 putValue: Some(Self::T::raw_set_value),
3769 GetElementValue: Some(Self::T::raw_get_element_value),
3770 SetElementValue: Some(Self::T::raw_set_element_value),
3771 getDefaultValue: Some(Self::T::raw_get_default_value),
3772 getOptionList: Some(Self::T::raw_get_option_list),
3773 getRestrictedToList: Some(Self::T::raw_get_restricted_to_list),
3774 ValidateElement: Some(Self::T::raw_validate_element),
3775 Validate: Some(Self::T::raw_validate),
3776 };
3777}
3778
3779#[cape_smart_pointer(ICAPEARRAYSTRINGPARAMETER_UUID)]
3780pub struct CapeArrayStringParameter {
3781 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeArrayStringParameter,
3782}
3783
3784impl CapeArrayStringParameter {
3785
3786 pub fn get_value<TypeOfValue:CapeArrayStringProviderOut>(&self,value:&mut TypeOfValue) -> Result<(),COBIAError> {
3787 let result_code = unsafe {
3788 ((*(*self.interface).vTbl).getValue.unwrap())((*self.interface).me,(&value.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
3789 };
3790 match result_code {
3791 COBIAERR_NOERROR => {Ok(())},
3792 _ => Err(COBIAError::from_object(result_code,self))
3793 }
3794 }
3795
3796 pub fn set_value<TypeOfValue:CapeArrayStringProviderIn>(&self,value:&TypeOfValue) -> Result<(),COBIAError> {
3797 let result_code = unsafe {
3798 ((*(*self.interface).vTbl).putValue.unwrap())((*self.interface).me,(&value.as_cape_array_string_in() as *const crate::C::ICapeArrayString).cast_mut())
3799 };
3800 match result_code {
3801 COBIAERR_NOERROR => {Ok(())},
3802 _ => Err(COBIAError::from_object(result_code,self))
3803 }
3804 }
3805
3806 pub fn get_element_value<TypeOfPosition:CapeArrayIntegerProviderIn,TypeOfValue:CapeStringProviderOut>(&self,position:&TypeOfPosition,value:&mut TypeOfValue) -> Result<(),COBIAError> {
3807 let result_code = unsafe {
3808 ((*(*self.interface).vTbl).GetElementValue.unwrap())((*self.interface).me,(&position.as_cape_array_integer_in() as *const crate::C::ICapeArrayInteger).cast_mut(),(&value.as_cape_string_out() as *const crate::C::ICapeString).cast_mut())
3809 };
3810 match result_code {
3811 COBIAERR_NOERROR => {Ok(())},
3812 _ => Err(COBIAError::from_object(result_code,self))
3813 }
3814 }
3815
3816 pub fn set_element_value<TypeOfPosition:CapeArrayIntegerProviderIn,TypeOfValue:CapeStringProviderIn>(&self,position:&TypeOfPosition,value:&TypeOfValue) -> Result<(),COBIAError> {
3817 let result_code = unsafe {
3818 ((*(*self.interface).vTbl).SetElementValue.unwrap())((*self.interface).me,(&position.as_cape_array_integer_in() as *const crate::C::ICapeArrayInteger).cast_mut(),(&value.as_cape_string_in() as *const crate::C::ICapeString).cast_mut())
3819 };
3820 match result_code {
3821 COBIAERR_NOERROR => {Ok(())},
3822 _ => Err(COBIAError::from_object(result_code,self))
3823 }
3824 }
3825
3826 pub fn get_default_value<TypeOfDefaultValue:CapeStringProviderOut>(&self,default_value:&mut TypeOfDefaultValue) -> Result<(),COBIAError> {
3827 let result_code = unsafe {
3828 ((*(*self.interface).vTbl).getDefaultValue.unwrap())((*self.interface).me,(&default_value.as_cape_string_out() as *const crate::C::ICapeString).cast_mut())
3829 };
3830 match result_code {
3831 COBIAERR_NOERROR => {Ok(())},
3832 _ => Err(COBIAError::from_object(result_code,self))
3833 }
3834 }
3835
3836 pub fn get_option_list<TypeOfOptionNames:CapeArrayStringProviderOut>(&self,option_names:&mut TypeOfOptionNames) -> Result<(),COBIAError> {
3837 let result_code = unsafe {
3838 ((*(*self.interface).vTbl).getOptionList.unwrap())((*self.interface).me,(&option_names.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
3839 };
3840 match result_code {
3841 COBIAERR_NOERROR => {Ok(())},
3842 _ => Err(COBIAError::from_object(result_code,self))
3843 }
3844 }
3845
3846 pub fn get_restricted_to_list(&self) -> Result<CapeBoolean,COBIAError> {
3847 let mut restricted:CapeBoolean=false as CapeBoolean;
3848 let result_code = unsafe {
3849 ((*(*self.interface).vTbl).getRestrictedToList.unwrap())((*self.interface).me,&mut restricted as *mut CapeBoolean)
3850 };
3851 match result_code {
3852 COBIAERR_NOERROR => {Ok(restricted)},
3853 _ => Err(COBIAError::from_object(result_code,self))
3854 }
3855 }
3856
3857 pub fn validate_element<TypeOfPosition:CapeArrayIntegerProviderIn,TypeOfValue:CapeStringProviderIn,TypeOfMessage:CapeStringProviderOut>(&self,position:&TypeOfPosition,value:&TypeOfValue,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
3858 let mut is_ok:CapeBoolean=false as CapeBoolean;
3859 let result_code = unsafe {
3860 ((*(*self.interface).vTbl).ValidateElement.unwrap())((*self.interface).me,(&position.as_cape_array_integer_in() as *const crate::C::ICapeArrayInteger).cast_mut(),(&value.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
3861 };
3862 match result_code {
3863 COBIAERR_NOERROR => {Ok(is_ok)},
3864 _ => Err(COBIAError::from_object(result_code,self))
3865 }
3866 }
3867
3868 pub fn validate<TypeOfValue:CapeArrayStringProviderIn,TypeOfMessage:CapeStringProviderOut>(&self,value:&TypeOfValue,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
3869 let mut is_ok:CapeBoolean=false as CapeBoolean;
3870 let result_code = unsafe {
3871 ((*(*self.interface).vTbl).Validate.unwrap())((*self.interface).me,(&value.as_cape_array_string_in() as *const crate::C::ICapeArrayString).cast_mut(),(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
3872 };
3873 match result_code {
3874 COBIAERR_NOERROR => {Ok(is_ok)},
3875 _ => Err(COBIAError::from_object(result_code,self))
3876 }
3877 }
3878
3879}
3880
3881pub trait ICapeArrayBooleanParameter {
3886 fn get_value(&mut self,value:&mut CapeArrayBooleanOut) -> Result<(),COBIAError>;
3887 fn set_value(&mut self,value:&CapeArrayBooleanIn) -> Result<(),COBIAError>;
3888 fn get_element_value(&mut self,position:&CapeArrayIntegerIn) -> Result<CapeBoolean,COBIAError>;
3889 fn set_element_value(&mut self,position:&CapeArrayIntegerIn,value:CapeBoolean) -> Result<(),COBIAError>;
3890 fn get_default_value(&mut self) -> Result<CapeBoolean,COBIAError>;
3891 fn validate_element(&mut self,position:&CapeArrayIntegerIn,value:CapeBoolean,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
3892 fn validate(&mut self,value:&CapeArrayBooleanIn,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
3893}
3894
3895pub trait ICapeArrayBooleanParameterImpl : ICapeArrayBooleanParameter {
3896 type T: ICapeInterfaceImpl+ICapeArrayBooleanParameterImpl;
3897
3898 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
3899
3900 fn init_interface() -> crate::C::ICapeInterface {
3902 crate::C::ICapeInterface {
3903 me: std::ptr::null_mut(),
3904 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeArrayBooleanParameter_VTable).cast_mut()
3905 as *mut crate::C::ICapeInterface_VTable,
3906 }
3907 }
3908
3909 fn init<Timpl: ICapeArrayBooleanParameterImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
3910 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeArrayBooleanParameter =
3911 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeArrayBooleanParameter;
3912 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
3913 u.add_interface(
3914 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeArrayBooleanParameter_UUID),
3915 iface as *mut crate::C::ICapeInterface,
3916 );
3917 }
3918
3919 extern "C" fn raw_get_value(me: *mut std::ffi::c_void,value:*mut crate::C::ICapeArrayBoolean) -> crate::C::CapeResult {
3920 if value.is_null() {
3921 return COBIAERR_NULLPOINTER;
3922 }
3923 let p = me as *mut Self::T;
3924 let myself=unsafe { &mut *p };
3925 if value.is_null() {
3926 return COBIAERR_NULLPOINTER;
3927 }
3928 let mut value=unsafe{*((&value as *const *mut crate::C::ICapeArrayBoolean) as *mut *mut crate::C::ICapeArrayBoolean)};
3929 let mut value=CapeArrayBooleanOut::new(&mut value);
3930 match myself.get_value(&mut value) {
3931 Ok(_) => COBIAERR_NOERROR,
3932 Err(e) => myself.set_last_error(e,"ICapeArrayBooleanParameter::GetValue")
3933 }
3934 }
3935
3936 extern "C" fn raw_set_value(me: *mut std::ffi::c_void,value:*mut crate::C::ICapeArrayBoolean) -> crate::C::CapeResult {
3937 let p = me as *mut Self::T;
3938 let myself=unsafe { &mut *p };
3939 let value=CapeArrayBooleanIn::new(&value);
3940 match myself.set_value(&value) {
3941 Ok(_) => COBIAERR_NOERROR,
3942 Err(e) => myself.set_last_error(e,"ICapeArrayBooleanParameter::SetValue")
3943 }
3944 }
3945
3946 extern "C" fn raw_get_element_value(me: *mut std::ffi::c_void,position:*mut crate::C::ICapeArrayInteger,value:*mut CapeBoolean) -> crate::C::CapeResult {
3947 if value.is_null() {
3948 return COBIAERR_NULLPOINTER;
3949 }
3950 let p = me as *mut Self::T;
3951 let myself=unsafe { &mut *p };
3952 let position=CapeArrayIntegerIn::new(&position);
3953 match myself.get_element_value(&position) {
3954 Ok(_value) => {
3955 unsafe{*value=_value;}
3956 COBIAERR_NOERROR
3957 },
3958 Err(e) => myself.set_last_error(e,"ICapeArrayBooleanParameter::GetElementValue")
3959 }
3960 }
3961
3962 extern "C" fn raw_set_element_value(me: *mut std::ffi::c_void,position:*mut crate::C::ICapeArrayInteger,value:CapeBoolean) -> crate::C::CapeResult {
3963 let p = me as *mut Self::T;
3964 let myself=unsafe { &mut *p };
3965 let position=CapeArrayIntegerIn::new(&position);
3966 match myself.set_element_value(&position,value) {
3967 Ok(_) => COBIAERR_NOERROR,
3968 Err(e) => myself.set_last_error(e,"ICapeArrayBooleanParameter::SetElementValue")
3969 }
3970 }
3971
3972 extern "C" fn raw_get_default_value(me: *mut std::ffi::c_void,default_value:*mut CapeBoolean) -> crate::C::CapeResult {
3973 if default_value.is_null() {
3974 return COBIAERR_NULLPOINTER;
3975 }
3976 let p = me as *mut Self::T;
3977 let myself=unsafe { &mut *p };
3978 match myself.get_default_value() {
3979 Ok(_default_value) => {
3980 unsafe{*default_value=_default_value;}
3981 COBIAERR_NOERROR
3982 },
3983 Err(e) => myself.set_last_error(e,"ICapeArrayBooleanParameter::GetDefaultValue")
3984 }
3985 }
3986
3987 extern "C" fn raw_validate_element(me: *mut std::ffi::c_void,position:*mut crate::C::ICapeArrayInteger,value:CapeBoolean,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
3988 if message.is_null()||is_ok.is_null() {
3989 return COBIAERR_NULLPOINTER;
3990 }
3991 let p = me as *mut Self::T;
3992 let myself=unsafe { &mut *p };
3993 if message.is_null() {
3994 return COBIAERR_NULLPOINTER;
3995 }
3996 let position=CapeArrayIntegerIn::new(&position);
3997 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
3998 let mut message=CapeStringOut::new(&mut message);
3999 match myself.validate_element(&position,value,&mut message) {
4000 Ok(_is_ok) => {
4001 unsafe{*is_ok=_is_ok;}
4002 COBIAERR_NOERROR
4003 },
4004 Err(e) => myself.set_last_error(e,"ICapeArrayBooleanParameter::ValidateElement")
4005 }
4006 }
4007
4008 extern "C" fn raw_validate(me: *mut std::ffi::c_void,value:*mut crate::C::ICapeArrayBoolean,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
4009 if message.is_null()||is_ok.is_null() {
4010 return COBIAERR_NULLPOINTER;
4011 }
4012 let p = me as *mut Self::T;
4013 let myself=unsafe { &mut *p };
4014 if message.is_null() {
4015 return COBIAERR_NULLPOINTER;
4016 }
4017 let value=CapeArrayBooleanIn::new(&value);
4018 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
4019 let mut message=CapeStringOut::new(&mut message);
4020 match myself.validate(&value,&mut message) {
4021 Ok(_is_ok) => {
4022 unsafe{*is_ok=_is_ok;}
4023 COBIAERR_NOERROR
4024 },
4025 Err(e) => myself.set_last_error(e,"ICapeArrayBooleanParameter::Validate")
4026 }
4027 }
4028
4029 const VTABLE: C::CAPEOPEN_1_2_ICapeArrayBooleanParameter_VTable =
4030 C::CAPEOPEN_1_2_ICapeArrayBooleanParameter_VTable {
4031 base: crate::C::ICapeInterface_VTable {
4032 addReference: Some(Self::T::raw_add_reference),
4033 release: Some(Self::T::raw_release),
4034 queryInterface: Some(Self::T::raw_query_interface),
4035 getLastError: Some(Self::T::raw_get_last_error),
4036 },
4037 getValue: Some(Self::T::raw_get_value),
4038 putValue: Some(Self::T::raw_set_value),
4039 GetElementValue: Some(Self::T::raw_get_element_value),
4040 SetElementValue: Some(Self::T::raw_set_element_value),
4041 getDefaultValue: Some(Self::T::raw_get_default_value),
4042 ValidateElement: Some(Self::T::raw_validate_element),
4043 Validate: Some(Self::T::raw_validate),
4044 };
4045}
4046
4047#[cape_smart_pointer(ICAPEARRAYBOOLEANPARAMETER_UUID)]
4048pub struct CapeArrayBooleanParameter {
4049 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeArrayBooleanParameter,
4050}
4051
4052impl CapeArrayBooleanParameter {
4053
4054 pub fn get_value<TypeOfValue:CapeArrayBooleanProviderOut>(&self,value:&mut TypeOfValue) -> Result<(),COBIAError> {
4055 let result_code = unsafe {
4056 ((*(*self.interface).vTbl).getValue.unwrap())((*self.interface).me,(&value.as_cape_array_boolean_out() as *const crate::C::ICapeArrayBoolean).cast_mut())
4057 };
4058 match result_code {
4059 COBIAERR_NOERROR => {Ok(())},
4060 _ => Err(COBIAError::from_object(result_code,self))
4061 }
4062 }
4063
4064 pub fn set_value<TypeOfValue:CapeArrayBooleanProviderIn>(&self,value:&TypeOfValue) -> Result<(),COBIAError> {
4065 let result_code = unsafe {
4066 ((*(*self.interface).vTbl).putValue.unwrap())((*self.interface).me,(&value.as_cape_array_boolean_in() as *const crate::C::ICapeArrayBoolean).cast_mut())
4067 };
4068 match result_code {
4069 COBIAERR_NOERROR => {Ok(())},
4070 _ => Err(COBIAError::from_object(result_code,self))
4071 }
4072 }
4073
4074 pub fn get_element_value<TypeOfPosition:CapeArrayIntegerProviderIn>(&self,position:&TypeOfPosition) -> Result<CapeBoolean,COBIAError> {
4075 let mut value:CapeBoolean=false as CapeBoolean;
4076 let result_code = unsafe {
4077 ((*(*self.interface).vTbl).GetElementValue.unwrap())((*self.interface).me,(&position.as_cape_array_integer_in() as *const crate::C::ICapeArrayInteger).cast_mut(),&mut value as *mut CapeBoolean)
4078 };
4079 match result_code {
4080 COBIAERR_NOERROR => {Ok(value)},
4081 _ => Err(COBIAError::from_object(result_code,self))
4082 }
4083 }
4084
4085 pub fn set_element_value<TypeOfPosition:CapeArrayIntegerProviderIn>(&self,position:&TypeOfPosition,value:CapeBoolean) -> Result<(),COBIAError> {
4086 let result_code = unsafe {
4087 ((*(*self.interface).vTbl).SetElementValue.unwrap())((*self.interface).me,(&position.as_cape_array_integer_in() as *const crate::C::ICapeArrayInteger).cast_mut(),value)
4088 };
4089 match result_code {
4090 COBIAERR_NOERROR => {Ok(())},
4091 _ => Err(COBIAError::from_object(result_code,self))
4092 }
4093 }
4094
4095 pub fn get_default_value(&self) -> Result<CapeBoolean,COBIAError> {
4096 let mut default_value:CapeBoolean=false as CapeBoolean;
4097 let result_code = unsafe {
4098 ((*(*self.interface).vTbl).getDefaultValue.unwrap())((*self.interface).me,&mut default_value as *mut CapeBoolean)
4099 };
4100 match result_code {
4101 COBIAERR_NOERROR => {Ok(default_value)},
4102 _ => Err(COBIAError::from_object(result_code,self))
4103 }
4104 }
4105
4106 pub fn validate_element<TypeOfPosition:CapeArrayIntegerProviderIn,TypeOfMessage:CapeStringProviderOut>(&self,position:&TypeOfPosition,value:CapeBoolean,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
4107 let mut is_ok:CapeBoolean=false as CapeBoolean;
4108 let result_code = unsafe {
4109 ((*(*self.interface).vTbl).ValidateElement.unwrap())((*self.interface).me,(&position.as_cape_array_integer_in() as *const crate::C::ICapeArrayInteger).cast_mut(),value,(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
4110 };
4111 match result_code {
4112 COBIAERR_NOERROR => {Ok(is_ok)},
4113 _ => Err(COBIAError::from_object(result_code,self))
4114 }
4115 }
4116
4117 pub fn validate<TypeOfValue:CapeArrayBooleanProviderIn,TypeOfMessage:CapeStringProviderOut>(&self,value:&TypeOfValue,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
4118 let mut is_ok:CapeBoolean=false as CapeBoolean;
4119 let result_code = unsafe {
4120 ((*(*self.interface).vTbl).Validate.unwrap())((*self.interface).me,(&value.as_cape_array_boolean_in() as *const crate::C::ICapeArrayBoolean).cast_mut(),(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
4121 };
4122 match result_code {
4123 COBIAERR_NOERROR => {Ok(is_ok)},
4124 _ => Err(COBIAError::from_object(result_code,self))
4125 }
4126 }
4127
4128}
4129
4130pub trait ICapeParameterSpecification {
4135 fn get_type(&mut self) -> Result<CapeParamType,COBIAError>;
4136}
4137
4138pub trait ICapeParameterSpecificationImpl : ICapeParameterSpecification {
4139 type T: ICapeInterfaceImpl+ICapeParameterSpecificationImpl;
4140
4141 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
4142
4143 fn init_interface() -> crate::C::ICapeInterface {
4145 crate::C::ICapeInterface {
4146 me: std::ptr::null_mut(),
4147 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeParameterSpecification_VTable).cast_mut()
4148 as *mut crate::C::ICapeInterface_VTable,
4149 }
4150 }
4151
4152 fn init<Timpl: ICapeParameterSpecificationImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
4153 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeParameterSpecification =
4154 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeParameterSpecification;
4155 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
4156 u.add_interface(
4157 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeParameterSpecification_UUID),
4158 iface as *mut crate::C::ICapeInterface,
4159 );
4160 }
4161
4162 extern "C" fn raw_get_type(me: *mut std::ffi::c_void,parameter_type:*mut C::CAPEOPEN_1_2_CapeParamType) -> crate::C::CapeResult {
4163 if parameter_type.is_null() {
4164 return COBIAERR_NULLPOINTER;
4165 }
4166 let p = me as *mut Self::T;
4167 let myself=unsafe { &mut *p };
4168 match myself.get_type() {
4169 Ok(_parameter_type) => {
4170 unsafe{*parameter_type=_parameter_type as C::CAPEOPEN_1_2_CapeParamType;}
4171 COBIAERR_NOERROR
4172 },
4173 Err(e) => myself.set_last_error(e,"ICapeParameterSpecification::GetType")
4174 }
4175 }
4176
4177 const VTABLE: C::CAPEOPEN_1_2_ICapeParameterSpecification_VTable =
4178 C::CAPEOPEN_1_2_ICapeParameterSpecification_VTable {
4179 base: crate::C::ICapeInterface_VTable {
4180 addReference: Some(Self::T::raw_add_reference),
4181 release: Some(Self::T::raw_release),
4182 queryInterface: Some(Self::T::raw_query_interface),
4183 getLastError: Some(Self::T::raw_get_last_error),
4184 },
4185 getType: Some(Self::T::raw_get_type),
4186 };
4187}
4188
4189#[cape_smart_pointer(ICAPEPARAMETERSPECIFICATION_UUID)]
4190pub struct CapeParameterSpecification {
4191 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeParameterSpecification,
4192}
4193
4194impl CapeParameterSpecification {
4195
4196 pub fn get_type(&self) -> Result<CapeParamType,COBIAError> {
4197 let mut parameter_type:C::CAPEOPEN_1_2_CapeParamType=0;
4198 let result_code = unsafe {
4199 ((*(*self.interface).vTbl).getType.unwrap())((*self.interface).me,&mut parameter_type as *mut C::CAPEOPEN_1_2_CapeParamType)
4200 };
4201 let parameter_type=match CapeParamType::from(parameter_type) {
4202 Some(_parameter_type) => _parameter_type,
4203 None => {return Err(COBIAError::Message("Invalid enumeration value".to_string()));}
4204 };
4205 match result_code {
4206 COBIAERR_NOERROR => {Ok(parameter_type)},
4207 _ => Err(COBIAError::from_object(result_code,self))
4208 }
4209 }
4210
4211}
4212
4213pub trait ICapeRealParameterSpecification {
4218 fn get_default_value(&mut self) -> Result<CapeReal,COBIAError>;
4219 fn get_lower_bound(&mut self) -> Result<CapeReal,COBIAError>;
4220 fn get_upper_bound(&mut self) -> Result<CapeReal,COBIAError>;
4221 fn get_dimensionality(&mut self,dimensionality:&mut CapeArrayRealOut) -> Result<(),COBIAError>;
4222 fn validate(&mut self,value:CapeReal,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
4223}
4224
4225pub trait ICapeRealParameterSpecificationImpl : ICapeRealParameterSpecification {
4226 type T: ICapeInterfaceImpl+ICapeRealParameterSpecificationImpl;
4227
4228 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
4229
4230 fn init_interface() -> crate::C::ICapeInterface {
4232 crate::C::ICapeInterface {
4233 me: std::ptr::null_mut(),
4234 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeRealParameterSpecification_VTable).cast_mut()
4235 as *mut crate::C::ICapeInterface_VTable,
4236 }
4237 }
4238
4239 fn init<Timpl: ICapeRealParameterSpecificationImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
4240 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeRealParameterSpecification =
4241 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeRealParameterSpecification;
4242 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
4243 u.add_interface(
4244 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeRealParameterSpecification_UUID),
4245 iface as *mut crate::C::ICapeInterface,
4246 );
4247 }
4248
4249 extern "C" fn raw_get_default_value(me: *mut std::ffi::c_void,default_value:*mut CapeReal) -> crate::C::CapeResult {
4250 if default_value.is_null() {
4251 return COBIAERR_NULLPOINTER;
4252 }
4253 let p = me as *mut Self::T;
4254 let myself=unsafe { &mut *p };
4255 match myself.get_default_value() {
4256 Ok(_default_value) => {
4257 unsafe{*default_value=_default_value;}
4258 COBIAERR_NOERROR
4259 },
4260 Err(e) => myself.set_last_error(e,"ICapeRealParameterSpecification::GetDefaultValue")
4261 }
4262 }
4263
4264 extern "C" fn raw_get_lower_bound(me: *mut std::ffi::c_void,l_bound:*mut CapeReal) -> crate::C::CapeResult {
4265 if l_bound.is_null() {
4266 return COBIAERR_NULLPOINTER;
4267 }
4268 let p = me as *mut Self::T;
4269 let myself=unsafe { &mut *p };
4270 match myself.get_lower_bound() {
4271 Ok(_l_bound) => {
4272 unsafe{*l_bound=_l_bound;}
4273 COBIAERR_NOERROR
4274 },
4275 Err(e) => myself.set_last_error(e,"ICapeRealParameterSpecification::GetLowerBound")
4276 }
4277 }
4278
4279 extern "C" fn raw_get_upper_bound(me: *mut std::ffi::c_void,u_bound:*mut CapeReal) -> crate::C::CapeResult {
4280 if u_bound.is_null() {
4281 return COBIAERR_NULLPOINTER;
4282 }
4283 let p = me as *mut Self::T;
4284 let myself=unsafe { &mut *p };
4285 match myself.get_upper_bound() {
4286 Ok(_u_bound) => {
4287 unsafe{*u_bound=_u_bound;}
4288 COBIAERR_NOERROR
4289 },
4290 Err(e) => myself.set_last_error(e,"ICapeRealParameterSpecification::GetUpperBound")
4291 }
4292 }
4293
4294 extern "C" fn raw_get_dimensionality(me: *mut std::ffi::c_void,dimensionality:*mut crate::C::ICapeArrayReal) -> crate::C::CapeResult {
4295 if dimensionality.is_null() {
4296 return COBIAERR_NULLPOINTER;
4297 }
4298 let p = me as *mut Self::T;
4299 let myself=unsafe { &mut *p };
4300 if dimensionality.is_null() {
4301 return COBIAERR_NULLPOINTER;
4302 }
4303 let mut dimensionality=unsafe{*((&dimensionality as *const *mut crate::C::ICapeArrayReal) as *mut *mut crate::C::ICapeArrayReal)};
4304 let mut dimensionality=CapeArrayRealOut::new(&mut dimensionality);
4305 match myself.get_dimensionality(&mut dimensionality) {
4306 Ok(_) => COBIAERR_NOERROR,
4307 Err(e) => myself.set_last_error(e,"ICapeRealParameterSpecification::GetDimensionality")
4308 }
4309 }
4310
4311 extern "C" fn raw_validate(me: *mut std::ffi::c_void,value:CapeReal,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
4312 if message.is_null()||is_ok.is_null() {
4313 return COBIAERR_NULLPOINTER;
4314 }
4315 let p = me as *mut Self::T;
4316 let myself=unsafe { &mut *p };
4317 if message.is_null() {
4318 return COBIAERR_NULLPOINTER;
4319 }
4320 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
4321 let mut message=CapeStringOut::new(&mut message);
4322 match myself.validate(value,&mut message) {
4323 Ok(_is_ok) => {
4324 unsafe{*is_ok=_is_ok;}
4325 COBIAERR_NOERROR
4326 },
4327 Err(e) => myself.set_last_error(e,"ICapeRealParameterSpecification::Validate")
4328 }
4329 }
4330
4331 const VTABLE: C::CAPEOPEN_1_2_ICapeRealParameterSpecification_VTable =
4332 C::CAPEOPEN_1_2_ICapeRealParameterSpecification_VTable {
4333 base: crate::C::ICapeInterface_VTable {
4334 addReference: Some(Self::T::raw_add_reference),
4335 release: Some(Self::T::raw_release),
4336 queryInterface: Some(Self::T::raw_query_interface),
4337 getLastError: Some(Self::T::raw_get_last_error),
4338 },
4339 getDefaultValue: Some(Self::T::raw_get_default_value),
4340 getLowerBound: Some(Self::T::raw_get_lower_bound),
4341 getUpperBound: Some(Self::T::raw_get_upper_bound),
4342 getDimensionality: Some(Self::T::raw_get_dimensionality),
4343 Validate: Some(Self::T::raw_validate),
4344 };
4345}
4346
4347#[cape_smart_pointer(ICAPEREALPARAMETERSPECIFICATION_UUID)]
4348pub struct CapeRealParameterSpecification {
4349 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeRealParameterSpecification,
4350}
4351
4352impl CapeRealParameterSpecification {
4353
4354 pub fn get_default_value(&self) -> Result<CapeReal,COBIAError> {
4355 let mut default_value:CapeReal=0.0;
4356 let result_code = unsafe {
4357 ((*(*self.interface).vTbl).getDefaultValue.unwrap())((*self.interface).me,&mut default_value as *mut CapeReal)
4358 };
4359 match result_code {
4360 COBIAERR_NOERROR => {Ok(default_value)},
4361 _ => Err(COBIAError::from_object(result_code,self))
4362 }
4363 }
4364
4365 pub fn get_lower_bound(&self) -> Result<CapeReal,COBIAError> {
4366 let mut l_bound:CapeReal=0.0;
4367 let result_code = unsafe {
4368 ((*(*self.interface).vTbl).getLowerBound.unwrap())((*self.interface).me,&mut l_bound as *mut CapeReal)
4369 };
4370 match result_code {
4371 COBIAERR_NOERROR => {Ok(l_bound)},
4372 _ => Err(COBIAError::from_object(result_code,self))
4373 }
4374 }
4375
4376 pub fn get_upper_bound(&self) -> Result<CapeReal,COBIAError> {
4377 let mut u_bound:CapeReal=0.0;
4378 let result_code = unsafe {
4379 ((*(*self.interface).vTbl).getUpperBound.unwrap())((*self.interface).me,&mut u_bound as *mut CapeReal)
4380 };
4381 match result_code {
4382 COBIAERR_NOERROR => {Ok(u_bound)},
4383 _ => Err(COBIAError::from_object(result_code,self))
4384 }
4385 }
4386
4387 pub fn get_dimensionality<TypeOfDimensionality:CapeArrayRealProviderOut>(&self,dimensionality:&mut TypeOfDimensionality) -> Result<(),COBIAError> {
4388 let result_code = unsafe {
4389 ((*(*self.interface).vTbl).getDimensionality.unwrap())((*self.interface).me,(&dimensionality.as_cape_array_real_out() as *const crate::C::ICapeArrayReal).cast_mut())
4390 };
4391 match result_code {
4392 COBIAERR_NOERROR => {Ok(())},
4393 _ => Err(COBIAError::from_object(result_code,self))
4394 }
4395 }
4396
4397 pub fn validate<TypeOfMessage:CapeStringProviderOut>(&self,value:CapeReal,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
4398 let mut is_ok:CapeBoolean=false as CapeBoolean;
4399 let result_code = unsafe {
4400 ((*(*self.interface).vTbl).Validate.unwrap())((*self.interface).me,value,(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
4401 };
4402 match result_code {
4403 COBIAERR_NOERROR => {Ok(is_ok)},
4404 _ => Err(COBIAError::from_object(result_code,self))
4405 }
4406 }
4407
4408}
4409
4410pub trait ICapeIntegerParameterSpecification {
4415 fn get_default_value(&mut self) -> Result<CapeInteger,COBIAError>;
4416 fn get_lower_bound(&mut self) -> Result<CapeInteger,COBIAError>;
4417 fn get_upper_bound(&mut self) -> Result<CapeInteger,COBIAError>;
4418 fn validate(&mut self,value:CapeInteger,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
4419}
4420
4421pub trait ICapeIntegerParameterSpecificationImpl : ICapeIntegerParameterSpecification {
4422 type T: ICapeInterfaceImpl+ICapeIntegerParameterSpecificationImpl;
4423
4424 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
4425
4426 fn init_interface() -> crate::C::ICapeInterface {
4428 crate::C::ICapeInterface {
4429 me: std::ptr::null_mut(),
4430 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeIntegerParameterSpecification_VTable).cast_mut()
4431 as *mut crate::C::ICapeInterface_VTable,
4432 }
4433 }
4434
4435 fn init<Timpl: ICapeIntegerParameterSpecificationImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
4436 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeIntegerParameterSpecification =
4437 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeIntegerParameterSpecification;
4438 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
4439 u.add_interface(
4440 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeIntegerParameterSpecification_UUID),
4441 iface as *mut crate::C::ICapeInterface,
4442 );
4443 }
4444
4445 extern "C" fn raw_get_default_value(me: *mut std::ffi::c_void,default_value:*mut CapeInteger) -> crate::C::CapeResult {
4446 if default_value.is_null() {
4447 return COBIAERR_NULLPOINTER;
4448 }
4449 let p = me as *mut Self::T;
4450 let myself=unsafe { &mut *p };
4451 match myself.get_default_value() {
4452 Ok(_default_value) => {
4453 unsafe{*default_value=_default_value;}
4454 COBIAERR_NOERROR
4455 },
4456 Err(e) => myself.set_last_error(e,"ICapeIntegerParameterSpecification::GetDefaultValue")
4457 }
4458 }
4459
4460 extern "C" fn raw_get_lower_bound(me: *mut std::ffi::c_void,l_bound:*mut CapeInteger) -> crate::C::CapeResult {
4461 if l_bound.is_null() {
4462 return COBIAERR_NULLPOINTER;
4463 }
4464 let p = me as *mut Self::T;
4465 let myself=unsafe { &mut *p };
4466 match myself.get_lower_bound() {
4467 Ok(_l_bound) => {
4468 unsafe{*l_bound=_l_bound;}
4469 COBIAERR_NOERROR
4470 },
4471 Err(e) => myself.set_last_error(e,"ICapeIntegerParameterSpecification::GetLowerBound")
4472 }
4473 }
4474
4475 extern "C" fn raw_get_upper_bound(me: *mut std::ffi::c_void,u_bound:*mut CapeInteger) -> crate::C::CapeResult {
4476 if u_bound.is_null() {
4477 return COBIAERR_NULLPOINTER;
4478 }
4479 let p = me as *mut Self::T;
4480 let myself=unsafe { &mut *p };
4481 match myself.get_upper_bound() {
4482 Ok(_u_bound) => {
4483 unsafe{*u_bound=_u_bound;}
4484 COBIAERR_NOERROR
4485 },
4486 Err(e) => myself.set_last_error(e,"ICapeIntegerParameterSpecification::GetUpperBound")
4487 }
4488 }
4489
4490 extern "C" fn raw_validate(me: *mut std::ffi::c_void,value:CapeInteger,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
4491 if message.is_null()||is_ok.is_null() {
4492 return COBIAERR_NULLPOINTER;
4493 }
4494 let p = me as *mut Self::T;
4495 let myself=unsafe { &mut *p };
4496 if message.is_null() {
4497 return COBIAERR_NULLPOINTER;
4498 }
4499 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
4500 let mut message=CapeStringOut::new(&mut message);
4501 match myself.validate(value,&mut message) {
4502 Ok(_is_ok) => {
4503 unsafe{*is_ok=_is_ok;}
4504 COBIAERR_NOERROR
4505 },
4506 Err(e) => myself.set_last_error(e,"ICapeIntegerParameterSpecification::Validate")
4507 }
4508 }
4509
4510 const VTABLE: C::CAPEOPEN_1_2_ICapeIntegerParameterSpecification_VTable =
4511 C::CAPEOPEN_1_2_ICapeIntegerParameterSpecification_VTable {
4512 base: crate::C::ICapeInterface_VTable {
4513 addReference: Some(Self::T::raw_add_reference),
4514 release: Some(Self::T::raw_release),
4515 queryInterface: Some(Self::T::raw_query_interface),
4516 getLastError: Some(Self::T::raw_get_last_error),
4517 },
4518 getDefaultValue: Some(Self::T::raw_get_default_value),
4519 getLowerBound: Some(Self::T::raw_get_lower_bound),
4520 getUpperBound: Some(Self::T::raw_get_upper_bound),
4521 Validate: Some(Self::T::raw_validate),
4522 };
4523}
4524
4525#[cape_smart_pointer(ICAPEINTEGERPARAMETERSPECIFICATION_UUID)]
4526pub struct CapeIntegerParameterSpecification {
4527 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeIntegerParameterSpecification,
4528}
4529
4530impl CapeIntegerParameterSpecification {
4531
4532 pub fn get_default_value(&self) -> Result<CapeInteger,COBIAError> {
4533 let mut default_value:CapeInteger=0;
4534 let result_code = unsafe {
4535 ((*(*self.interface).vTbl).getDefaultValue.unwrap())((*self.interface).me,&mut default_value as *mut CapeInteger)
4536 };
4537 match result_code {
4538 COBIAERR_NOERROR => {Ok(default_value)},
4539 _ => Err(COBIAError::from_object(result_code,self))
4540 }
4541 }
4542
4543 pub fn get_lower_bound(&self) -> Result<CapeInteger,COBIAError> {
4544 let mut l_bound:CapeInteger=0;
4545 let result_code = unsafe {
4546 ((*(*self.interface).vTbl).getLowerBound.unwrap())((*self.interface).me,&mut l_bound as *mut CapeInteger)
4547 };
4548 match result_code {
4549 COBIAERR_NOERROR => {Ok(l_bound)},
4550 _ => Err(COBIAError::from_object(result_code,self))
4551 }
4552 }
4553
4554 pub fn get_upper_bound(&self) -> Result<CapeInteger,COBIAError> {
4555 let mut u_bound:CapeInteger=0;
4556 let result_code = unsafe {
4557 ((*(*self.interface).vTbl).getUpperBound.unwrap())((*self.interface).me,&mut u_bound as *mut CapeInteger)
4558 };
4559 match result_code {
4560 COBIAERR_NOERROR => {Ok(u_bound)},
4561 _ => Err(COBIAError::from_object(result_code,self))
4562 }
4563 }
4564
4565 pub fn validate<TypeOfMessage:CapeStringProviderOut>(&self,value:CapeInteger,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
4566 let mut is_ok:CapeBoolean=false as CapeBoolean;
4567 let result_code = unsafe {
4568 ((*(*self.interface).vTbl).Validate.unwrap())((*self.interface).me,value,(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
4569 };
4570 match result_code {
4571 COBIAERR_NOERROR => {Ok(is_ok)},
4572 _ => Err(COBIAError::from_object(result_code,self))
4573 }
4574 }
4575
4576}
4577
4578pub trait ICapeStringParameterSpecification {
4583 fn get_default_value(&mut self,default_value:&mut CapeStringOut) -> Result<(),COBIAError>;
4584 fn get_option_list(&mut self,option_names:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
4585 fn get_restricted_to_list(&mut self) -> Result<CapeBoolean,COBIAError>;
4586 fn validate(&mut self,value:&CapeStringIn,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
4587}
4588
4589pub trait ICapeStringParameterSpecificationImpl : ICapeStringParameterSpecification {
4590 type T: ICapeInterfaceImpl+ICapeStringParameterSpecificationImpl;
4591
4592 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
4593
4594 fn init_interface() -> crate::C::ICapeInterface {
4596 crate::C::ICapeInterface {
4597 me: std::ptr::null_mut(),
4598 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeStringParameterSpecification_VTable).cast_mut()
4599 as *mut crate::C::ICapeInterface_VTable,
4600 }
4601 }
4602
4603 fn init<Timpl: ICapeStringParameterSpecificationImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
4604 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeStringParameterSpecification =
4605 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeStringParameterSpecification;
4606 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
4607 u.add_interface(
4608 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeStringParameterSpecification_UUID),
4609 iface as *mut crate::C::ICapeInterface,
4610 );
4611 }
4612
4613 extern "C" fn raw_get_default_value(me: *mut std::ffi::c_void,default_value:*mut crate::C::ICapeString) -> crate::C::CapeResult {
4614 if default_value.is_null() {
4615 return COBIAERR_NULLPOINTER;
4616 }
4617 let p = me as *mut Self::T;
4618 let myself=unsafe { &mut *p };
4619 if default_value.is_null() {
4620 return COBIAERR_NULLPOINTER;
4621 }
4622 let mut default_value=unsafe{*((&default_value as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
4623 let mut default_value=CapeStringOut::new(&mut default_value);
4624 match myself.get_default_value(&mut default_value) {
4625 Ok(_) => COBIAERR_NOERROR,
4626 Err(e) => myself.set_last_error(e,"ICapeStringParameterSpecification::GetDefaultValue")
4627 }
4628 }
4629
4630 extern "C" fn raw_get_option_list(me: *mut std::ffi::c_void,option_names:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
4631 if option_names.is_null() {
4632 return COBIAERR_NULLPOINTER;
4633 }
4634 let p = me as *mut Self::T;
4635 let myself=unsafe { &mut *p };
4636 if option_names.is_null() {
4637 return COBIAERR_NULLPOINTER;
4638 }
4639 let mut option_names=unsafe{*((&option_names as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
4640 let mut option_names=CapeArrayStringOut::new(&mut option_names);
4641 match myself.get_option_list(&mut option_names) {
4642 Ok(_) => COBIAERR_NOERROR,
4643 Err(e) => myself.set_last_error(e,"ICapeStringParameterSpecification::GetOptionList")
4644 }
4645 }
4646
4647 extern "C" fn raw_get_restricted_to_list(me: *mut std::ffi::c_void,restricted:*mut CapeBoolean) -> crate::C::CapeResult {
4648 if restricted.is_null() {
4649 return COBIAERR_NULLPOINTER;
4650 }
4651 let p = me as *mut Self::T;
4652 let myself=unsafe { &mut *p };
4653 match myself.get_restricted_to_list() {
4654 Ok(_restricted) => {
4655 unsafe{*restricted=_restricted;}
4656 COBIAERR_NOERROR
4657 },
4658 Err(e) => myself.set_last_error(e,"ICapeStringParameterSpecification::GetRestrictedToList")
4659 }
4660 }
4661
4662 extern "C" fn raw_validate(me: *mut std::ffi::c_void,value:*mut crate::C::ICapeString,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
4663 if message.is_null()||is_ok.is_null() {
4664 return COBIAERR_NULLPOINTER;
4665 }
4666 let p = me as *mut Self::T;
4667 let myself=unsafe { &mut *p };
4668 if message.is_null() {
4669 return COBIAERR_NULLPOINTER;
4670 }
4671 let value=CapeStringIn::new(&value);
4672 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
4673 let mut message=CapeStringOut::new(&mut message);
4674 match myself.validate(&value,&mut message) {
4675 Ok(_is_ok) => {
4676 unsafe{*is_ok=_is_ok;}
4677 COBIAERR_NOERROR
4678 },
4679 Err(e) => myself.set_last_error(e,"ICapeStringParameterSpecification::Validate")
4680 }
4681 }
4682
4683 const VTABLE: C::CAPEOPEN_1_2_ICapeStringParameterSpecification_VTable =
4684 C::CAPEOPEN_1_2_ICapeStringParameterSpecification_VTable {
4685 base: crate::C::ICapeInterface_VTable {
4686 addReference: Some(Self::T::raw_add_reference),
4687 release: Some(Self::T::raw_release),
4688 queryInterface: Some(Self::T::raw_query_interface),
4689 getLastError: Some(Self::T::raw_get_last_error),
4690 },
4691 getDefaultValue: Some(Self::T::raw_get_default_value),
4692 getOptionList: Some(Self::T::raw_get_option_list),
4693 getRestrictedToList: Some(Self::T::raw_get_restricted_to_list),
4694 Validate: Some(Self::T::raw_validate),
4695 };
4696}
4697
4698#[cape_smart_pointer(ICAPESTRINGPARAMETERSPECIFICATION_UUID)]
4699pub struct CapeStringParameterSpecification {
4700 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeStringParameterSpecification,
4701}
4702
4703impl CapeStringParameterSpecification {
4704
4705 pub fn get_default_value<TypeOfDefaultValue:CapeStringProviderOut>(&self,default_value:&mut TypeOfDefaultValue) -> Result<(),COBIAError> {
4706 let result_code = unsafe {
4707 ((*(*self.interface).vTbl).getDefaultValue.unwrap())((*self.interface).me,(&default_value.as_cape_string_out() as *const crate::C::ICapeString).cast_mut())
4708 };
4709 match result_code {
4710 COBIAERR_NOERROR => {Ok(())},
4711 _ => Err(COBIAError::from_object(result_code,self))
4712 }
4713 }
4714
4715 pub fn get_option_list<TypeOfOptionNames:CapeArrayStringProviderOut>(&self,option_names:&mut TypeOfOptionNames) -> Result<(),COBIAError> {
4716 let result_code = unsafe {
4717 ((*(*self.interface).vTbl).getOptionList.unwrap())((*self.interface).me,(&option_names.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
4718 };
4719 match result_code {
4720 COBIAERR_NOERROR => {Ok(())},
4721 _ => Err(COBIAError::from_object(result_code,self))
4722 }
4723 }
4724
4725 pub fn get_restricted_to_list(&self) -> Result<CapeBoolean,COBIAError> {
4726 let mut restricted:CapeBoolean=false as CapeBoolean;
4727 let result_code = unsafe {
4728 ((*(*self.interface).vTbl).getRestrictedToList.unwrap())((*self.interface).me,&mut restricted as *mut CapeBoolean)
4729 };
4730 match result_code {
4731 COBIAERR_NOERROR => {Ok(restricted)},
4732 _ => Err(COBIAError::from_object(result_code,self))
4733 }
4734 }
4735
4736 pub fn validate<TypeOfValue:CapeStringProviderIn,TypeOfMessage:CapeStringProviderOut>(&self,value:&TypeOfValue,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
4737 let mut is_ok:CapeBoolean=false as CapeBoolean;
4738 let result_code = unsafe {
4739 ((*(*self.interface).vTbl).Validate.unwrap())((*self.interface).me,(&value.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
4740 };
4741 match result_code {
4742 COBIAERR_NOERROR => {Ok(is_ok)},
4743 _ => Err(COBIAError::from_object(result_code,self))
4744 }
4745 }
4746
4747}
4748
4749pub trait ICapeBooleanParameterSpecification {
4754 fn get_default_value(&mut self) -> Result<CapeBoolean,COBIAError>;
4755 fn validate(&mut self,value:CapeBoolean,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
4756}
4757
4758pub trait ICapeBooleanParameterSpecificationImpl : ICapeBooleanParameterSpecification {
4759 type T: ICapeInterfaceImpl+ICapeBooleanParameterSpecificationImpl;
4760
4761 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
4762
4763 fn init_interface() -> crate::C::ICapeInterface {
4765 crate::C::ICapeInterface {
4766 me: std::ptr::null_mut(),
4767 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeBooleanParameterSpecification_VTable).cast_mut()
4768 as *mut crate::C::ICapeInterface_VTable,
4769 }
4770 }
4771
4772 fn init<Timpl: ICapeBooleanParameterSpecificationImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
4773 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeBooleanParameterSpecification =
4774 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeBooleanParameterSpecification;
4775 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
4776 u.add_interface(
4777 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeBooleanParameterSpecification_UUID),
4778 iface as *mut crate::C::ICapeInterface,
4779 );
4780 }
4781
4782 extern "C" fn raw_get_default_value(me: *mut std::ffi::c_void,default_value:*mut CapeBoolean) -> crate::C::CapeResult {
4783 if default_value.is_null() {
4784 return COBIAERR_NULLPOINTER;
4785 }
4786 let p = me as *mut Self::T;
4787 let myself=unsafe { &mut *p };
4788 match myself.get_default_value() {
4789 Ok(_default_value) => {
4790 unsafe{*default_value=_default_value;}
4791 COBIAERR_NOERROR
4792 },
4793 Err(e) => myself.set_last_error(e,"ICapeBooleanParameterSpecification::GetDefaultValue")
4794 }
4795 }
4796
4797 extern "C" fn raw_validate(me: *mut std::ffi::c_void,value:CapeBoolean,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
4798 if message.is_null()||is_ok.is_null() {
4799 return COBIAERR_NULLPOINTER;
4800 }
4801 let p = me as *mut Self::T;
4802 let myself=unsafe { &mut *p };
4803 if message.is_null() {
4804 return COBIAERR_NULLPOINTER;
4805 }
4806 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
4807 let mut message=CapeStringOut::new(&mut message);
4808 match myself.validate(value,&mut message) {
4809 Ok(_is_ok) => {
4810 unsafe{*is_ok=_is_ok;}
4811 COBIAERR_NOERROR
4812 },
4813 Err(e) => myself.set_last_error(e,"ICapeBooleanParameterSpecification::Validate")
4814 }
4815 }
4816
4817 const VTABLE: C::CAPEOPEN_1_2_ICapeBooleanParameterSpecification_VTable =
4818 C::CAPEOPEN_1_2_ICapeBooleanParameterSpecification_VTable {
4819 base: crate::C::ICapeInterface_VTable {
4820 addReference: Some(Self::T::raw_add_reference),
4821 release: Some(Self::T::raw_release),
4822 queryInterface: Some(Self::T::raw_query_interface),
4823 getLastError: Some(Self::T::raw_get_last_error),
4824 },
4825 getDefaultValue: Some(Self::T::raw_get_default_value),
4826 Validate: Some(Self::T::raw_validate),
4827 };
4828}
4829
4830#[cape_smart_pointer(ICAPEBOOLEANPARAMETERSPECIFICATION_UUID)]
4831pub struct CapeBooleanParameterSpecification {
4832 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeBooleanParameterSpecification,
4833}
4834
4835impl CapeBooleanParameterSpecification {
4836
4837 pub fn get_default_value(&self) -> Result<CapeBoolean,COBIAError> {
4838 let mut default_value:CapeBoolean=false as CapeBoolean;
4839 let result_code = unsafe {
4840 ((*(*self.interface).vTbl).getDefaultValue.unwrap())((*self.interface).me,&mut default_value as *mut CapeBoolean)
4841 };
4842 match result_code {
4843 COBIAERR_NOERROR => {Ok(default_value)},
4844 _ => Err(COBIAError::from_object(result_code,self))
4845 }
4846 }
4847
4848 pub fn validate<TypeOfMessage:CapeStringProviderOut>(&self,value:CapeBoolean,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
4849 let mut is_ok:CapeBoolean=false as CapeBoolean;
4850 let result_code = unsafe {
4851 ((*(*self.interface).vTbl).Validate.unwrap())((*self.interface).me,value,(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
4852 };
4853 match result_code {
4854 COBIAERR_NOERROR => {Ok(is_ok)},
4855 _ => Err(COBIAError::from_object(result_code,self))
4856 }
4857 }
4858
4859}
4860
4861pub trait ICapeArrayParameterSpecification {
4866 fn get_num_dimensions(&mut self) -> Result<CapeInteger,COBIAError>;
4867 fn get_size(&mut self,size:&mut CapeArrayIntegerOut) -> Result<(),COBIAError>;
4868}
4869
4870pub trait ICapeArrayParameterSpecificationImpl : ICapeArrayParameterSpecification {
4871 type T: ICapeInterfaceImpl+ICapeArrayParameterSpecificationImpl;
4872
4873 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
4874
4875 fn init_interface() -> crate::C::ICapeInterface {
4877 crate::C::ICapeInterface {
4878 me: std::ptr::null_mut(),
4879 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeArrayParameterSpecification_VTable).cast_mut()
4880 as *mut crate::C::ICapeInterface_VTable,
4881 }
4882 }
4883
4884 fn init<Timpl: ICapeArrayParameterSpecificationImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
4885 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeArrayParameterSpecification =
4886 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeArrayParameterSpecification;
4887 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
4888 u.add_interface(
4889 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeArrayParameterSpecification_UUID),
4890 iface as *mut crate::C::ICapeInterface,
4891 );
4892 }
4893
4894 extern "C" fn raw_get_num_dimensions(me: *mut std::ffi::c_void,num_dimensions:*mut CapeInteger) -> crate::C::CapeResult {
4895 if num_dimensions.is_null() {
4896 return COBIAERR_NULLPOINTER;
4897 }
4898 let p = me as *mut Self::T;
4899 let myself=unsafe { &mut *p };
4900 match myself.get_num_dimensions() {
4901 Ok(_num_dimensions) => {
4902 unsafe{*num_dimensions=_num_dimensions;}
4903 COBIAERR_NOERROR
4904 },
4905 Err(e) => myself.set_last_error(e,"ICapeArrayParameterSpecification::GetNumDimensions")
4906 }
4907 }
4908
4909 extern "C" fn raw_get_size(me: *mut std::ffi::c_void,size:*mut crate::C::ICapeArrayInteger) -> crate::C::CapeResult {
4910 if size.is_null() {
4911 return COBIAERR_NULLPOINTER;
4912 }
4913 let p = me as *mut Self::T;
4914 let myself=unsafe { &mut *p };
4915 if size.is_null() {
4916 return COBIAERR_NULLPOINTER;
4917 }
4918 let mut size=unsafe{*((&size as *const *mut crate::C::ICapeArrayInteger) as *mut *mut crate::C::ICapeArrayInteger)};
4919 let mut size=CapeArrayIntegerOut::new(&mut size);
4920 match myself.get_size(&mut size) {
4921 Ok(_) => COBIAERR_NOERROR,
4922 Err(e) => myself.set_last_error(e,"ICapeArrayParameterSpecification::GetSize")
4923 }
4924 }
4925
4926 const VTABLE: C::CAPEOPEN_1_2_ICapeArrayParameterSpecification_VTable =
4927 C::CAPEOPEN_1_2_ICapeArrayParameterSpecification_VTable {
4928 base: crate::C::ICapeInterface_VTable {
4929 addReference: Some(Self::T::raw_add_reference),
4930 release: Some(Self::T::raw_release),
4931 queryInterface: Some(Self::T::raw_query_interface),
4932 getLastError: Some(Self::T::raw_get_last_error),
4933 },
4934 getNumDimensions: Some(Self::T::raw_get_num_dimensions),
4935 getSize: Some(Self::T::raw_get_size),
4936 };
4937}
4938
4939#[cape_smart_pointer(ICAPEARRAYPARAMETERSPECIFICATION_UUID)]
4940pub struct CapeArrayParameterSpecification {
4941 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeArrayParameterSpecification,
4942}
4943
4944impl CapeArrayParameterSpecification {
4945
4946 pub fn get_num_dimensions(&self) -> Result<CapeInteger,COBIAError> {
4947 let mut num_dimensions:CapeInteger=0;
4948 let result_code = unsafe {
4949 ((*(*self.interface).vTbl).getNumDimensions.unwrap())((*self.interface).me,&mut num_dimensions as *mut CapeInteger)
4950 };
4951 match result_code {
4952 COBIAERR_NOERROR => {Ok(num_dimensions)},
4953 _ => Err(COBIAError::from_object(result_code,self))
4954 }
4955 }
4956
4957 pub fn get_size<TypeOfSize:CapeArrayIntegerProviderOut>(&self,size:&mut TypeOfSize) -> Result<(),COBIAError> {
4958 let result_code = unsafe {
4959 ((*(*self.interface).vTbl).getSize.unwrap())((*self.interface).me,(&size.as_cape_array_integer_out() as *const crate::C::ICapeArrayInteger).cast_mut())
4960 };
4961 match result_code {
4962 COBIAERR_NOERROR => {Ok(())},
4963 _ => Err(COBIAError::from_object(result_code,self))
4964 }
4965 }
4966
4967}
4968
4969pub trait ICapeArrayRealParameterSpecification {
4974 fn get_default_value(&mut self) -> Result<CapeReal,COBIAError>;
4975 fn get_lower_bound(&mut self) -> Result<CapeReal,COBIAError>;
4976 fn get_upper_bound(&mut self) -> Result<CapeReal,COBIAError>;
4977 fn get_dimensionality(&mut self,dimensionality:&mut CapeArrayRealOut) -> Result<(),COBIAError>;
4978 fn validate_element(&mut self,position:&CapeArrayIntegerIn,value:CapeReal,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
4979 fn validate(&mut self,value:&CapeArrayRealIn,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
4980}
4981
4982pub trait ICapeArrayRealParameterSpecificationImpl : ICapeArrayRealParameterSpecification {
4983 type T: ICapeInterfaceImpl+ICapeArrayRealParameterSpecificationImpl;
4984
4985 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
4986
4987 fn init_interface() -> crate::C::ICapeInterface {
4989 crate::C::ICapeInterface {
4990 me: std::ptr::null_mut(),
4991 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeArrayRealParameterSpecification_VTable).cast_mut()
4992 as *mut crate::C::ICapeInterface_VTable,
4993 }
4994 }
4995
4996 fn init<Timpl: ICapeArrayRealParameterSpecificationImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
4997 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeArrayRealParameterSpecification =
4998 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeArrayRealParameterSpecification;
4999 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
5000 u.add_interface(
5001 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeArrayRealParameterSpecification_UUID),
5002 iface as *mut crate::C::ICapeInterface,
5003 );
5004 }
5005
5006 extern "C" fn raw_get_default_value(me: *mut std::ffi::c_void,default_value:*mut CapeReal) -> crate::C::CapeResult {
5007 if default_value.is_null() {
5008 return COBIAERR_NULLPOINTER;
5009 }
5010 let p = me as *mut Self::T;
5011 let myself=unsafe { &mut *p };
5012 match myself.get_default_value() {
5013 Ok(_default_value) => {
5014 unsafe{*default_value=_default_value;}
5015 COBIAERR_NOERROR
5016 },
5017 Err(e) => myself.set_last_error(e,"ICapeArrayRealParameterSpecification::GetDefaultValue")
5018 }
5019 }
5020
5021 extern "C" fn raw_get_lower_bound(me: *mut std::ffi::c_void,l_bound:*mut CapeReal) -> crate::C::CapeResult {
5022 if l_bound.is_null() {
5023 return COBIAERR_NULLPOINTER;
5024 }
5025 let p = me as *mut Self::T;
5026 let myself=unsafe { &mut *p };
5027 match myself.get_lower_bound() {
5028 Ok(_l_bound) => {
5029 unsafe{*l_bound=_l_bound;}
5030 COBIAERR_NOERROR
5031 },
5032 Err(e) => myself.set_last_error(e,"ICapeArrayRealParameterSpecification::GetLowerBound")
5033 }
5034 }
5035
5036 extern "C" fn raw_get_upper_bound(me: *mut std::ffi::c_void,u_bound:*mut CapeReal) -> crate::C::CapeResult {
5037 if u_bound.is_null() {
5038 return COBIAERR_NULLPOINTER;
5039 }
5040 let p = me as *mut Self::T;
5041 let myself=unsafe { &mut *p };
5042 match myself.get_upper_bound() {
5043 Ok(_u_bound) => {
5044 unsafe{*u_bound=_u_bound;}
5045 COBIAERR_NOERROR
5046 },
5047 Err(e) => myself.set_last_error(e,"ICapeArrayRealParameterSpecification::GetUpperBound")
5048 }
5049 }
5050
5051 extern "C" fn raw_get_dimensionality(me: *mut std::ffi::c_void,dimensionality:*mut crate::C::ICapeArrayReal) -> crate::C::CapeResult {
5052 if dimensionality.is_null() {
5053 return COBIAERR_NULLPOINTER;
5054 }
5055 let p = me as *mut Self::T;
5056 let myself=unsafe { &mut *p };
5057 if dimensionality.is_null() {
5058 return COBIAERR_NULLPOINTER;
5059 }
5060 let mut dimensionality=unsafe{*((&dimensionality as *const *mut crate::C::ICapeArrayReal) as *mut *mut crate::C::ICapeArrayReal)};
5061 let mut dimensionality=CapeArrayRealOut::new(&mut dimensionality);
5062 match myself.get_dimensionality(&mut dimensionality) {
5063 Ok(_) => COBIAERR_NOERROR,
5064 Err(e) => myself.set_last_error(e,"ICapeArrayRealParameterSpecification::GetDimensionality")
5065 }
5066 }
5067
5068 extern "C" fn raw_validate_element(me: *mut std::ffi::c_void,position:*mut crate::C::ICapeArrayInteger,value:CapeReal,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
5069 if message.is_null()||is_ok.is_null() {
5070 return COBIAERR_NULLPOINTER;
5071 }
5072 let p = me as *mut Self::T;
5073 let myself=unsafe { &mut *p };
5074 if message.is_null() {
5075 return COBIAERR_NULLPOINTER;
5076 }
5077 let position=CapeArrayIntegerIn::new(&position);
5078 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
5079 let mut message=CapeStringOut::new(&mut message);
5080 match myself.validate_element(&position,value,&mut message) {
5081 Ok(_is_ok) => {
5082 unsafe{*is_ok=_is_ok;}
5083 COBIAERR_NOERROR
5084 },
5085 Err(e) => myself.set_last_error(e,"ICapeArrayRealParameterSpecification::ValidateElement")
5086 }
5087 }
5088
5089 extern "C" fn raw_validate(me: *mut std::ffi::c_void,value:*mut crate::C::ICapeArrayReal,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
5090 if message.is_null()||is_ok.is_null() {
5091 return COBIAERR_NULLPOINTER;
5092 }
5093 let p = me as *mut Self::T;
5094 let myself=unsafe { &mut *p };
5095 if message.is_null() {
5096 return COBIAERR_NULLPOINTER;
5097 }
5098 let value=CapeArrayRealIn::new(&value);
5099 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
5100 let mut message=CapeStringOut::new(&mut message);
5101 match myself.validate(&value,&mut message) {
5102 Ok(_is_ok) => {
5103 unsafe{*is_ok=_is_ok;}
5104 COBIAERR_NOERROR
5105 },
5106 Err(e) => myself.set_last_error(e,"ICapeArrayRealParameterSpecification::Validate")
5107 }
5108 }
5109
5110 const VTABLE: C::CAPEOPEN_1_2_ICapeArrayRealParameterSpecification_VTable =
5111 C::CAPEOPEN_1_2_ICapeArrayRealParameterSpecification_VTable {
5112 base: crate::C::ICapeInterface_VTable {
5113 addReference: Some(Self::T::raw_add_reference),
5114 release: Some(Self::T::raw_release),
5115 queryInterface: Some(Self::T::raw_query_interface),
5116 getLastError: Some(Self::T::raw_get_last_error),
5117 },
5118 getDefaultValue: Some(Self::T::raw_get_default_value),
5119 getLowerBound: Some(Self::T::raw_get_lower_bound),
5120 getUpperBound: Some(Self::T::raw_get_upper_bound),
5121 getDimensionality: Some(Self::T::raw_get_dimensionality),
5122 ValidateElement: Some(Self::T::raw_validate_element),
5123 Validate: Some(Self::T::raw_validate),
5124 };
5125}
5126
5127#[cape_smart_pointer(ICAPEARRAYREALPARAMETERSPECIFICATION_UUID)]
5128pub struct CapeArrayRealParameterSpecification {
5129 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeArrayRealParameterSpecification,
5130}
5131
5132impl CapeArrayRealParameterSpecification {
5133
5134 pub fn get_default_value(&self) -> Result<CapeReal,COBIAError> {
5135 let mut default_value:CapeReal=0.0;
5136 let result_code = unsafe {
5137 ((*(*self.interface).vTbl).getDefaultValue.unwrap())((*self.interface).me,&mut default_value as *mut CapeReal)
5138 };
5139 match result_code {
5140 COBIAERR_NOERROR => {Ok(default_value)},
5141 _ => Err(COBIAError::from_object(result_code,self))
5142 }
5143 }
5144
5145 pub fn get_lower_bound(&self) -> Result<CapeReal,COBIAError> {
5146 let mut l_bound:CapeReal=0.0;
5147 let result_code = unsafe {
5148 ((*(*self.interface).vTbl).getLowerBound.unwrap())((*self.interface).me,&mut l_bound as *mut CapeReal)
5149 };
5150 match result_code {
5151 COBIAERR_NOERROR => {Ok(l_bound)},
5152 _ => Err(COBIAError::from_object(result_code,self))
5153 }
5154 }
5155
5156 pub fn get_upper_bound(&self) -> Result<CapeReal,COBIAError> {
5157 let mut u_bound:CapeReal=0.0;
5158 let result_code = unsafe {
5159 ((*(*self.interface).vTbl).getUpperBound.unwrap())((*self.interface).me,&mut u_bound as *mut CapeReal)
5160 };
5161 match result_code {
5162 COBIAERR_NOERROR => {Ok(u_bound)},
5163 _ => Err(COBIAError::from_object(result_code,self))
5164 }
5165 }
5166
5167 pub fn get_dimensionality<TypeOfDimensionality:CapeArrayRealProviderOut>(&self,dimensionality:&mut TypeOfDimensionality) -> Result<(),COBIAError> {
5168 let result_code = unsafe {
5169 ((*(*self.interface).vTbl).getDimensionality.unwrap())((*self.interface).me,(&dimensionality.as_cape_array_real_out() as *const crate::C::ICapeArrayReal).cast_mut())
5170 };
5171 match result_code {
5172 COBIAERR_NOERROR => {Ok(())},
5173 _ => Err(COBIAError::from_object(result_code,self))
5174 }
5175 }
5176
5177 pub fn validate_element<TypeOfPosition:CapeArrayIntegerProviderIn,TypeOfMessage:CapeStringProviderOut>(&self,position:&TypeOfPosition,value:CapeReal,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
5178 let mut is_ok:CapeBoolean=false as CapeBoolean;
5179 let result_code = unsafe {
5180 ((*(*self.interface).vTbl).ValidateElement.unwrap())((*self.interface).me,(&position.as_cape_array_integer_in() as *const crate::C::ICapeArrayInteger).cast_mut(),value,(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
5181 };
5182 match result_code {
5183 COBIAERR_NOERROR => {Ok(is_ok)},
5184 _ => Err(COBIAError::from_object(result_code,self))
5185 }
5186 }
5187
5188 pub fn validate<TypeOfValue:CapeArrayRealProviderIn,TypeOfMessage:CapeStringProviderOut>(&self,value:&TypeOfValue,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
5189 let mut is_ok:CapeBoolean=false as CapeBoolean;
5190 let result_code = unsafe {
5191 ((*(*self.interface).vTbl).Validate.unwrap())((*self.interface).me,(&value.as_cape_array_real_in() as *const crate::C::ICapeArrayReal).cast_mut(),(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
5192 };
5193 match result_code {
5194 COBIAERR_NOERROR => {Ok(is_ok)},
5195 _ => Err(COBIAError::from_object(result_code,self))
5196 }
5197 }
5198
5199}
5200
5201pub trait ICapeArrayIntegerParameterSpecification {
5206 fn get_default_value(&mut self) -> Result<CapeInteger,COBIAError>;
5207 fn get_lower_bound(&mut self) -> Result<CapeInteger,COBIAError>;
5208 fn get_upper_bound(&mut self) -> Result<CapeInteger,COBIAError>;
5209 fn validate_element(&mut self,position:&CapeArrayIntegerIn,value:CapeInteger,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
5210 fn validate(&mut self,value:&CapeArrayIntegerIn,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
5211}
5212
5213pub trait ICapeArrayIntegerParameterSpecificationImpl : ICapeArrayIntegerParameterSpecification {
5214 type T: ICapeInterfaceImpl+ICapeArrayIntegerParameterSpecificationImpl;
5215
5216 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
5217
5218 fn init_interface() -> crate::C::ICapeInterface {
5220 crate::C::ICapeInterface {
5221 me: std::ptr::null_mut(),
5222 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeArrayIntegerParameterSpecification_VTable).cast_mut()
5223 as *mut crate::C::ICapeInterface_VTable,
5224 }
5225 }
5226
5227 fn init<Timpl: ICapeArrayIntegerParameterSpecificationImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
5228 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeArrayIntegerParameterSpecification =
5229 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeArrayIntegerParameterSpecification;
5230 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
5231 u.add_interface(
5232 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeArrayIntegerParameterSpecification_UUID),
5233 iface as *mut crate::C::ICapeInterface,
5234 );
5235 }
5236
5237 extern "C" fn raw_get_default_value(me: *mut std::ffi::c_void,default_value:*mut CapeInteger) -> crate::C::CapeResult {
5238 if default_value.is_null() {
5239 return COBIAERR_NULLPOINTER;
5240 }
5241 let p = me as *mut Self::T;
5242 let myself=unsafe { &mut *p };
5243 match myself.get_default_value() {
5244 Ok(_default_value) => {
5245 unsafe{*default_value=_default_value;}
5246 COBIAERR_NOERROR
5247 },
5248 Err(e) => myself.set_last_error(e,"ICapeArrayIntegerParameterSpecification::GetDefaultValue")
5249 }
5250 }
5251
5252 extern "C" fn raw_get_lower_bound(me: *mut std::ffi::c_void,l_bound:*mut CapeInteger) -> crate::C::CapeResult {
5253 if l_bound.is_null() {
5254 return COBIAERR_NULLPOINTER;
5255 }
5256 let p = me as *mut Self::T;
5257 let myself=unsafe { &mut *p };
5258 match myself.get_lower_bound() {
5259 Ok(_l_bound) => {
5260 unsafe{*l_bound=_l_bound;}
5261 COBIAERR_NOERROR
5262 },
5263 Err(e) => myself.set_last_error(e,"ICapeArrayIntegerParameterSpecification::GetLowerBound")
5264 }
5265 }
5266
5267 extern "C" fn raw_get_upper_bound(me: *mut std::ffi::c_void,u_bound:*mut CapeInteger) -> crate::C::CapeResult {
5268 if u_bound.is_null() {
5269 return COBIAERR_NULLPOINTER;
5270 }
5271 let p = me as *mut Self::T;
5272 let myself=unsafe { &mut *p };
5273 match myself.get_upper_bound() {
5274 Ok(_u_bound) => {
5275 unsafe{*u_bound=_u_bound;}
5276 COBIAERR_NOERROR
5277 },
5278 Err(e) => myself.set_last_error(e,"ICapeArrayIntegerParameterSpecification::GetUpperBound")
5279 }
5280 }
5281
5282 extern "C" fn raw_validate_element(me: *mut std::ffi::c_void,position:*mut crate::C::ICapeArrayInteger,value:CapeInteger,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
5283 if message.is_null()||is_ok.is_null() {
5284 return COBIAERR_NULLPOINTER;
5285 }
5286 let p = me as *mut Self::T;
5287 let myself=unsafe { &mut *p };
5288 if message.is_null() {
5289 return COBIAERR_NULLPOINTER;
5290 }
5291 let position=CapeArrayIntegerIn::new(&position);
5292 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
5293 let mut message=CapeStringOut::new(&mut message);
5294 match myself.validate_element(&position,value,&mut message) {
5295 Ok(_is_ok) => {
5296 unsafe{*is_ok=_is_ok;}
5297 COBIAERR_NOERROR
5298 },
5299 Err(e) => myself.set_last_error(e,"ICapeArrayIntegerParameterSpecification::ValidateElement")
5300 }
5301 }
5302
5303 extern "C" fn raw_validate(me: *mut std::ffi::c_void,value:*mut crate::C::ICapeArrayInteger,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
5304 if message.is_null()||is_ok.is_null() {
5305 return COBIAERR_NULLPOINTER;
5306 }
5307 let p = me as *mut Self::T;
5308 let myself=unsafe { &mut *p };
5309 if message.is_null() {
5310 return COBIAERR_NULLPOINTER;
5311 }
5312 let value=CapeArrayIntegerIn::new(&value);
5313 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
5314 let mut message=CapeStringOut::new(&mut message);
5315 match myself.validate(&value,&mut message) {
5316 Ok(_is_ok) => {
5317 unsafe{*is_ok=_is_ok;}
5318 COBIAERR_NOERROR
5319 },
5320 Err(e) => myself.set_last_error(e,"ICapeArrayIntegerParameterSpecification::Validate")
5321 }
5322 }
5323
5324 const VTABLE: C::CAPEOPEN_1_2_ICapeArrayIntegerParameterSpecification_VTable =
5325 C::CAPEOPEN_1_2_ICapeArrayIntegerParameterSpecification_VTable {
5326 base: crate::C::ICapeInterface_VTable {
5327 addReference: Some(Self::T::raw_add_reference),
5328 release: Some(Self::T::raw_release),
5329 queryInterface: Some(Self::T::raw_query_interface),
5330 getLastError: Some(Self::T::raw_get_last_error),
5331 },
5332 getDefaultValue: Some(Self::T::raw_get_default_value),
5333 getLowerBound: Some(Self::T::raw_get_lower_bound),
5334 getUpperBound: Some(Self::T::raw_get_upper_bound),
5335 ValidateElement: Some(Self::T::raw_validate_element),
5336 Validate: Some(Self::T::raw_validate),
5337 };
5338}
5339
5340#[cape_smart_pointer(ICAPEARRAYINTEGERPARAMETERSPECIFICATION_UUID)]
5341pub struct CapeArrayIntegerParameterSpecification {
5342 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeArrayIntegerParameterSpecification,
5343}
5344
5345impl CapeArrayIntegerParameterSpecification {
5346
5347 pub fn get_default_value(&self) -> Result<CapeInteger,COBIAError> {
5348 let mut default_value:CapeInteger=0;
5349 let result_code = unsafe {
5350 ((*(*self.interface).vTbl).getDefaultValue.unwrap())((*self.interface).me,&mut default_value as *mut CapeInteger)
5351 };
5352 match result_code {
5353 COBIAERR_NOERROR => {Ok(default_value)},
5354 _ => Err(COBIAError::from_object(result_code,self))
5355 }
5356 }
5357
5358 pub fn get_lower_bound(&self) -> Result<CapeInteger,COBIAError> {
5359 let mut l_bound:CapeInteger=0;
5360 let result_code = unsafe {
5361 ((*(*self.interface).vTbl).getLowerBound.unwrap())((*self.interface).me,&mut l_bound as *mut CapeInteger)
5362 };
5363 match result_code {
5364 COBIAERR_NOERROR => {Ok(l_bound)},
5365 _ => Err(COBIAError::from_object(result_code,self))
5366 }
5367 }
5368
5369 pub fn get_upper_bound(&self) -> Result<CapeInteger,COBIAError> {
5370 let mut u_bound:CapeInteger=0;
5371 let result_code = unsafe {
5372 ((*(*self.interface).vTbl).getUpperBound.unwrap())((*self.interface).me,&mut u_bound as *mut CapeInteger)
5373 };
5374 match result_code {
5375 COBIAERR_NOERROR => {Ok(u_bound)},
5376 _ => Err(COBIAError::from_object(result_code,self))
5377 }
5378 }
5379
5380 pub fn validate_element<TypeOfPosition:CapeArrayIntegerProviderIn,TypeOfMessage:CapeStringProviderOut>(&self,position:&TypeOfPosition,value:CapeInteger,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
5381 let mut is_ok:CapeBoolean=false as CapeBoolean;
5382 let result_code = unsafe {
5383 ((*(*self.interface).vTbl).ValidateElement.unwrap())((*self.interface).me,(&position.as_cape_array_integer_in() as *const crate::C::ICapeArrayInteger).cast_mut(),value,(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
5384 };
5385 match result_code {
5386 COBIAERR_NOERROR => {Ok(is_ok)},
5387 _ => Err(COBIAError::from_object(result_code,self))
5388 }
5389 }
5390
5391 pub fn validate<TypeOfValue:CapeArrayIntegerProviderIn,TypeOfMessage:CapeStringProviderOut>(&self,value:&TypeOfValue,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
5392 let mut is_ok:CapeBoolean=false as CapeBoolean;
5393 let result_code = unsafe {
5394 ((*(*self.interface).vTbl).Validate.unwrap())((*self.interface).me,(&value.as_cape_array_integer_in() as *const crate::C::ICapeArrayInteger).cast_mut(),(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
5395 };
5396 match result_code {
5397 COBIAERR_NOERROR => {Ok(is_ok)},
5398 _ => Err(COBIAError::from_object(result_code,self))
5399 }
5400 }
5401
5402}
5403
5404pub trait ICapeArrayStringParameterSpecification {
5409 fn get_default_value(&mut self,default_value:&mut CapeStringOut) -> Result<(),COBIAError>;
5410 fn get_option_list(&mut self,option_names:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
5411 fn get_restricted_to_list(&mut self) -> Result<CapeBoolean,COBIAError>;
5412 fn validate_element(&mut self,position:&CapeArrayIntegerIn,value:&CapeStringIn,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
5413 fn validate(&mut self,value:&CapeArrayStringIn,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
5414}
5415
5416pub trait ICapeArrayStringParameterSpecificationImpl : ICapeArrayStringParameterSpecification {
5417 type T: ICapeInterfaceImpl+ICapeArrayStringParameterSpecificationImpl;
5418
5419 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
5420
5421 fn init_interface() -> crate::C::ICapeInterface {
5423 crate::C::ICapeInterface {
5424 me: std::ptr::null_mut(),
5425 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeArrayStringParameterSpecification_VTable).cast_mut()
5426 as *mut crate::C::ICapeInterface_VTable,
5427 }
5428 }
5429
5430 fn init<Timpl: ICapeArrayStringParameterSpecificationImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
5431 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeArrayStringParameterSpecification =
5432 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeArrayStringParameterSpecification;
5433 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
5434 u.add_interface(
5435 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeArrayStringParameterSpecification_UUID),
5436 iface as *mut crate::C::ICapeInterface,
5437 );
5438 }
5439
5440 extern "C" fn raw_get_default_value(me: *mut std::ffi::c_void,default_value:*mut crate::C::ICapeString) -> crate::C::CapeResult {
5441 if default_value.is_null() {
5442 return COBIAERR_NULLPOINTER;
5443 }
5444 let p = me as *mut Self::T;
5445 let myself=unsafe { &mut *p };
5446 if default_value.is_null() {
5447 return COBIAERR_NULLPOINTER;
5448 }
5449 let mut default_value=unsafe{*((&default_value as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
5450 let mut default_value=CapeStringOut::new(&mut default_value);
5451 match myself.get_default_value(&mut default_value) {
5452 Ok(_) => COBIAERR_NOERROR,
5453 Err(e) => myself.set_last_error(e,"ICapeArrayStringParameterSpecification::GetDefaultValue")
5454 }
5455 }
5456
5457 extern "C" fn raw_get_option_list(me: *mut std::ffi::c_void,option_names:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
5458 if option_names.is_null() {
5459 return COBIAERR_NULLPOINTER;
5460 }
5461 let p = me as *mut Self::T;
5462 let myself=unsafe { &mut *p };
5463 if option_names.is_null() {
5464 return COBIAERR_NULLPOINTER;
5465 }
5466 let mut option_names=unsafe{*((&option_names as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
5467 let mut option_names=CapeArrayStringOut::new(&mut option_names);
5468 match myself.get_option_list(&mut option_names) {
5469 Ok(_) => COBIAERR_NOERROR,
5470 Err(e) => myself.set_last_error(e,"ICapeArrayStringParameterSpecification::GetOptionList")
5471 }
5472 }
5473
5474 extern "C" fn raw_get_restricted_to_list(me: *mut std::ffi::c_void,restricted:*mut CapeBoolean) -> crate::C::CapeResult {
5475 if restricted.is_null() {
5476 return COBIAERR_NULLPOINTER;
5477 }
5478 let p = me as *mut Self::T;
5479 let myself=unsafe { &mut *p };
5480 match myself.get_restricted_to_list() {
5481 Ok(_restricted) => {
5482 unsafe{*restricted=_restricted;}
5483 COBIAERR_NOERROR
5484 },
5485 Err(e) => myself.set_last_error(e,"ICapeArrayStringParameterSpecification::GetRestrictedToList")
5486 }
5487 }
5488
5489 extern "C" fn raw_validate_element(me: *mut std::ffi::c_void,position:*mut crate::C::ICapeArrayInteger,value:*mut crate::C::ICapeString,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
5490 if message.is_null()||is_ok.is_null() {
5491 return COBIAERR_NULLPOINTER;
5492 }
5493 let p = me as *mut Self::T;
5494 let myself=unsafe { &mut *p };
5495 if message.is_null() {
5496 return COBIAERR_NULLPOINTER;
5497 }
5498 let position=CapeArrayIntegerIn::new(&position);
5499 let value=CapeStringIn::new(&value);
5500 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
5501 let mut message=CapeStringOut::new(&mut message);
5502 match myself.validate_element(&position,&value,&mut message) {
5503 Ok(_is_ok) => {
5504 unsafe{*is_ok=_is_ok;}
5505 COBIAERR_NOERROR
5506 },
5507 Err(e) => myself.set_last_error(e,"ICapeArrayStringParameterSpecification::ValidateElement")
5508 }
5509 }
5510
5511 extern "C" fn raw_validate(me: *mut std::ffi::c_void,value:*mut crate::C::ICapeArrayString,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
5512 if message.is_null()||is_ok.is_null() {
5513 return COBIAERR_NULLPOINTER;
5514 }
5515 let p = me as *mut Self::T;
5516 let myself=unsafe { &mut *p };
5517 if message.is_null() {
5518 return COBIAERR_NULLPOINTER;
5519 }
5520 let value=CapeArrayStringIn::new(&value);
5521 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
5522 let mut message=CapeStringOut::new(&mut message);
5523 match myself.validate(&value,&mut message) {
5524 Ok(_is_ok) => {
5525 unsafe{*is_ok=_is_ok;}
5526 COBIAERR_NOERROR
5527 },
5528 Err(e) => myself.set_last_error(e,"ICapeArrayStringParameterSpecification::Validate")
5529 }
5530 }
5531
5532 const VTABLE: C::CAPEOPEN_1_2_ICapeArrayStringParameterSpecification_VTable =
5533 C::CAPEOPEN_1_2_ICapeArrayStringParameterSpecification_VTable {
5534 base: crate::C::ICapeInterface_VTable {
5535 addReference: Some(Self::T::raw_add_reference),
5536 release: Some(Self::T::raw_release),
5537 queryInterface: Some(Self::T::raw_query_interface),
5538 getLastError: Some(Self::T::raw_get_last_error),
5539 },
5540 getDefaultValue: Some(Self::T::raw_get_default_value),
5541 getOptionList: Some(Self::T::raw_get_option_list),
5542 getRestrictedToList: Some(Self::T::raw_get_restricted_to_list),
5543 ValidateElement: Some(Self::T::raw_validate_element),
5544 Validate: Some(Self::T::raw_validate),
5545 };
5546}
5547
5548#[cape_smart_pointer(ICAPEARRAYSTRINGPARAMETERSPECIFICATION_UUID)]
5549pub struct CapeArrayStringParameterSpecification {
5550 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeArrayStringParameterSpecification,
5551}
5552
5553impl CapeArrayStringParameterSpecification {
5554
5555 pub fn get_default_value<TypeOfDefaultValue:CapeStringProviderOut>(&self,default_value:&mut TypeOfDefaultValue) -> Result<(),COBIAError> {
5556 let result_code = unsafe {
5557 ((*(*self.interface).vTbl).getDefaultValue.unwrap())((*self.interface).me,(&default_value.as_cape_string_out() as *const crate::C::ICapeString).cast_mut())
5558 };
5559 match result_code {
5560 COBIAERR_NOERROR => {Ok(())},
5561 _ => Err(COBIAError::from_object(result_code,self))
5562 }
5563 }
5564
5565 pub fn get_option_list<TypeOfOptionNames:CapeArrayStringProviderOut>(&self,option_names:&mut TypeOfOptionNames) -> Result<(),COBIAError> {
5566 let result_code = unsafe {
5567 ((*(*self.interface).vTbl).getOptionList.unwrap())((*self.interface).me,(&option_names.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
5568 };
5569 match result_code {
5570 COBIAERR_NOERROR => {Ok(())},
5571 _ => Err(COBIAError::from_object(result_code,self))
5572 }
5573 }
5574
5575 pub fn get_restricted_to_list(&self) -> Result<CapeBoolean,COBIAError> {
5576 let mut restricted:CapeBoolean=false as CapeBoolean;
5577 let result_code = unsafe {
5578 ((*(*self.interface).vTbl).getRestrictedToList.unwrap())((*self.interface).me,&mut restricted as *mut CapeBoolean)
5579 };
5580 match result_code {
5581 COBIAERR_NOERROR => {Ok(restricted)},
5582 _ => Err(COBIAError::from_object(result_code,self))
5583 }
5584 }
5585
5586 pub fn validate_element<TypeOfPosition:CapeArrayIntegerProviderIn,TypeOfValue:CapeStringProviderIn,TypeOfMessage:CapeStringProviderOut>(&self,position:&TypeOfPosition,value:&TypeOfValue,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
5587 let mut is_ok:CapeBoolean=false as CapeBoolean;
5588 let result_code = unsafe {
5589 ((*(*self.interface).vTbl).ValidateElement.unwrap())((*self.interface).me,(&position.as_cape_array_integer_in() as *const crate::C::ICapeArrayInteger).cast_mut(),(&value.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
5590 };
5591 match result_code {
5592 COBIAERR_NOERROR => {Ok(is_ok)},
5593 _ => Err(COBIAError::from_object(result_code,self))
5594 }
5595 }
5596
5597 pub fn validate<TypeOfValue:CapeArrayStringProviderIn,TypeOfMessage:CapeStringProviderOut>(&self,value:&TypeOfValue,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
5598 let mut is_ok:CapeBoolean=false as CapeBoolean;
5599 let result_code = unsafe {
5600 ((*(*self.interface).vTbl).Validate.unwrap())((*self.interface).me,(&value.as_cape_array_string_in() as *const crate::C::ICapeArrayString).cast_mut(),(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
5601 };
5602 match result_code {
5603 COBIAERR_NOERROR => {Ok(is_ok)},
5604 _ => Err(COBIAError::from_object(result_code,self))
5605 }
5606 }
5607
5608}
5609
5610pub trait ICapeArrayBooleanParameterSpecification {
5615 fn get_default_value(&mut self) -> Result<CapeBoolean,COBIAError>;
5616 fn validate_element(&mut self,position:&CapeArrayIntegerIn,value:CapeBoolean,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
5617 fn validate(&mut self,value:&CapeArrayBooleanIn,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
5618}
5619
5620pub trait ICapeArrayBooleanParameterSpecificationImpl : ICapeArrayBooleanParameterSpecification {
5621 type T: ICapeInterfaceImpl+ICapeArrayBooleanParameterSpecificationImpl;
5622
5623 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
5624
5625 fn init_interface() -> crate::C::ICapeInterface {
5627 crate::C::ICapeInterface {
5628 me: std::ptr::null_mut(),
5629 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeArrayBooleanParameterSpecification_VTable).cast_mut()
5630 as *mut crate::C::ICapeInterface_VTable,
5631 }
5632 }
5633
5634 fn init<Timpl: ICapeArrayBooleanParameterSpecificationImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
5635 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeArrayBooleanParameterSpecification =
5636 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeArrayBooleanParameterSpecification;
5637 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
5638 u.add_interface(
5639 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeArrayBooleanParameterSpecification_UUID),
5640 iface as *mut crate::C::ICapeInterface,
5641 );
5642 }
5643
5644 extern "C" fn raw_get_default_value(me: *mut std::ffi::c_void,default_value:*mut CapeBoolean) -> crate::C::CapeResult {
5645 if default_value.is_null() {
5646 return COBIAERR_NULLPOINTER;
5647 }
5648 let p = me as *mut Self::T;
5649 let myself=unsafe { &mut *p };
5650 match myself.get_default_value() {
5651 Ok(_default_value) => {
5652 unsafe{*default_value=_default_value;}
5653 COBIAERR_NOERROR
5654 },
5655 Err(e) => myself.set_last_error(e,"ICapeArrayBooleanParameterSpecification::GetDefaultValue")
5656 }
5657 }
5658
5659 extern "C" fn raw_validate_element(me: *mut std::ffi::c_void,position:*mut crate::C::ICapeArrayInteger,value:CapeBoolean,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
5660 if message.is_null()||is_ok.is_null() {
5661 return COBIAERR_NULLPOINTER;
5662 }
5663 let p = me as *mut Self::T;
5664 let myself=unsafe { &mut *p };
5665 if message.is_null() {
5666 return COBIAERR_NULLPOINTER;
5667 }
5668 let position=CapeArrayIntegerIn::new(&position);
5669 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
5670 let mut message=CapeStringOut::new(&mut message);
5671 match myself.validate_element(&position,value,&mut message) {
5672 Ok(_is_ok) => {
5673 unsafe{*is_ok=_is_ok;}
5674 COBIAERR_NOERROR
5675 },
5676 Err(e) => myself.set_last_error(e,"ICapeArrayBooleanParameterSpecification::ValidateElement")
5677 }
5678 }
5679
5680 extern "C" fn raw_validate(me: *mut std::ffi::c_void,value:*mut crate::C::ICapeArrayBoolean,message:*mut crate::C::ICapeString,is_ok:*mut CapeBoolean) -> crate::C::CapeResult {
5681 if message.is_null()||is_ok.is_null() {
5682 return COBIAERR_NULLPOINTER;
5683 }
5684 let p = me as *mut Self::T;
5685 let myself=unsafe { &mut *p };
5686 if message.is_null() {
5687 return COBIAERR_NULLPOINTER;
5688 }
5689 let value=CapeArrayBooleanIn::new(&value);
5690 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
5691 let mut message=CapeStringOut::new(&mut message);
5692 match myself.validate(&value,&mut message) {
5693 Ok(_is_ok) => {
5694 unsafe{*is_ok=_is_ok;}
5695 COBIAERR_NOERROR
5696 },
5697 Err(e) => myself.set_last_error(e,"ICapeArrayBooleanParameterSpecification::Validate")
5698 }
5699 }
5700
5701 const VTABLE: C::CAPEOPEN_1_2_ICapeArrayBooleanParameterSpecification_VTable =
5702 C::CAPEOPEN_1_2_ICapeArrayBooleanParameterSpecification_VTable {
5703 base: crate::C::ICapeInterface_VTable {
5704 addReference: Some(Self::T::raw_add_reference),
5705 release: Some(Self::T::raw_release),
5706 queryInterface: Some(Self::T::raw_query_interface),
5707 getLastError: Some(Self::T::raw_get_last_error),
5708 },
5709 getDefaultValue: Some(Self::T::raw_get_default_value),
5710 ValidateElement: Some(Self::T::raw_validate_element),
5711 Validate: Some(Self::T::raw_validate),
5712 };
5713}
5714
5715#[cape_smart_pointer(ICAPEARRAYBOOLEANPARAMETERSPECIFICATION_UUID)]
5716pub struct CapeArrayBooleanParameterSpecification {
5717 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeArrayBooleanParameterSpecification,
5718}
5719
5720impl CapeArrayBooleanParameterSpecification {
5721
5722 pub fn get_default_value(&self) -> Result<CapeBoolean,COBIAError> {
5723 let mut default_value:CapeBoolean=false as CapeBoolean;
5724 let result_code = unsafe {
5725 ((*(*self.interface).vTbl).getDefaultValue.unwrap())((*self.interface).me,&mut default_value as *mut CapeBoolean)
5726 };
5727 match result_code {
5728 COBIAERR_NOERROR => {Ok(default_value)},
5729 _ => Err(COBIAError::from_object(result_code,self))
5730 }
5731 }
5732
5733 pub fn validate_element<TypeOfPosition:CapeArrayIntegerProviderIn,TypeOfMessage:CapeStringProviderOut>(&self,position:&TypeOfPosition,value:CapeBoolean,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
5734 let mut is_ok:CapeBoolean=false as CapeBoolean;
5735 let result_code = unsafe {
5736 ((*(*self.interface).vTbl).ValidateElement.unwrap())((*self.interface).me,(&position.as_cape_array_integer_in() as *const crate::C::ICapeArrayInteger).cast_mut(),value,(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
5737 };
5738 match result_code {
5739 COBIAERR_NOERROR => {Ok(is_ok)},
5740 _ => Err(COBIAError::from_object(result_code,self))
5741 }
5742 }
5743
5744 pub fn validate<TypeOfValue:CapeArrayBooleanProviderIn,TypeOfMessage:CapeStringProviderOut>(&self,value:&TypeOfValue,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
5745 let mut is_ok:CapeBoolean=false as CapeBoolean;
5746 let result_code = unsafe {
5747 ((*(*self.interface).vTbl).Validate.unwrap())((*self.interface).me,(&value.as_cape_array_boolean_in() as *const crate::C::ICapeArrayBoolean).cast_mut(),(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_ok as *mut CapeBoolean)
5748 };
5749 match result_code {
5750 COBIAERR_NOERROR => {Ok(is_ok)},
5751 _ => Err(COBIAError::from_object(result_code,self))
5752 }
5753 }
5754
5755}
5756
5757pub trait ICapeUtilities {
5762 fn get_parameters(&mut self) -> Result<CapeCollection<CapeParameter>,COBIAError>;
5763 fn set_simulation_context(&mut self,context:CapeSimulationContext) -> Result<(),COBIAError>;
5764 fn initialize(&mut self) -> Result<(),COBIAError>;
5765 fn terminate(&mut self) -> Result<(),COBIAError>;
5766 fn edit(&mut self,parent:CapeWindowId) -> Result<CapeEditResult,COBIAError>;
5767}
5768
5769pub trait ICapeUtilitiesImpl : ICapeUtilities {
5770 type T: ICapeInterfaceImpl+ICapeUtilitiesImpl;
5771
5772 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
5773
5774 fn init_interface() -> crate::C::ICapeInterface {
5776 crate::C::ICapeInterface {
5777 me: std::ptr::null_mut(),
5778 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeUtilities_VTable).cast_mut()
5779 as *mut crate::C::ICapeInterface_VTable,
5780 }
5781 }
5782
5783 fn init<Timpl: ICapeUtilitiesImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
5784 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeUtilities =
5785 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeUtilities;
5786 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
5787 u.add_interface(
5788 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeUtilities_UUID),
5789 iface as *mut crate::C::ICapeInterface,
5790 );
5791 }
5792
5793 extern "C" fn raw_get_parameters(me: *mut std::ffi::c_void,parameters:*mut *mut C::CAPEOPEN_1_2_ICapeCollection) -> crate::C::CapeResult {
5794 if parameters.is_null() {
5795 return COBIAERR_NULLPOINTER;
5796 }
5797 let p = me as *mut Self::T;
5798 let myself=unsafe { &mut *p };
5799 if parameters.is_null() {
5800 return COBIAERR_NULLPOINTER;
5801 }
5802 match myself.get_parameters() {
5803 Ok(_parameters) => {
5804 unsafe{*parameters=_parameters.detach();}
5805 COBIAERR_NOERROR
5806 },
5807 Err(e) => myself.set_last_error(e,"ICapeUtilities::GetParameters")
5808 }
5809 }
5810
5811 extern "C" fn raw_set_simulation_context(me: *mut std::ffi::c_void,context:*mut C::CAPEOPEN_1_2_ICapeSimulationContext) -> crate::C::CapeResult {
5812 if context.is_null() {
5813 return COBIAERR_NULLPOINTER;
5814 }
5815 let p = me as *mut Self::T;
5816 let myself=unsafe { &mut *p };
5817 if context.is_null() {
5818 return COBIAERR_NULLPOINTER;
5819 }
5820 let context=CapeSimulationContext::from_interface_pointer(context);
5821 match myself.set_simulation_context(context) {
5822 Ok(_) => COBIAERR_NOERROR,
5823 Err(e) => myself.set_last_error(e,"ICapeUtilities::SetSimulationContext")
5824 }
5825 }
5826
5827 extern "C" fn raw_initialize(me: *mut std::ffi::c_void) -> crate::C::CapeResult {
5828 let p = me as *mut Self::T;
5829 let myself=unsafe { &mut *p };
5830 match myself.initialize() {
5831 Ok(_) => COBIAERR_NOERROR,
5832 Err(e) => myself.set_last_error(e,"ICapeUtilities::Initialize")
5833 }
5834 }
5835
5836 extern "C" fn raw_terminate(me: *mut std::ffi::c_void) -> crate::C::CapeResult {
5837 let p = me as *mut Self::T;
5838 let myself=unsafe { &mut *p };
5839 match myself.terminate() {
5840 Ok(_) => COBIAERR_NOERROR,
5841 Err(e) => myself.set_last_error(e,"ICapeUtilities::Terminate")
5842 }
5843 }
5844
5845 extern "C" fn raw_edit(me: *mut std::ffi::c_void,parent:crate::C::CapeWindowId,result:*mut C::CAPEOPEN_1_2_CapeEditResult) -> crate::C::CapeResult {
5846 if result.is_null() {
5847 return COBIAERR_NULLPOINTER;
5848 }
5849 let p = me as *mut Self::T;
5850 let myself=unsafe { &mut *p };
5851 match myself.edit(crate::CapeWindowIdFromRaw(parent)) {
5852 Ok(_result) => {
5853 unsafe{*result=_result as C::CAPEOPEN_1_2_CapeEditResult;}
5854 COBIAERR_NOERROR
5855 },
5856 Err(e) => myself.set_last_error(e,"ICapeUtilities::Edit")
5857 }
5858 }
5859
5860 const VTABLE: C::CAPEOPEN_1_2_ICapeUtilities_VTable =
5861 C::CAPEOPEN_1_2_ICapeUtilities_VTable {
5862 base: crate::C::ICapeInterface_VTable {
5863 addReference: Some(Self::T::raw_add_reference),
5864 release: Some(Self::T::raw_release),
5865 queryInterface: Some(Self::T::raw_query_interface),
5866 getLastError: Some(Self::T::raw_get_last_error),
5867 },
5868 getParameters: Some(Self::T::raw_get_parameters),
5869 putSimulationContext: Some(Self::T::raw_set_simulation_context),
5870 Initialize: Some(Self::T::raw_initialize),
5871 Terminate: Some(Self::T::raw_terminate),
5872 Edit: Some(Self::T::raw_edit),
5873 };
5874}
5875
5876#[cape_smart_pointer(ICAPEUTILITIES_UUID)]
5877pub struct CapeUtilities {
5878 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeUtilities,
5879}
5880
5881impl CapeUtilities {
5882
5883 pub fn get_parameters(&self) -> Result<CapeCollection<CapeParameter>,COBIAError> {
5884 let mut parameters: *mut C::CAPEOPEN_1_2_ICapeCollection=std::ptr::null_mut();
5885 let result_code = unsafe {
5886 ((*(*self.interface).vTbl).getParameters.unwrap())((*self.interface).me,&mut parameters as *mut *mut C::CAPEOPEN_1_2_ICapeCollection)
5887 };
5888 match result_code {
5889 COBIAERR_NOERROR => {Ok(CapeCollection::<CapeParameter>::attach(parameters))},
5890 _ => Err(COBIAError::from_object(result_code,self))
5891 }
5892 }
5893
5894 pub fn set_simulation_context(&self,context:&CapeSimulationContext) -> Result<(),COBIAError> {
5895 let result_code = unsafe {
5896 ((*(*self.interface).vTbl).putSimulationContext.unwrap())((*self.interface).me,context.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeSimulationContext)
5897 };
5898 match result_code {
5899 COBIAERR_NOERROR => {Ok(())},
5900 _ => Err(COBIAError::from_object(result_code,self))
5901 }
5902 }
5903
5904 pub fn initialize(&self) -> Result<(),COBIAError> {
5905 let result_code = unsafe {
5906 ((*(*self.interface).vTbl).Initialize.unwrap())((*self.interface).me)
5907 };
5908 match result_code {
5909 COBIAERR_NOERROR => {Ok(())},
5910 _ => Err(COBIAError::from_object(result_code,self))
5911 }
5912 }
5913
5914 pub fn terminate(&self) -> Result<(),COBIAError> {
5915 let result_code = unsafe {
5916 ((*(*self.interface).vTbl).Terminate.unwrap())((*self.interface).me)
5917 };
5918 match result_code {
5919 COBIAERR_NOERROR => {Ok(())},
5920 _ => Err(COBIAError::from_object(result_code,self))
5921 }
5922 }
5923
5924 pub fn edit(&self,parent:CapeWindowId) -> Result<CapeEditResult,COBIAError> {
5925 let mut result:C::CAPEOPEN_1_2_CapeEditResult=0;
5926 let result_code = unsafe {
5927 ((*(*self.interface).vTbl).Edit.unwrap())((*self.interface).me,crate::CapeWindowIdToRaw(parent),&mut result as *mut C::CAPEOPEN_1_2_CapeEditResult)
5928 };
5929 let result=match CapeEditResult::from(result) {
5930 Some(_result) => _result,
5931 None => {return Err(COBIAError::Message("Invalid enumeration value".to_string()));}
5932 };
5933 match result_code {
5934 COBIAERR_NOERROR => {Ok(result)},
5935 _ => Err(COBIAError::from_object(result_code,self))
5936 }
5937 }
5938
5939}
5940
5941pub trait ICapeSimulationContext {
5946}
5947
5948pub trait ICapeSimulationContextImpl : ICapeSimulationContext {
5949 type T: ICapeInterfaceImpl+ICapeSimulationContextImpl;
5950
5951 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
5952
5953 fn init_interface() -> crate::C::ICapeInterface {
5955 crate::C::ICapeInterface {
5956 me: std::ptr::null_mut(),
5957 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeSimulationContext_VTable).cast_mut()
5958 as *mut crate::C::ICapeInterface_VTable,
5959 }
5960 }
5961
5962 fn init<Timpl: ICapeSimulationContextImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
5963 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeSimulationContext =
5964 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeSimulationContext;
5965 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
5966 u.add_interface(
5967 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeSimulationContext_UUID),
5968 iface as *mut crate::C::ICapeInterface,
5969 );
5970 }
5971
5972 const VTABLE: C::CAPEOPEN_1_2_ICapeSimulationContext_VTable =
5973 C::CAPEOPEN_1_2_ICapeSimulationContext_VTable {
5974 base: crate::C::ICapeInterface_VTable {
5975 addReference: Some(Self::T::raw_add_reference),
5976 release: Some(Self::T::raw_release),
5977 queryInterface: Some(Self::T::raw_query_interface),
5978 getLastError: Some(Self::T::raw_get_last_error),
5979 },
5980 };
5981}
5982
5983#[cape_smart_pointer(ICAPESIMULATIONCONTEXT_UUID)]
5984pub struct CapeSimulationContext {
5985 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeSimulationContext,
5986}
5987
5988impl CapeSimulationContext {
5989
5990}
5991
5992pub trait ICapeDiagnostic {
5997 fn pop_up_message(&mut self,message:&CapeStringIn) -> Result<(),COBIAError>;
5998 fn log_message(&mut self,message:&CapeStringIn) -> Result<(),COBIAError>;
5999}
6000
6001pub trait ICapeDiagnosticImpl : ICapeDiagnostic {
6002 type T: ICapeInterfaceImpl+ICapeDiagnosticImpl;
6003
6004 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
6005
6006 fn init_interface() -> crate::C::ICapeInterface {
6008 crate::C::ICapeInterface {
6009 me: std::ptr::null_mut(),
6010 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeDiagnostic_VTable).cast_mut()
6011 as *mut crate::C::ICapeInterface_VTable,
6012 }
6013 }
6014
6015 fn init<Timpl: ICapeDiagnosticImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
6016 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeDiagnostic =
6017 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeDiagnostic;
6018 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
6019 u.add_interface(
6020 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeDiagnostic_UUID),
6021 iface as *mut crate::C::ICapeInterface,
6022 );
6023 }
6024
6025 extern "C" fn raw_pop_up_message(me: *mut std::ffi::c_void,message:*mut crate::C::ICapeString) -> crate::C::CapeResult {
6026 let p = me as *mut Self::T;
6027 let myself=unsafe { &mut *p };
6028 let message=CapeStringIn::new(&message);
6029 match myself.pop_up_message(&message) {
6030 Ok(_) => COBIAERR_NOERROR,
6031 Err(e) => myself.set_last_error(e,"ICapeDiagnostic::PopUpMessage")
6032 }
6033 }
6034
6035 extern "C" fn raw_log_message(me: *mut std::ffi::c_void,message:*mut crate::C::ICapeString) -> crate::C::CapeResult {
6036 let p = me as *mut Self::T;
6037 let myself=unsafe { &mut *p };
6038 let message=CapeStringIn::new(&message);
6039 match myself.log_message(&message) {
6040 Ok(_) => COBIAERR_NOERROR,
6041 Err(e) => myself.set_last_error(e,"ICapeDiagnostic::LogMessage")
6042 }
6043 }
6044
6045 const VTABLE: C::CAPEOPEN_1_2_ICapeDiagnostic_VTable =
6046 C::CAPEOPEN_1_2_ICapeDiagnostic_VTable {
6047 base: crate::C::ICapeInterface_VTable {
6048 addReference: Some(Self::T::raw_add_reference),
6049 release: Some(Self::T::raw_release),
6050 queryInterface: Some(Self::T::raw_query_interface),
6051 getLastError: Some(Self::T::raw_get_last_error),
6052 },
6053 PopUpMessage: Some(Self::T::raw_pop_up_message),
6054 LogMessage: Some(Self::T::raw_log_message),
6055 };
6056}
6057
6058#[cape_smart_pointer(ICAPEDIAGNOSTIC_UUID)]
6059pub struct CapeDiagnostic {
6060 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeDiagnostic,
6061}
6062
6063impl CapeDiagnostic {
6064
6065 pub fn pop_up_message<TypeOfMessage:CapeStringProviderIn>(&self,message:&TypeOfMessage) -> Result<(),COBIAError> {
6066 let result_code = unsafe {
6067 ((*(*self.interface).vTbl).PopUpMessage.unwrap())((*self.interface).me,(&message.as_cape_string_in() as *const crate::C::ICapeString).cast_mut())
6068 };
6069 match result_code {
6070 COBIAERR_NOERROR => {Ok(())},
6071 _ => Err(COBIAError::from_object(result_code,self))
6072 }
6073 }
6074
6075 pub fn log_message<TypeOfMessage:CapeStringProviderIn>(&self,message:&TypeOfMessage) -> Result<(),COBIAError> {
6076 let result_code = unsafe {
6077 ((*(*self.interface).vTbl).LogMessage.unwrap())((*self.interface).me,(&message.as_cape_string_in() as *const crate::C::ICapeString).cast_mut())
6078 };
6079 match result_code {
6080 COBIAERR_NOERROR => {Ok(())},
6081 _ => Err(COBIAError::from_object(result_code,self))
6082 }
6083 }
6084
6085}
6086
6087pub trait ICapeMaterialManager {
6092 fn get_material_list(&mut self,material_name_list:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
6093 fn create_material(&mut self,material_name:&CapeStringIn) -> Result<crate::CapeObject,COBIAError>;
6094}
6095
6096pub trait ICapeMaterialManagerImpl : ICapeMaterialManager {
6097 type T: ICapeInterfaceImpl+ICapeMaterialManagerImpl;
6098
6099 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
6100
6101 fn init_interface() -> crate::C::ICapeInterface {
6103 crate::C::ICapeInterface {
6104 me: std::ptr::null_mut(),
6105 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeMaterialManager_VTable).cast_mut()
6106 as *mut crate::C::ICapeInterface_VTable,
6107 }
6108 }
6109
6110 fn init<Timpl: ICapeMaterialManagerImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
6111 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeMaterialManager =
6112 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeMaterialManager;
6113 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
6114 u.add_interface(
6115 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeMaterialManager_UUID),
6116 iface as *mut crate::C::ICapeInterface,
6117 );
6118 }
6119
6120 extern "C" fn raw_get_material_list(me: *mut std::ffi::c_void,material_name_list:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
6121 if material_name_list.is_null() {
6122 return COBIAERR_NULLPOINTER;
6123 }
6124 let p = me as *mut Self::T;
6125 let myself=unsafe { &mut *p };
6126 if material_name_list.is_null() {
6127 return COBIAERR_NULLPOINTER;
6128 }
6129 let mut material_name_list=unsafe{*((&material_name_list as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
6130 let mut material_name_list=CapeArrayStringOut::new(&mut material_name_list);
6131 match myself.get_material_list(&mut material_name_list) {
6132 Ok(_) => COBIAERR_NOERROR,
6133 Err(e) => myself.set_last_error(e,"ICapeMaterialManager::GetMaterialList")
6134 }
6135 }
6136
6137 extern "C" fn raw_create_material(me: *mut std::ffi::c_void,material_name:*mut crate::C::ICapeString,material:*mut *mut crate::C::ICapeInterface) -> crate::C::CapeResult {
6138 if material.is_null() {
6139 return COBIAERR_NULLPOINTER;
6140 }
6141 let p = me as *mut Self::T;
6142 let myself=unsafe { &mut *p };
6143 if material.is_null() {
6144 return COBIAERR_NULLPOINTER;
6145 }
6146 let material_name=CapeStringIn::new(&material_name);
6147 match myself.create_material(&material_name) {
6148 Ok(_material) => {
6149 unsafe{*material=_material.detach();}
6150 COBIAERR_NOERROR
6151 },
6152 Err(e) => myself.set_last_error(e,"ICapeMaterialManager::CreateMaterial")
6153 }
6154 }
6155
6156 const VTABLE: C::CAPEOPEN_1_2_ICapeMaterialManager_VTable =
6157 C::CAPEOPEN_1_2_ICapeMaterialManager_VTable {
6158 base: crate::C::ICapeInterface_VTable {
6159 addReference: Some(Self::T::raw_add_reference),
6160 release: Some(Self::T::raw_release),
6161 queryInterface: Some(Self::T::raw_query_interface),
6162 getLastError: Some(Self::T::raw_get_last_error),
6163 },
6164 getMaterialList: Some(Self::T::raw_get_material_list),
6165 CreateMaterial: Some(Self::T::raw_create_material),
6166 };
6167}
6168
6169#[cape_smart_pointer(ICAPEMATERIALMANAGER_UUID)]
6170pub struct CapeMaterialManager {
6171 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeMaterialManager,
6172}
6173
6174impl CapeMaterialManager {
6175
6176 pub fn get_material_list<TypeOfMaterialNameList:CapeArrayStringProviderOut>(&self,material_name_list:&mut TypeOfMaterialNameList) -> Result<(),COBIAError> {
6177 let result_code = unsafe {
6178 ((*(*self.interface).vTbl).getMaterialList.unwrap())((*self.interface).me,(&material_name_list.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
6179 };
6180 match result_code {
6181 COBIAERR_NOERROR => {Ok(())},
6182 _ => Err(COBIAError::from_object(result_code,self))
6183 }
6184 }
6185
6186 pub fn create_material<TypeOfMaterialName:CapeStringProviderIn>(&self,material_name:&TypeOfMaterialName) -> Result<crate::CapeObject,COBIAError> {
6187 let mut material: *mut crate::C::ICapeInterface=std::ptr::null_mut();
6188 let result_code = unsafe {
6189 ((*(*self.interface).vTbl).CreateMaterial.unwrap())((*self.interface).me,(&material_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),&mut material as *mut *mut crate::C::ICapeInterface)
6190 };
6191 match result_code {
6192 COBIAERR_NOERROR => {Ok(crate::CapeObject::attach(material))},
6193 _ => Err(COBIAError::from_object(result_code,self))
6194 }
6195 }
6196
6197}
6198
6199pub trait ICapeCOSEUtilities {
6204 fn get_named_value_list(&mut self,named_values:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
6205 fn named_value(&mut self,name:&CapeStringIn,named_value:&mut CapeValueOut) -> Result<(),COBIAError>;
6206}
6207
6208pub trait ICapeCOSEUtilitiesImpl : ICapeCOSEUtilities {
6209 type T: ICapeInterfaceImpl+ICapeCOSEUtilitiesImpl;
6210
6211 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
6212
6213 fn init_interface() -> crate::C::ICapeInterface {
6215 crate::C::ICapeInterface {
6216 me: std::ptr::null_mut(),
6217 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeCOSEUtilities_VTable).cast_mut()
6218 as *mut crate::C::ICapeInterface_VTable,
6219 }
6220 }
6221
6222 fn init<Timpl: ICapeCOSEUtilitiesImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
6223 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeCOSEUtilities =
6224 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeCOSEUtilities;
6225 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
6226 u.add_interface(
6227 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeCOSEUtilities_UUID),
6228 iface as *mut crate::C::ICapeInterface,
6229 );
6230 }
6231
6232 extern "C" fn raw_get_named_value_list(me: *mut std::ffi::c_void,named_values:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
6233 if named_values.is_null() {
6234 return COBIAERR_NULLPOINTER;
6235 }
6236 let p = me as *mut Self::T;
6237 let myself=unsafe { &mut *p };
6238 if named_values.is_null() {
6239 return COBIAERR_NULLPOINTER;
6240 }
6241 let mut named_values=unsafe{*((&named_values as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
6242 let mut named_values=CapeArrayStringOut::new(&mut named_values);
6243 match myself.get_named_value_list(&mut named_values) {
6244 Ok(_) => COBIAERR_NOERROR,
6245 Err(e) => myself.set_last_error(e,"ICapeCOSEUtilities::GetNamedValueList")
6246 }
6247 }
6248
6249 extern "C" fn raw_named_value(me: *mut std::ffi::c_void,name:*mut crate::C::ICapeString,named_value:*mut crate::C::ICapeValue) -> crate::C::CapeResult {
6250 if named_value.is_null() {
6251 return COBIAERR_NULLPOINTER;
6252 }
6253 let p = me as *mut Self::T;
6254 let myself=unsafe { &mut *p };
6255 if named_value.is_null() {
6256 return COBIAERR_NULLPOINTER;
6257 }
6258 let name=CapeStringIn::new(&name);
6259 let mut named_value=unsafe{*((&named_value as *const *mut crate::C::ICapeValue) as *mut *mut crate::C::ICapeValue)};
6260 let mut named_value=CapeValueOut::new(&mut named_value);
6261 match myself.named_value(&name,&mut named_value) {
6262 Ok(_) => COBIAERR_NOERROR,
6263 Err(e) => myself.set_last_error(e,"ICapeCOSEUtilities::NamedValue")
6264 }
6265 }
6266
6267 const VTABLE: C::CAPEOPEN_1_2_ICapeCOSEUtilities_VTable =
6268 C::CAPEOPEN_1_2_ICapeCOSEUtilities_VTable {
6269 base: crate::C::ICapeInterface_VTable {
6270 addReference: Some(Self::T::raw_add_reference),
6271 release: Some(Self::T::raw_release),
6272 queryInterface: Some(Self::T::raw_query_interface),
6273 getLastError: Some(Self::T::raw_get_last_error),
6274 },
6275 getNamedValueList: Some(Self::T::raw_get_named_value_list),
6276 NamedValue: Some(Self::T::raw_named_value),
6277 };
6278}
6279
6280#[cape_smart_pointer(ICAPECOSEUTILITIES_UUID)]
6281pub struct CapeCOSEUtilities {
6282 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeCOSEUtilities,
6283}
6284
6285impl CapeCOSEUtilities {
6286
6287 pub fn get_named_value_list<TypeOfNamedValues:CapeArrayStringProviderOut>(&self,named_values:&mut TypeOfNamedValues) -> Result<(),COBIAError> {
6288 let result_code = unsafe {
6289 ((*(*self.interface).vTbl).getNamedValueList.unwrap())((*self.interface).me,(&named_values.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
6290 };
6291 match result_code {
6292 COBIAERR_NOERROR => {Ok(())},
6293 _ => Err(COBIAError::from_object(result_code,self))
6294 }
6295 }
6296
6297 pub fn named_value<TypeOfName:CapeStringProviderIn,TypeOfNamedValue:CapeValueProviderOut>(&self,name:&TypeOfName,named_value:&mut TypeOfNamedValue) -> Result<(),COBIAError> {
6298 let result_code = unsafe {
6299 ((*(*self.interface).vTbl).NamedValue.unwrap())((*self.interface).me,(&name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&named_value.as_cape_value_out() as *const crate::C::ICapeValue).cast_mut())
6300 };
6301 match result_code {
6302 COBIAERR_NOERROR => {Ok(())},
6303 _ => Err(COBIAError::from_object(result_code,self))
6304 }
6305 }
6306
6307}
6308
6309pub trait ICapeThermoMaterial {
6314 fn clear_all_props(&mut self) -> Result<(),COBIAError>;
6315 fn copy_from_material(&mut self,source:CapeThermoMaterial) -> Result<(),COBIAError>;
6316 fn create_material(&mut self) -> Result<CapeThermoMaterial,COBIAError>;
6317 fn get_overall_prop(&mut self,property:&CapeStringIn,basis:&CapeStringIn,results:&mut CapeArrayRealOut) -> Result<(),COBIAError>;
6318 fn get_overall_tpfraction(&mut self,temperature:&mut CapeReal,pressure:&mut CapeReal,composition:&mut CapeArrayRealOut) -> Result<(),COBIAError>;
6319 fn get_present_phases(&mut self,phase_labels:&mut CapeArrayStringOut,phase_status:&mut CapeArrayEnumerationOut<CapePhaseStatus>) -> Result<(),COBIAError>;
6320 fn get_single_phase_prop(&mut self,property:&CapeStringIn,phase_label:&CapeStringIn,basis:&CapeStringIn,results:&mut CapeArrayRealOut) -> Result<(),COBIAError>;
6321 fn get_tpfraction(&mut self,phase_label:&CapeStringIn,temperature:&mut CapeReal,pressure:&mut CapeReal,composition:&mut CapeArrayRealOut) -> Result<(),COBIAError>;
6322 fn get_two_phase_prop(&mut self,property:&CapeStringIn,phase_labels:&CapeArrayStringIn,basis:&CapeStringIn,results:&mut CapeArrayRealOut) -> Result<(),COBIAError>;
6323 fn set_overall_prop(&mut self,property:&CapeStringIn,basis:&CapeStringIn,values:&CapeArrayRealIn) -> Result<(),COBIAError>;
6324 fn set_present_phases(&mut self,phase_labels:&CapeArrayStringIn,phase_status:&CapeArrayEnumerationIn<CapePhaseStatus>) -> Result<(),COBIAError>;
6325 fn set_single_phase_prop(&mut self,property:&CapeStringIn,phase_label:&CapeStringIn,basis:&CapeStringIn,values:&CapeArrayRealIn) -> Result<(),COBIAError>;
6326 fn set_two_phase_prop(&mut self,property:&CapeStringIn,phase_labels:&CapeArrayStringIn,basis:&CapeStringIn,values:&CapeArrayRealIn) -> Result<(),COBIAError>;
6327}
6328
6329pub trait ICapeThermoMaterialImpl : ICapeThermoMaterial {
6330 type T: ICapeInterfaceImpl+ICapeThermoMaterialImpl;
6331
6332 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
6333
6334 fn init_interface() -> crate::C::ICapeInterface {
6336 crate::C::ICapeInterface {
6337 me: std::ptr::null_mut(),
6338 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeThermoMaterial_VTable).cast_mut()
6339 as *mut crate::C::ICapeInterface_VTable,
6340 }
6341 }
6342
6343 fn init<Timpl: ICapeThermoMaterialImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
6344 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeThermoMaterial =
6345 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeThermoMaterial;
6346 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
6347 u.add_interface(
6348 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeThermoMaterial_UUID),
6349 iface as *mut crate::C::ICapeInterface,
6350 );
6351 }
6352
6353 extern "C" fn raw_clear_all_props(me: *mut std::ffi::c_void) -> crate::C::CapeResult {
6354 let p = me as *mut Self::T;
6355 let myself=unsafe { &mut *p };
6356 match myself.clear_all_props() {
6357 Ok(_) => COBIAERR_NOERROR,
6358 Err(e) => myself.set_last_error(e,"ICapeThermoMaterial::ClearAllProps")
6359 }
6360 }
6361
6362 extern "C" fn raw_copy_from_material(me: *mut std::ffi::c_void,source:*mut C::CAPEOPEN_1_2_ICapeThermoMaterial) -> crate::C::CapeResult {
6363 if source.is_null() {
6364 return COBIAERR_NULLPOINTER;
6365 }
6366 let p = me as *mut Self::T;
6367 let myself=unsafe { &mut *p };
6368 if source.is_null() {
6369 return COBIAERR_NULLPOINTER;
6370 }
6371 let source=CapeThermoMaterial::from_interface_pointer(source);
6372 match myself.copy_from_material(source) {
6373 Ok(_) => COBIAERR_NOERROR,
6374 Err(e) => myself.set_last_error(e,"ICapeThermoMaterial::CopyFromMaterial")
6375 }
6376 }
6377
6378 extern "C" fn raw_create_material(me: *mut std::ffi::c_void,material_object:*mut *mut C::CAPEOPEN_1_2_ICapeThermoMaterial) -> crate::C::CapeResult {
6379 if material_object.is_null() {
6380 return COBIAERR_NULLPOINTER;
6381 }
6382 let p = me as *mut Self::T;
6383 let myself=unsafe { &mut *p };
6384 if material_object.is_null() {
6385 return COBIAERR_NULLPOINTER;
6386 }
6387 match myself.create_material() {
6388 Ok(_material_object) => {
6389 unsafe{*material_object=_material_object.detach();}
6390 COBIAERR_NOERROR
6391 },
6392 Err(e) => myself.set_last_error(e,"ICapeThermoMaterial::CreateMaterial")
6393 }
6394 }
6395
6396 extern "C" fn raw_get_overall_prop(me: *mut std::ffi::c_void,property:*mut crate::C::ICapeString,basis:*mut crate::C::ICapeString,results:*mut crate::C::ICapeArrayReal) -> crate::C::CapeResult {
6397 if results.is_null() {
6398 return COBIAERR_NULLPOINTER;
6399 }
6400 let p = me as *mut Self::T;
6401 let myself=unsafe { &mut *p };
6402 if results.is_null() {
6403 return COBIAERR_NULLPOINTER;
6404 }
6405 let property=CapeStringIn::new(&property);
6406 let basis=CapeStringIn::new(&basis);
6407 let mut results=unsafe{*((&results as *const *mut crate::C::ICapeArrayReal) as *mut *mut crate::C::ICapeArrayReal)};
6408 let mut results=CapeArrayRealOut::new(&mut results);
6409 match myself.get_overall_prop(&property,&basis,&mut results) {
6410 Ok(_) => COBIAERR_NOERROR,
6411 Err(e) => myself.set_last_error(e,"ICapeThermoMaterial::GetOverallProp")
6412 }
6413 }
6414
6415 extern "C" fn raw_get_overall_t_p_fraction(me: *mut std::ffi::c_void,temperature:*mut CapeReal,pressure:*mut CapeReal,composition:*mut crate::C::ICapeArrayReal) -> crate::C::CapeResult {
6416 if temperature.is_null()||pressure.is_null()||composition.is_null() {
6417 return COBIAERR_NULLPOINTER;
6418 }
6419 let p = me as *mut Self::T;
6420 let myself=unsafe { &mut *p };
6421 if composition.is_null() {
6422 return COBIAERR_NULLPOINTER;
6423 }
6424 let mut _temperature:CapeReal=0.0;
6425 let mut _pressure:CapeReal=0.0;
6426 let mut composition=unsafe{*((&composition as *const *mut crate::C::ICapeArrayReal) as *mut *mut crate::C::ICapeArrayReal)};
6427 let mut composition=CapeArrayRealOut::new(&mut composition);
6428 match myself.get_overall_tpfraction(&mut _temperature,&mut _pressure,&mut composition) {
6429 Ok(_) => {
6430 unsafe{*temperature=_temperature;}
6431 unsafe{*pressure=_pressure;}
6432 COBIAERR_NOERROR
6433 },
6434 Err(e) => myself.set_last_error(e,"ICapeThermoMaterial::GetOverallTPFraction")
6435 }
6436 }
6437
6438 extern "C" fn raw_get_present_phases(me: *mut std::ffi::c_void,phase_labels:*mut crate::C::ICapeArrayString,phase_status:*mut crate::C::ICapeArrayEnumeration) -> crate::C::CapeResult {
6439 if phase_labels.is_null()||phase_status.is_null() {
6440 return COBIAERR_NULLPOINTER;
6441 }
6442 let p = me as *mut Self::T;
6443 let myself=unsafe { &mut *p };
6444 if phase_labels.is_null()||phase_status.is_null() {
6445 return COBIAERR_NULLPOINTER;
6446 }
6447 let mut phase_labels=unsafe{*((&phase_labels as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
6448 let mut phase_labels=CapeArrayStringOut::new(&mut phase_labels);
6449 let mut phase_status=unsafe{*((&phase_status as *const *mut crate::C::ICapeArrayEnumeration) as *mut *mut crate::C::ICapeArrayEnumeration)};
6450 let mut phase_status=CapeArrayEnumerationOut::<CapePhaseStatus>::new(&mut phase_status);
6451 match myself.get_present_phases(&mut phase_labels,&mut phase_status) {
6452 Ok(_) => COBIAERR_NOERROR,
6453 Err(e) => myself.set_last_error(e,"ICapeThermoMaterial::GetPresentPhases")
6454 }
6455 }
6456
6457 extern "C" fn raw_get_single_phase_prop(me: *mut std::ffi::c_void,property:*mut crate::C::ICapeString,phase_label:*mut crate::C::ICapeString,basis:*mut crate::C::ICapeString,results:*mut crate::C::ICapeArrayReal) -> crate::C::CapeResult {
6458 if results.is_null() {
6459 return COBIAERR_NULLPOINTER;
6460 }
6461 let p = me as *mut Self::T;
6462 let myself=unsafe { &mut *p };
6463 if results.is_null() {
6464 return COBIAERR_NULLPOINTER;
6465 }
6466 let property=CapeStringIn::new(&property);
6467 let phase_label=CapeStringIn::new(&phase_label);
6468 let basis=CapeStringIn::new(&basis);
6469 let mut results=unsafe{*((&results as *const *mut crate::C::ICapeArrayReal) as *mut *mut crate::C::ICapeArrayReal)};
6470 let mut results=CapeArrayRealOut::new(&mut results);
6471 match myself.get_single_phase_prop(&property,&phase_label,&basis,&mut results) {
6472 Ok(_) => COBIAERR_NOERROR,
6473 Err(e) => myself.set_last_error(e,"ICapeThermoMaterial::GetSinglePhaseProp")
6474 }
6475 }
6476
6477 extern "C" fn raw_get_t_p_fraction(me: *mut std::ffi::c_void,phase_label:*mut crate::C::ICapeString,temperature:*mut CapeReal,pressure:*mut CapeReal,composition:*mut crate::C::ICapeArrayReal) -> crate::C::CapeResult {
6478 if temperature.is_null()||pressure.is_null()||composition.is_null() {
6479 return COBIAERR_NULLPOINTER;
6480 }
6481 let p = me as *mut Self::T;
6482 let myself=unsafe { &mut *p };
6483 if composition.is_null() {
6484 return COBIAERR_NULLPOINTER;
6485 }
6486 let phase_label=CapeStringIn::new(&phase_label);
6487 let mut _temperature:CapeReal=0.0;
6488 let mut _pressure:CapeReal=0.0;
6489 let mut composition=unsafe{*((&composition as *const *mut crate::C::ICapeArrayReal) as *mut *mut crate::C::ICapeArrayReal)};
6490 let mut composition=CapeArrayRealOut::new(&mut composition);
6491 match myself.get_tpfraction(&phase_label,&mut _temperature,&mut _pressure,&mut composition) {
6492 Ok(_) => {
6493 unsafe{*temperature=_temperature;}
6494 unsafe{*pressure=_pressure;}
6495 COBIAERR_NOERROR
6496 },
6497 Err(e) => myself.set_last_error(e,"ICapeThermoMaterial::GetTPFraction")
6498 }
6499 }
6500
6501 extern "C" fn raw_get_two_phase_prop(me: *mut std::ffi::c_void,property:*mut crate::C::ICapeString,phase_labels:*mut crate::C::ICapeArrayString,basis:*mut crate::C::ICapeString,results:*mut crate::C::ICapeArrayReal) -> crate::C::CapeResult {
6502 if results.is_null() {
6503 return COBIAERR_NULLPOINTER;
6504 }
6505 let p = me as *mut Self::T;
6506 let myself=unsafe { &mut *p };
6507 if results.is_null() {
6508 return COBIAERR_NULLPOINTER;
6509 }
6510 let property=CapeStringIn::new(&property);
6511 let phase_labels=CapeArrayStringIn::new(&phase_labels);
6512 let basis=CapeStringIn::new(&basis);
6513 let mut results=unsafe{*((&results as *const *mut crate::C::ICapeArrayReal) as *mut *mut crate::C::ICapeArrayReal)};
6514 let mut results=CapeArrayRealOut::new(&mut results);
6515 match myself.get_two_phase_prop(&property,&phase_labels,&basis,&mut results) {
6516 Ok(_) => COBIAERR_NOERROR,
6517 Err(e) => myself.set_last_error(e,"ICapeThermoMaterial::GetTwoPhaseProp")
6518 }
6519 }
6520
6521 extern "C" fn raw_set_overall_prop(me: *mut std::ffi::c_void,property:*mut crate::C::ICapeString,basis:*mut crate::C::ICapeString,values:*mut crate::C::ICapeArrayReal) -> crate::C::CapeResult {
6522 let p = me as *mut Self::T;
6523 let myself=unsafe { &mut *p };
6524 let property=CapeStringIn::new(&property);
6525 let basis=CapeStringIn::new(&basis);
6526 let values=CapeArrayRealIn::new(&values);
6527 match myself.set_overall_prop(&property,&basis,&values) {
6528 Ok(_) => COBIAERR_NOERROR,
6529 Err(e) => myself.set_last_error(e,"ICapeThermoMaterial::SetOverallProp")
6530 }
6531 }
6532
6533 extern "C" fn raw_set_present_phases(me: *mut std::ffi::c_void,phase_labels:*mut crate::C::ICapeArrayString,phase_status:*mut crate::C::ICapeArrayEnumeration) -> crate::C::CapeResult {
6534 let p = me as *mut Self::T;
6535 let myself=unsafe { &mut *p };
6536 let phase_labels=CapeArrayStringIn::new(&phase_labels);
6537 let phase_status=CapeArrayEnumerationIn::<CapePhaseStatus>::new(&phase_status);
6538 match myself.set_present_phases(&phase_labels,&phase_status) {
6539 Ok(_) => COBIAERR_NOERROR,
6540 Err(e) => myself.set_last_error(e,"ICapeThermoMaterial::SetPresentPhases")
6541 }
6542 }
6543
6544 extern "C" fn raw_set_single_phase_prop(me: *mut std::ffi::c_void,property:*mut crate::C::ICapeString,phase_label:*mut crate::C::ICapeString,basis:*mut crate::C::ICapeString,values:*mut crate::C::ICapeArrayReal) -> crate::C::CapeResult {
6545 let p = me as *mut Self::T;
6546 let myself=unsafe { &mut *p };
6547 let property=CapeStringIn::new(&property);
6548 let phase_label=CapeStringIn::new(&phase_label);
6549 let basis=CapeStringIn::new(&basis);
6550 let values=CapeArrayRealIn::new(&values);
6551 match myself.set_single_phase_prop(&property,&phase_label,&basis,&values) {
6552 Ok(_) => COBIAERR_NOERROR,
6553 Err(e) => myself.set_last_error(e,"ICapeThermoMaterial::SetSinglePhaseProp")
6554 }
6555 }
6556
6557 extern "C" fn raw_set_two_phase_prop(me: *mut std::ffi::c_void,property:*mut crate::C::ICapeString,phase_labels:*mut crate::C::ICapeArrayString,basis:*mut crate::C::ICapeString,values:*mut crate::C::ICapeArrayReal) -> crate::C::CapeResult {
6558 let p = me as *mut Self::T;
6559 let myself=unsafe { &mut *p };
6560 let property=CapeStringIn::new(&property);
6561 let phase_labels=CapeArrayStringIn::new(&phase_labels);
6562 let basis=CapeStringIn::new(&basis);
6563 let values=CapeArrayRealIn::new(&values);
6564 match myself.set_two_phase_prop(&property,&phase_labels,&basis,&values) {
6565 Ok(_) => COBIAERR_NOERROR,
6566 Err(e) => myself.set_last_error(e,"ICapeThermoMaterial::SetTwoPhaseProp")
6567 }
6568 }
6569
6570 const VTABLE: C::CAPEOPEN_1_2_ICapeThermoMaterial_VTable =
6571 C::CAPEOPEN_1_2_ICapeThermoMaterial_VTable {
6572 base: crate::C::ICapeInterface_VTable {
6573 addReference: Some(Self::T::raw_add_reference),
6574 release: Some(Self::T::raw_release),
6575 queryInterface: Some(Self::T::raw_query_interface),
6576 getLastError: Some(Self::T::raw_get_last_error),
6577 },
6578 ClearAllProps: Some(Self::T::raw_clear_all_props),
6579 CopyFromMaterial: Some(Self::T::raw_copy_from_material),
6580 CreateMaterial: Some(Self::T::raw_create_material),
6581 GetOverallProp: Some(Self::T::raw_get_overall_prop),
6582 GetOverallTPFraction: Some(Self::T::raw_get_overall_t_p_fraction),
6583 GetPresentPhases: Some(Self::T::raw_get_present_phases),
6584 GetSinglePhaseProp: Some(Self::T::raw_get_single_phase_prop),
6585 GetTPFraction: Some(Self::T::raw_get_t_p_fraction),
6586 GetTwoPhaseProp: Some(Self::T::raw_get_two_phase_prop),
6587 SetOverallProp: Some(Self::T::raw_set_overall_prop),
6588 SetPresentPhases: Some(Self::T::raw_set_present_phases),
6589 SetSinglePhaseProp: Some(Self::T::raw_set_single_phase_prop),
6590 SetTwoPhaseProp: Some(Self::T::raw_set_two_phase_prop),
6591 };
6592}
6593
6594#[cape_smart_pointer(ICAPETHERMOMATERIAL_UUID)]
6595pub struct CapeThermoMaterial {
6596 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeThermoMaterial,
6597}
6598
6599impl CapeThermoMaterial {
6600
6601 pub fn clear_all_props(&self) -> Result<(),COBIAError> {
6602 let result_code = unsafe {
6603 ((*(*self.interface).vTbl).ClearAllProps.unwrap())((*self.interface).me)
6604 };
6605 match result_code {
6606 COBIAERR_NOERROR => {Ok(())},
6607 _ => Err(COBIAError::from_object(result_code,self))
6608 }
6609 }
6610
6611 pub fn copy_from_material(&self,source:&CapeThermoMaterial) -> Result<(),COBIAError> {
6612 let result_code = unsafe {
6613 ((*(*self.interface).vTbl).CopyFromMaterial.unwrap())((*self.interface).me,source.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeThermoMaterial)
6614 };
6615 match result_code {
6616 COBIAERR_NOERROR => {Ok(())},
6617 _ => Err(COBIAError::from_object(result_code,self))
6618 }
6619 }
6620
6621 pub fn create_material(&self) -> Result<CapeThermoMaterial,COBIAError> {
6622 let mut material_object: *mut C::CAPEOPEN_1_2_ICapeThermoMaterial=std::ptr::null_mut();
6623 let result_code = unsafe {
6624 ((*(*self.interface).vTbl).CreateMaterial.unwrap())((*self.interface).me,&mut material_object as *mut *mut C::CAPEOPEN_1_2_ICapeThermoMaterial)
6625 };
6626 match result_code {
6627 COBIAERR_NOERROR => {Ok(CapeThermoMaterial::attach(material_object))},
6628 _ => Err(COBIAError::from_object(result_code,self))
6629 }
6630 }
6631
6632 pub fn get_overall_prop<TypeOfProperty:CapeStringProviderIn,TypeOfBasis:CapeStringProviderIn,TypeOfResults:CapeArrayRealProviderOut>(&self,property:&TypeOfProperty,basis:&TypeOfBasis,results:&mut TypeOfResults) -> Result<(),COBIAError> {
6633 let result_code = unsafe {
6634 ((*(*self.interface).vTbl).GetOverallProp.unwrap())((*self.interface).me,(&property.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&basis.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&results.as_cape_array_real_out() as *const crate::C::ICapeArrayReal).cast_mut())
6635 };
6636 match result_code {
6637 COBIAERR_NOERROR => {Ok(())},
6638 _ => Err(COBIAError::from_object(result_code,self))
6639 }
6640 }
6641
6642 pub fn get_overall_tpfraction<TypeOfComposition:CapeArrayRealProviderOut>(&self,temperature:&mut CapeReal,pressure:&mut CapeReal,composition:&mut TypeOfComposition) -> Result<(),COBIAError> {
6643 let result_code = unsafe {
6644 ((*(*self.interface).vTbl).GetOverallTPFraction.unwrap())((*self.interface).me,temperature as *mut CapeReal,pressure as *mut CapeReal,(&composition.as_cape_array_real_out() as *const crate::C::ICapeArrayReal).cast_mut())
6645 };
6646 match result_code {
6647 COBIAERR_NOERROR => {Ok(())},
6648 _ => Err(COBIAError::from_object(result_code,self))
6649 }
6650 }
6651
6652 pub fn get_present_phases<TypeOfPhaseLabels:CapeArrayStringProviderOut,TypeOfPhaseStatus:CapeArrayEnumerationProviderOut>(&self,phase_labels:&mut TypeOfPhaseLabels,phase_status:&mut TypeOfPhaseStatus) -> Result<(),COBIAError> {
6653 let result_code = unsafe {
6654 ((*(*self.interface).vTbl).GetPresentPhases.unwrap())((*self.interface).me,(&phase_labels.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut(),(&phase_status.as_cape_array_enumeration_out() as *const crate::C::ICapeArrayEnumeration).cast_mut())
6655 };
6656 match result_code {
6657 COBIAERR_NOERROR => {Ok(())},
6658 _ => Err(COBIAError::from_object(result_code,self))
6659 }
6660 }
6661
6662 pub fn get_single_phase_prop<TypeOfProperty:CapeStringProviderIn,TypeOfPhaseLabel:CapeStringProviderIn,TypeOfBasis:CapeStringProviderIn,TypeOfResults:CapeArrayRealProviderOut>(&self,property:&TypeOfProperty,phase_label:&TypeOfPhaseLabel,basis:&TypeOfBasis,results:&mut TypeOfResults) -> Result<(),COBIAError> {
6663 let result_code = unsafe {
6664 ((*(*self.interface).vTbl).GetSinglePhaseProp.unwrap())((*self.interface).me,(&property.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&phase_label.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&basis.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&results.as_cape_array_real_out() as *const crate::C::ICapeArrayReal).cast_mut())
6665 };
6666 match result_code {
6667 COBIAERR_NOERROR => {Ok(())},
6668 _ => Err(COBIAError::from_object(result_code,self))
6669 }
6670 }
6671
6672 pub fn get_tpfraction<TypeOfPhaseLabel:CapeStringProviderIn,TypeOfComposition:CapeArrayRealProviderOut>(&self,phase_label:&TypeOfPhaseLabel,temperature:&mut CapeReal,pressure:&mut CapeReal,composition:&mut TypeOfComposition) -> Result<(),COBIAError> {
6673 let result_code = unsafe {
6674 ((*(*self.interface).vTbl).GetTPFraction.unwrap())((*self.interface).me,(&phase_label.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),temperature as *mut CapeReal,pressure as *mut CapeReal,(&composition.as_cape_array_real_out() as *const crate::C::ICapeArrayReal).cast_mut())
6675 };
6676 match result_code {
6677 COBIAERR_NOERROR => {Ok(())},
6678 _ => Err(COBIAError::from_object(result_code,self))
6679 }
6680 }
6681
6682 pub fn get_two_phase_prop<TypeOfProperty:CapeStringProviderIn,TypeOfPhaseLabels:CapeArrayStringProviderIn,TypeOfBasis:CapeStringProviderIn,TypeOfResults:CapeArrayRealProviderOut>(&self,property:&TypeOfProperty,phase_labels:&TypeOfPhaseLabels,basis:&TypeOfBasis,results:&mut TypeOfResults) -> Result<(),COBIAError> {
6683 let result_code = unsafe {
6684 ((*(*self.interface).vTbl).GetTwoPhaseProp.unwrap())((*self.interface).me,(&property.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&phase_labels.as_cape_array_string_in() as *const crate::C::ICapeArrayString).cast_mut(),(&basis.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&results.as_cape_array_real_out() as *const crate::C::ICapeArrayReal).cast_mut())
6685 };
6686 match result_code {
6687 COBIAERR_NOERROR => {Ok(())},
6688 _ => Err(COBIAError::from_object(result_code,self))
6689 }
6690 }
6691
6692 pub fn set_overall_prop<TypeOfProperty:CapeStringProviderIn,TypeOfBasis:CapeStringProviderIn,TypeOfValues:CapeArrayRealProviderIn>(&self,property:&TypeOfProperty,basis:&TypeOfBasis,values:&TypeOfValues) -> Result<(),COBIAError> {
6693 let result_code = unsafe {
6694 ((*(*self.interface).vTbl).SetOverallProp.unwrap())((*self.interface).me,(&property.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&basis.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&values.as_cape_array_real_in() as *const crate::C::ICapeArrayReal).cast_mut())
6695 };
6696 match result_code {
6697 COBIAERR_NOERROR => {Ok(())},
6698 _ => Err(COBIAError::from_object(result_code,self))
6699 }
6700 }
6701
6702 pub fn set_present_phases<TypeOfPhaseLabels:CapeArrayStringProviderIn,TypeOfPhaseStatus:CapeArrayEnumerationProviderIn>(&self,phase_labels:&TypeOfPhaseLabels,phase_status:&TypeOfPhaseStatus) -> Result<(),COBIAError> {
6703 let result_code = unsafe {
6704 ((*(*self.interface).vTbl).SetPresentPhases.unwrap())((*self.interface).me,(&phase_labels.as_cape_array_string_in() as *const crate::C::ICapeArrayString).cast_mut(),(&phase_status.as_cape_array_enumeration_in() as *const crate::C::ICapeArrayEnumeration).cast_mut())
6705 };
6706 match result_code {
6707 COBIAERR_NOERROR => {Ok(())},
6708 _ => Err(COBIAError::from_object(result_code,self))
6709 }
6710 }
6711
6712 pub fn set_single_phase_prop<TypeOfProperty:CapeStringProviderIn,TypeOfPhaseLabel:CapeStringProviderIn,TypeOfBasis:CapeStringProviderIn,TypeOfValues:CapeArrayRealProviderIn>(&self,property:&TypeOfProperty,phase_label:&TypeOfPhaseLabel,basis:&TypeOfBasis,values:&TypeOfValues) -> Result<(),COBIAError> {
6713 let result_code = unsafe {
6714 ((*(*self.interface).vTbl).SetSinglePhaseProp.unwrap())((*self.interface).me,(&property.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&phase_label.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&basis.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&values.as_cape_array_real_in() as *const crate::C::ICapeArrayReal).cast_mut())
6715 };
6716 match result_code {
6717 COBIAERR_NOERROR => {Ok(())},
6718 _ => Err(COBIAError::from_object(result_code,self))
6719 }
6720 }
6721
6722 pub fn set_two_phase_prop<TypeOfProperty:CapeStringProviderIn,TypeOfPhaseLabels:CapeArrayStringProviderIn,TypeOfBasis:CapeStringProviderIn,TypeOfValues:CapeArrayRealProviderIn>(&self,property:&TypeOfProperty,phase_labels:&TypeOfPhaseLabels,basis:&TypeOfBasis,values:&TypeOfValues) -> Result<(),COBIAError> {
6723 let result_code = unsafe {
6724 ((*(*self.interface).vTbl).SetTwoPhaseProp.unwrap())((*self.interface).me,(&property.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&phase_labels.as_cape_array_string_in() as *const crate::C::ICapeArrayString).cast_mut(),(&basis.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&values.as_cape_array_real_in() as *const crate::C::ICapeArrayReal).cast_mut())
6725 };
6726 match result_code {
6727 COBIAERR_NOERROR => {Ok(())},
6728 _ => Err(COBIAError::from_object(result_code,self))
6729 }
6730 }
6731
6732}
6733
6734pub trait ICapeThermoMaterialContext {
6739 fn set_material(&mut self,material:CapeThermoMaterial) -> Result<(),COBIAError>;
6740 fn unset_material(&mut self) -> Result<(),COBIAError>;
6741}
6742
6743pub trait ICapeThermoMaterialContextImpl : ICapeThermoMaterialContext {
6744 type T: ICapeInterfaceImpl+ICapeThermoMaterialContextImpl;
6745
6746 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
6747
6748 fn init_interface() -> crate::C::ICapeInterface {
6750 crate::C::ICapeInterface {
6751 me: std::ptr::null_mut(),
6752 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeThermoMaterialContext_VTable).cast_mut()
6753 as *mut crate::C::ICapeInterface_VTable,
6754 }
6755 }
6756
6757 fn init<Timpl: ICapeThermoMaterialContextImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
6758 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeThermoMaterialContext =
6759 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeThermoMaterialContext;
6760 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
6761 u.add_interface(
6762 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeThermoMaterialContext_UUID),
6763 iface as *mut crate::C::ICapeInterface,
6764 );
6765 }
6766
6767 extern "C" fn raw_set_material(me: *mut std::ffi::c_void,material:*mut C::CAPEOPEN_1_2_ICapeThermoMaterial) -> crate::C::CapeResult {
6768 if material.is_null() {
6769 return COBIAERR_NULLPOINTER;
6770 }
6771 let p = me as *mut Self::T;
6772 let myself=unsafe { &mut *p };
6773 if material.is_null() {
6774 return COBIAERR_NULLPOINTER;
6775 }
6776 let material=CapeThermoMaterial::from_interface_pointer(material);
6777 match myself.set_material(material) {
6778 Ok(_) => COBIAERR_NOERROR,
6779 Err(e) => myself.set_last_error(e,"ICapeThermoMaterialContext::SetMaterial")
6780 }
6781 }
6782
6783 extern "C" fn raw_unset_material(me: *mut std::ffi::c_void) -> crate::C::CapeResult {
6784 let p = me as *mut Self::T;
6785 let myself=unsafe { &mut *p };
6786 match myself.unset_material() {
6787 Ok(_) => COBIAERR_NOERROR,
6788 Err(e) => myself.set_last_error(e,"ICapeThermoMaterialContext::UnsetMaterial")
6789 }
6790 }
6791
6792 const VTABLE: C::CAPEOPEN_1_2_ICapeThermoMaterialContext_VTable =
6793 C::CAPEOPEN_1_2_ICapeThermoMaterialContext_VTable {
6794 base: crate::C::ICapeInterface_VTable {
6795 addReference: Some(Self::T::raw_add_reference),
6796 release: Some(Self::T::raw_release),
6797 queryInterface: Some(Self::T::raw_query_interface),
6798 getLastError: Some(Self::T::raw_get_last_error),
6799 },
6800 SetMaterial: Some(Self::T::raw_set_material),
6801 UnsetMaterial: Some(Self::T::raw_unset_material),
6802 };
6803}
6804
6805#[cape_smart_pointer(ICAPETHERMOMATERIALCONTEXT_UUID)]
6806pub struct CapeThermoMaterialContext {
6807 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeThermoMaterialContext,
6808}
6809
6810impl CapeThermoMaterialContext {
6811
6812 pub fn set_material(&self,material:&CapeThermoMaterial) -> Result<(),COBIAError> {
6813 let result_code = unsafe {
6814 ((*(*self.interface).vTbl).SetMaterial.unwrap())((*self.interface).me,material.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeThermoMaterial)
6815 };
6816 match result_code {
6817 COBIAERR_NOERROR => {Ok(())},
6818 _ => Err(COBIAError::from_object(result_code,self))
6819 }
6820 }
6821
6822 pub fn unset_material(&self) -> Result<(),COBIAError> {
6823 let result_code = unsafe {
6824 ((*(*self.interface).vTbl).UnsetMaterial.unwrap())((*self.interface).me)
6825 };
6826 match result_code {
6827 COBIAERR_NOERROR => {Ok(())},
6828 _ => Err(COBIAError::from_object(result_code,self))
6829 }
6830 }
6831
6832}
6833
6834pub trait ICapeThermoCompounds {
6839 fn get_compound_constant(&mut self,props:&CapeArrayStringIn,comp_ids:&CapeArrayStringIn,contains_missing_values:&mut CapeBoolean,prop_vals:&mut CapeArrayValueOut) -> Result<(),COBIAError>;
6840 fn get_compound_list(&mut self,comp_ids:&mut CapeArrayStringOut,formulae:&mut CapeArrayStringOut,names:&mut CapeArrayStringOut,boil_temps:&mut CapeArrayRealOut,molwts:&mut CapeArrayRealOut,casnos:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
6841 fn get_const_prop_list(&mut self,props:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
6842 fn get_num_compounds(&mut self) -> Result<CapeInteger,COBIAError>;
6843 fn get_pdependent_property(&mut self,props:&CapeArrayStringIn,pressure:CapeReal,comp_ids:&CapeArrayStringIn,contains_missing_values:&mut CapeBoolean,prop_vals:&mut CapeArrayRealOut) -> Result<(),COBIAError>;
6844 fn get_pdependent_prop_list(&mut self,props:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
6845 fn get_tdependent_property(&mut self,props:&CapeArrayStringIn,temperature:CapeReal,comp_ids:&CapeArrayStringIn,contains_missing_values:&mut CapeBoolean,prop_vals:&mut CapeArrayRealOut) -> Result<(),COBIAError>;
6846 fn get_tdependent_prop_list(&mut self,props:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
6847}
6848
6849pub trait ICapeThermoCompoundsImpl : ICapeThermoCompounds {
6850 type T: ICapeInterfaceImpl+ICapeThermoCompoundsImpl;
6851
6852 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
6853
6854 fn init_interface() -> crate::C::ICapeInterface {
6856 crate::C::ICapeInterface {
6857 me: std::ptr::null_mut(),
6858 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeThermoCompounds_VTable).cast_mut()
6859 as *mut crate::C::ICapeInterface_VTable,
6860 }
6861 }
6862
6863 fn init<Timpl: ICapeThermoCompoundsImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
6864 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeThermoCompounds =
6865 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeThermoCompounds;
6866 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
6867 u.add_interface(
6868 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeThermoCompounds_UUID),
6869 iface as *mut crate::C::ICapeInterface,
6870 );
6871 }
6872
6873 extern "C" fn raw_get_compound_constant(me: *mut std::ffi::c_void,props:*mut crate::C::ICapeArrayString,comp_ids:*mut crate::C::ICapeArrayString,contains_missing_values:*mut CapeBoolean,prop_vals:*mut crate::C::ICapeArrayValue) -> crate::C::CapeResult {
6874 if contains_missing_values.is_null()||prop_vals.is_null() {
6875 return COBIAERR_NULLPOINTER;
6876 }
6877 let p = me as *mut Self::T;
6878 let myself=unsafe { &mut *p };
6879 if prop_vals.is_null() {
6880 return COBIAERR_NULLPOINTER;
6881 }
6882 let props=CapeArrayStringIn::new(&props);
6883 let comp_ids=CapeArrayStringIn::new(&comp_ids);
6884 let mut _contains_missing_values:CapeBoolean=false as CapeBoolean;
6885 let mut prop_vals=unsafe{*((&prop_vals as *const *mut crate::C::ICapeArrayValue) as *mut *mut crate::C::ICapeArrayValue)};
6886 let mut prop_vals=CapeArrayValueOut::new(&mut prop_vals);
6887 match myself.get_compound_constant(&props,&comp_ids,&mut _contains_missing_values,&mut prop_vals) {
6888 Ok(_) => {
6889 unsafe{*contains_missing_values=_contains_missing_values;}
6890 COBIAERR_NOERROR
6891 },
6892 Err(e) => myself.set_last_error(e,"ICapeThermoCompounds::GetCompoundConstant")
6893 }
6894 }
6895
6896 extern "C" fn raw_get_compound_list(me: *mut std::ffi::c_void,comp_ids:*mut crate::C::ICapeArrayString,formulae:*mut crate::C::ICapeArrayString,names:*mut crate::C::ICapeArrayString,boil_temps:*mut crate::C::ICapeArrayReal,molwts:*mut crate::C::ICapeArrayReal,casnos:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
6897 if comp_ids.is_null()||formulae.is_null()||names.is_null()||boil_temps.is_null()||molwts.is_null()||casnos.is_null() {
6898 return COBIAERR_NULLPOINTER;
6899 }
6900 let p = me as *mut Self::T;
6901 let myself=unsafe { &mut *p };
6902 if comp_ids.is_null()||formulae.is_null()||names.is_null()||boil_temps.is_null()||molwts.is_null()||casnos.is_null() {
6903 return COBIAERR_NULLPOINTER;
6904 }
6905 let mut comp_ids=unsafe{*((&comp_ids as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
6906 let mut comp_ids=CapeArrayStringOut::new(&mut comp_ids);
6907 let mut formulae=unsafe{*((&formulae as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
6908 let mut formulae=CapeArrayStringOut::new(&mut formulae);
6909 let mut names=unsafe{*((&names as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
6910 let mut names=CapeArrayStringOut::new(&mut names);
6911 let mut boil_temps=unsafe{*((&boil_temps as *const *mut crate::C::ICapeArrayReal) as *mut *mut crate::C::ICapeArrayReal)};
6912 let mut boil_temps=CapeArrayRealOut::new(&mut boil_temps);
6913 let mut molwts=unsafe{*((&molwts as *const *mut crate::C::ICapeArrayReal) as *mut *mut crate::C::ICapeArrayReal)};
6914 let mut molwts=CapeArrayRealOut::new(&mut molwts);
6915 let mut casnos=unsafe{*((&casnos as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
6916 let mut casnos=CapeArrayStringOut::new(&mut casnos);
6917 match myself.get_compound_list(&mut comp_ids,&mut formulae,&mut names,&mut boil_temps,&mut molwts,&mut casnos) {
6918 Ok(_) => COBIAERR_NOERROR,
6919 Err(e) => myself.set_last_error(e,"ICapeThermoCompounds::GetCompoundList")
6920 }
6921 }
6922
6923 extern "C" fn raw_get_const_prop_list(me: *mut std::ffi::c_void,props:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
6924 if props.is_null() {
6925 return COBIAERR_NULLPOINTER;
6926 }
6927 let p = me as *mut Self::T;
6928 let myself=unsafe { &mut *p };
6929 if props.is_null() {
6930 return COBIAERR_NULLPOINTER;
6931 }
6932 let mut props=unsafe{*((&props as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
6933 let mut props=CapeArrayStringOut::new(&mut props);
6934 match myself.get_const_prop_list(&mut props) {
6935 Ok(_) => COBIAERR_NOERROR,
6936 Err(e) => myself.set_last_error(e,"ICapeThermoCompounds::GetConstPropList")
6937 }
6938 }
6939
6940 extern "C" fn raw_get_num_compounds(me: *mut std::ffi::c_void,num:*mut CapeInteger) -> crate::C::CapeResult {
6941 if num.is_null() {
6942 return COBIAERR_NULLPOINTER;
6943 }
6944 let p = me as *mut Self::T;
6945 let myself=unsafe { &mut *p };
6946 match myself.get_num_compounds() {
6947 Ok(_num) => {
6948 unsafe{*num=_num;}
6949 COBIAERR_NOERROR
6950 },
6951 Err(e) => myself.set_last_error(e,"ICapeThermoCompounds::GetNumCompounds")
6952 }
6953 }
6954
6955 extern "C" fn raw_get_p_dependent_property(me: *mut std::ffi::c_void,props:*mut crate::C::ICapeArrayString,pressure:CapeReal,comp_ids:*mut crate::C::ICapeArrayString,contains_missing_values:*mut CapeBoolean,prop_vals:*mut crate::C::ICapeArrayReal) -> crate::C::CapeResult {
6956 if contains_missing_values.is_null()||prop_vals.is_null() {
6957 return COBIAERR_NULLPOINTER;
6958 }
6959 let p = me as *mut Self::T;
6960 let myself=unsafe { &mut *p };
6961 if prop_vals.is_null() {
6962 return COBIAERR_NULLPOINTER;
6963 }
6964 let props=CapeArrayStringIn::new(&props);
6965 let comp_ids=CapeArrayStringIn::new(&comp_ids);
6966 let mut _contains_missing_values:CapeBoolean=false as CapeBoolean;
6967 let mut prop_vals=unsafe{*((&prop_vals as *const *mut crate::C::ICapeArrayReal) as *mut *mut crate::C::ICapeArrayReal)};
6968 let mut prop_vals=CapeArrayRealOut::new(&mut prop_vals);
6969 match myself.get_pdependent_property(&props,pressure,&comp_ids,&mut _contains_missing_values,&mut prop_vals) {
6970 Ok(_) => {
6971 unsafe{*contains_missing_values=_contains_missing_values;}
6972 COBIAERR_NOERROR
6973 },
6974 Err(e) => myself.set_last_error(e,"ICapeThermoCompounds::GetPDependentProperty")
6975 }
6976 }
6977
6978 extern "C" fn raw_get_p_dependent_prop_list(me: *mut std::ffi::c_void,props:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
6979 if props.is_null() {
6980 return COBIAERR_NULLPOINTER;
6981 }
6982 let p = me as *mut Self::T;
6983 let myself=unsafe { &mut *p };
6984 if props.is_null() {
6985 return COBIAERR_NULLPOINTER;
6986 }
6987 let mut props=unsafe{*((&props as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
6988 let mut props=CapeArrayStringOut::new(&mut props);
6989 match myself.get_pdependent_prop_list(&mut props) {
6990 Ok(_) => COBIAERR_NOERROR,
6991 Err(e) => myself.set_last_error(e,"ICapeThermoCompounds::GetPDependentPropList")
6992 }
6993 }
6994
6995 extern "C" fn raw_get_t_dependent_property(me: *mut std::ffi::c_void,props:*mut crate::C::ICapeArrayString,temperature:CapeReal,comp_ids:*mut crate::C::ICapeArrayString,contains_missing_values:*mut CapeBoolean,prop_vals:*mut crate::C::ICapeArrayReal) -> crate::C::CapeResult {
6996 if contains_missing_values.is_null()||prop_vals.is_null() {
6997 return COBIAERR_NULLPOINTER;
6998 }
6999 let p = me as *mut Self::T;
7000 let myself=unsafe { &mut *p };
7001 if prop_vals.is_null() {
7002 return COBIAERR_NULLPOINTER;
7003 }
7004 let props=CapeArrayStringIn::new(&props);
7005 let comp_ids=CapeArrayStringIn::new(&comp_ids);
7006 let mut _contains_missing_values:CapeBoolean=false as CapeBoolean;
7007 let mut prop_vals=unsafe{*((&prop_vals as *const *mut crate::C::ICapeArrayReal) as *mut *mut crate::C::ICapeArrayReal)};
7008 let mut prop_vals=CapeArrayRealOut::new(&mut prop_vals);
7009 match myself.get_tdependent_property(&props,temperature,&comp_ids,&mut _contains_missing_values,&mut prop_vals) {
7010 Ok(_) => {
7011 unsafe{*contains_missing_values=_contains_missing_values;}
7012 COBIAERR_NOERROR
7013 },
7014 Err(e) => myself.set_last_error(e,"ICapeThermoCompounds::GetTDependentProperty")
7015 }
7016 }
7017
7018 extern "C" fn raw_get_t_dependent_prop_list(me: *mut std::ffi::c_void,props:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
7019 if props.is_null() {
7020 return COBIAERR_NULLPOINTER;
7021 }
7022 let p = me as *mut Self::T;
7023 let myself=unsafe { &mut *p };
7024 if props.is_null() {
7025 return COBIAERR_NULLPOINTER;
7026 }
7027 let mut props=unsafe{*((&props as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
7028 let mut props=CapeArrayStringOut::new(&mut props);
7029 match myself.get_tdependent_prop_list(&mut props) {
7030 Ok(_) => COBIAERR_NOERROR,
7031 Err(e) => myself.set_last_error(e,"ICapeThermoCompounds::GetTDependentPropList")
7032 }
7033 }
7034
7035 const VTABLE: C::CAPEOPEN_1_2_ICapeThermoCompounds_VTable =
7036 C::CAPEOPEN_1_2_ICapeThermoCompounds_VTable {
7037 base: crate::C::ICapeInterface_VTable {
7038 addReference: Some(Self::T::raw_add_reference),
7039 release: Some(Self::T::raw_release),
7040 queryInterface: Some(Self::T::raw_query_interface),
7041 getLastError: Some(Self::T::raw_get_last_error),
7042 },
7043 GetCompoundConstant: Some(Self::T::raw_get_compound_constant),
7044 GetCompoundList: Some(Self::T::raw_get_compound_list),
7045 getConstPropList: Some(Self::T::raw_get_const_prop_list),
7046 getNumCompounds: Some(Self::T::raw_get_num_compounds),
7047 GetPDependentProperty: Some(Self::T::raw_get_p_dependent_property),
7048 getPDependentPropList: Some(Self::T::raw_get_p_dependent_prop_list),
7049 GetTDependentProperty: Some(Self::T::raw_get_t_dependent_property),
7050 getTDependentPropList: Some(Self::T::raw_get_t_dependent_prop_list),
7051 };
7052}
7053
7054#[cape_smart_pointer(ICAPETHERMOCOMPOUNDS_UUID)]
7055pub struct CapeThermoCompounds {
7056 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeThermoCompounds,
7057}
7058
7059impl CapeThermoCompounds {
7060
7061 pub fn get_compound_constant<TypeOfProps:CapeArrayStringProviderIn,TypeOfCompIds:CapeArrayStringProviderIn,TypeOfPropVals:CapeArrayValueProviderOut>(&self,props:&TypeOfProps,comp_ids:&TypeOfCompIds,contains_missing_values:&mut CapeBoolean,prop_vals:&mut TypeOfPropVals) -> Result<(),COBIAError> {
7062 let result_code = unsafe {
7063 ((*(*self.interface).vTbl).GetCompoundConstant.unwrap())((*self.interface).me,(&props.as_cape_array_string_in() as *const crate::C::ICapeArrayString).cast_mut(),(&comp_ids.as_cape_array_string_in() as *const crate::C::ICapeArrayString).cast_mut(),contains_missing_values as *mut CapeBoolean,(&prop_vals.as_cape_array_value_out() as *const crate::C::ICapeArrayValue).cast_mut())
7064 };
7065 match result_code {
7066 COBIAERR_NOERROR => {Ok(())},
7067 _ => Err(COBIAError::from_object(result_code,self))
7068 }
7069 }
7070
7071 pub fn get_compound_list<TypeOfCompIds:CapeArrayStringProviderOut,TypeOfFormulae:CapeArrayStringProviderOut,TypeOfNames:CapeArrayStringProviderOut,TypeOfBoilTemps:CapeArrayRealProviderOut,TypeOfMolwts:CapeArrayRealProviderOut,TypeOfCasnos:CapeArrayStringProviderOut>(&self,comp_ids:&mut TypeOfCompIds,formulae:&mut TypeOfFormulae,names:&mut TypeOfNames,boil_temps:&mut TypeOfBoilTemps,molwts:&mut TypeOfMolwts,casnos:&mut TypeOfCasnos) -> Result<(),COBIAError> {
7072 let result_code = unsafe {
7073 ((*(*self.interface).vTbl).GetCompoundList.unwrap())((*self.interface).me,(&comp_ids.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut(),(&formulae.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut(),(&names.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut(),(&boil_temps.as_cape_array_real_out() as *const crate::C::ICapeArrayReal).cast_mut(),(&molwts.as_cape_array_real_out() as *const crate::C::ICapeArrayReal).cast_mut(),(&casnos.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
7074 };
7075 match result_code {
7076 COBIAERR_NOERROR => {Ok(())},
7077 _ => Err(COBIAError::from_object(result_code,self))
7078 }
7079 }
7080
7081 pub fn get_const_prop_list<TypeOfProps:CapeArrayStringProviderOut>(&self,props:&mut TypeOfProps) -> Result<(),COBIAError> {
7082 let result_code = unsafe {
7083 ((*(*self.interface).vTbl).getConstPropList.unwrap())((*self.interface).me,(&props.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
7084 };
7085 match result_code {
7086 COBIAERR_NOERROR => {Ok(())},
7087 _ => Err(COBIAError::from_object(result_code,self))
7088 }
7089 }
7090
7091 pub fn get_num_compounds(&self) -> Result<CapeInteger,COBIAError> {
7092 let mut num:CapeInteger=0;
7093 let result_code = unsafe {
7094 ((*(*self.interface).vTbl).getNumCompounds.unwrap())((*self.interface).me,&mut num as *mut CapeInteger)
7095 };
7096 match result_code {
7097 COBIAERR_NOERROR => {Ok(num)},
7098 _ => Err(COBIAError::from_object(result_code,self))
7099 }
7100 }
7101
7102 pub fn get_pdependent_property<TypeOfProps:CapeArrayStringProviderIn,TypeOfCompIds:CapeArrayStringProviderIn,TypeOfPropVals:CapeArrayRealProviderOut>(&self,props:&TypeOfProps,pressure:CapeReal,comp_ids:&TypeOfCompIds,contains_missing_values:&mut CapeBoolean,prop_vals:&mut TypeOfPropVals) -> Result<(),COBIAError> {
7103 let result_code = unsafe {
7104 ((*(*self.interface).vTbl).GetPDependentProperty.unwrap())((*self.interface).me,(&props.as_cape_array_string_in() as *const crate::C::ICapeArrayString).cast_mut(),pressure,(&comp_ids.as_cape_array_string_in() as *const crate::C::ICapeArrayString).cast_mut(),contains_missing_values as *mut CapeBoolean,(&prop_vals.as_cape_array_real_out() as *const crate::C::ICapeArrayReal).cast_mut())
7105 };
7106 match result_code {
7107 COBIAERR_NOERROR => {Ok(())},
7108 _ => Err(COBIAError::from_object(result_code,self))
7109 }
7110 }
7111
7112 pub fn get_pdependent_prop_list<TypeOfProps:CapeArrayStringProviderOut>(&self,props:&mut TypeOfProps) -> Result<(),COBIAError> {
7113 let result_code = unsafe {
7114 ((*(*self.interface).vTbl).getPDependentPropList.unwrap())((*self.interface).me,(&props.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
7115 };
7116 match result_code {
7117 COBIAERR_NOERROR => {Ok(())},
7118 _ => Err(COBIAError::from_object(result_code,self))
7119 }
7120 }
7121
7122 pub fn get_tdependent_property<TypeOfProps:CapeArrayStringProviderIn,TypeOfCompIds:CapeArrayStringProviderIn,TypeOfPropVals:CapeArrayRealProviderOut>(&self,props:&TypeOfProps,temperature:CapeReal,comp_ids:&TypeOfCompIds,contains_missing_values:&mut CapeBoolean,prop_vals:&mut TypeOfPropVals) -> Result<(),COBIAError> {
7123 let result_code = unsafe {
7124 ((*(*self.interface).vTbl).GetTDependentProperty.unwrap())((*self.interface).me,(&props.as_cape_array_string_in() as *const crate::C::ICapeArrayString).cast_mut(),temperature,(&comp_ids.as_cape_array_string_in() as *const crate::C::ICapeArrayString).cast_mut(),contains_missing_values as *mut CapeBoolean,(&prop_vals.as_cape_array_real_out() as *const crate::C::ICapeArrayReal).cast_mut())
7125 };
7126 match result_code {
7127 COBIAERR_NOERROR => {Ok(())},
7128 _ => Err(COBIAError::from_object(result_code,self))
7129 }
7130 }
7131
7132 pub fn get_tdependent_prop_list<TypeOfProps:CapeArrayStringProviderOut>(&self,props:&mut TypeOfProps) -> Result<(),COBIAError> {
7133 let result_code = unsafe {
7134 ((*(*self.interface).vTbl).getTDependentPropList.unwrap())((*self.interface).me,(&props.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
7135 };
7136 match result_code {
7137 COBIAERR_NOERROR => {Ok(())},
7138 _ => Err(COBIAError::from_object(result_code,self))
7139 }
7140 }
7141
7142}
7143
7144pub trait ICapeThermoPhases {
7149 fn get_num_phases(&mut self) -> Result<CapeInteger,COBIAError>;
7150 fn get_phase_info(&mut self,phase_label:&CapeStringIn,phase_attribute:&CapeStringIn,value:&mut CapeValueOut) -> Result<(),COBIAError>;
7151 fn get_phase_list(&mut self,phase_labels:&mut CapeArrayStringOut,state_of_aggregation:&mut CapeArrayStringOut,key_compound_id:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
7152}
7153
7154pub trait ICapeThermoPhasesImpl : ICapeThermoPhases {
7155 type T: ICapeInterfaceImpl+ICapeThermoPhasesImpl;
7156
7157 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
7158
7159 fn init_interface() -> crate::C::ICapeInterface {
7161 crate::C::ICapeInterface {
7162 me: std::ptr::null_mut(),
7163 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeThermoPhases_VTable).cast_mut()
7164 as *mut crate::C::ICapeInterface_VTable,
7165 }
7166 }
7167
7168 fn init<Timpl: ICapeThermoPhasesImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
7169 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeThermoPhases =
7170 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeThermoPhases;
7171 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
7172 u.add_interface(
7173 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeThermoPhases_UUID),
7174 iface as *mut crate::C::ICapeInterface,
7175 );
7176 }
7177
7178 extern "C" fn raw_get_num_phases(me: *mut std::ffi::c_void,num:*mut CapeInteger) -> crate::C::CapeResult {
7179 if num.is_null() {
7180 return COBIAERR_NULLPOINTER;
7181 }
7182 let p = me as *mut Self::T;
7183 let myself=unsafe { &mut *p };
7184 match myself.get_num_phases() {
7185 Ok(_num) => {
7186 unsafe{*num=_num;}
7187 COBIAERR_NOERROR
7188 },
7189 Err(e) => myself.set_last_error(e,"ICapeThermoPhases::GetNumPhases")
7190 }
7191 }
7192
7193 extern "C" fn raw_get_phase_info(me: *mut std::ffi::c_void,phase_label:*mut crate::C::ICapeString,phase_attribute:*mut crate::C::ICapeString,value:*mut crate::C::ICapeValue) -> crate::C::CapeResult {
7194 if value.is_null() {
7195 return COBIAERR_NULLPOINTER;
7196 }
7197 let p = me as *mut Self::T;
7198 let myself=unsafe { &mut *p };
7199 if value.is_null() {
7200 return COBIAERR_NULLPOINTER;
7201 }
7202 let phase_label=CapeStringIn::new(&phase_label);
7203 let phase_attribute=CapeStringIn::new(&phase_attribute);
7204 let mut value=unsafe{*((&value as *const *mut crate::C::ICapeValue) as *mut *mut crate::C::ICapeValue)};
7205 let mut value=CapeValueOut::new(&mut value);
7206 match myself.get_phase_info(&phase_label,&phase_attribute,&mut value) {
7207 Ok(_) => COBIAERR_NOERROR,
7208 Err(e) => myself.set_last_error(e,"ICapeThermoPhases::GetPhaseInfo")
7209 }
7210 }
7211
7212 extern "C" fn raw_get_phase_list(me: *mut std::ffi::c_void,phase_labels:*mut crate::C::ICapeArrayString,state_of_aggregation:*mut crate::C::ICapeArrayString,key_compound_id:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
7213 if phase_labels.is_null()||state_of_aggregation.is_null()||key_compound_id.is_null() {
7214 return COBIAERR_NULLPOINTER;
7215 }
7216 let p = me as *mut Self::T;
7217 let myself=unsafe { &mut *p };
7218 if phase_labels.is_null()||state_of_aggregation.is_null()||key_compound_id.is_null() {
7219 return COBIAERR_NULLPOINTER;
7220 }
7221 let mut phase_labels=unsafe{*((&phase_labels as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
7222 let mut phase_labels=CapeArrayStringOut::new(&mut phase_labels);
7223 let mut state_of_aggregation=unsafe{*((&state_of_aggregation as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
7224 let mut state_of_aggregation=CapeArrayStringOut::new(&mut state_of_aggregation);
7225 let mut key_compound_id=unsafe{*((&key_compound_id as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
7226 let mut key_compound_id=CapeArrayStringOut::new(&mut key_compound_id);
7227 match myself.get_phase_list(&mut phase_labels,&mut state_of_aggregation,&mut key_compound_id) {
7228 Ok(_) => COBIAERR_NOERROR,
7229 Err(e) => myself.set_last_error(e,"ICapeThermoPhases::GetPhaseList")
7230 }
7231 }
7232
7233 const VTABLE: C::CAPEOPEN_1_2_ICapeThermoPhases_VTable =
7234 C::CAPEOPEN_1_2_ICapeThermoPhases_VTable {
7235 base: crate::C::ICapeInterface_VTable {
7236 addReference: Some(Self::T::raw_add_reference),
7237 release: Some(Self::T::raw_release),
7238 queryInterface: Some(Self::T::raw_query_interface),
7239 getLastError: Some(Self::T::raw_get_last_error),
7240 },
7241 getNumPhases: Some(Self::T::raw_get_num_phases),
7242 GetPhaseInfo: Some(Self::T::raw_get_phase_info),
7243 GetPhaseList: Some(Self::T::raw_get_phase_list),
7244 };
7245}
7246
7247#[cape_smart_pointer(ICAPETHERMOPHASES_UUID)]
7248pub struct CapeThermoPhases {
7249 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeThermoPhases,
7250}
7251
7252impl CapeThermoPhases {
7253
7254 pub fn get_num_phases(&self) -> Result<CapeInteger,COBIAError> {
7255 let mut num:CapeInteger=0;
7256 let result_code = unsafe {
7257 ((*(*self.interface).vTbl).getNumPhases.unwrap())((*self.interface).me,&mut num as *mut CapeInteger)
7258 };
7259 match result_code {
7260 COBIAERR_NOERROR => {Ok(num)},
7261 _ => Err(COBIAError::from_object(result_code,self))
7262 }
7263 }
7264
7265 pub fn get_phase_info<TypeOfPhaseLabel:CapeStringProviderIn,TypeOfPhaseAttribute:CapeStringProviderIn,TypeOfValue:CapeValueProviderOut>(&self,phase_label:&TypeOfPhaseLabel,phase_attribute:&TypeOfPhaseAttribute,value:&mut TypeOfValue) -> Result<(),COBIAError> {
7266 let result_code = unsafe {
7267 ((*(*self.interface).vTbl).GetPhaseInfo.unwrap())((*self.interface).me,(&phase_label.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&phase_attribute.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&value.as_cape_value_out() as *const crate::C::ICapeValue).cast_mut())
7268 };
7269 match result_code {
7270 COBIAERR_NOERROR => {Ok(())},
7271 _ => Err(COBIAError::from_object(result_code,self))
7272 }
7273 }
7274
7275 pub fn get_phase_list<TypeOfPhaseLabels:CapeArrayStringProviderOut,TypeOfStateOfAggregation:CapeArrayStringProviderOut,TypeOfKeyCompoundId:CapeArrayStringProviderOut>(&self,phase_labels:&mut TypeOfPhaseLabels,state_of_aggregation:&mut TypeOfStateOfAggregation,key_compound_id:&mut TypeOfKeyCompoundId) -> Result<(),COBIAError> {
7276 let result_code = unsafe {
7277 ((*(*self.interface).vTbl).GetPhaseList.unwrap())((*self.interface).me,(&phase_labels.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut(),(&state_of_aggregation.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut(),(&key_compound_id.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
7278 };
7279 match result_code {
7280 COBIAERR_NOERROR => {Ok(())},
7281 _ => Err(COBIAError::from_object(result_code,self))
7282 }
7283 }
7284
7285}
7286
7287pub trait ICapeThermoPropertyRoutine {
7292 fn calc_and_get_ln_phi(&mut self,phase_label:&CapeStringIn,temperature:CapeReal,pressure:CapeReal,mole_fraction:&CapeArrayRealIn,f_flags:CapeInteger,ln_phi:&mut CapeArrayRealOut,ln_phi_dt:&mut CapeArrayRealOut,ln_phi_dp:&mut CapeArrayRealOut,ln_phi_dn:&mut CapeArrayRealOut) -> Result<(),COBIAError>;
7293 fn calc_single_phase_prop(&mut self,props:&CapeArrayStringIn,phase_label:&CapeStringIn) -> Result<(),COBIAError>;
7294 fn calc_two_phase_prop(&mut self,props:&CapeArrayStringIn,phase_labels:&CapeArrayStringIn) -> Result<(),COBIAError>;
7295 fn check_single_phase_prop_spec(&mut self,property:&CapeStringIn,phase_label:&CapeStringIn) -> Result<CapeBoolean,COBIAError>;
7296 fn check_two_phase_prop_spec(&mut self,property:&CapeStringIn,phase_labels:&CapeArrayStringIn) -> Result<CapeBoolean,COBIAError>;
7297 fn get_single_phase_prop_list(&mut self,props:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
7298 fn get_two_phase_prop_list(&mut self,props:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
7299}
7300
7301pub trait ICapeThermoPropertyRoutineImpl : ICapeThermoPropertyRoutine {
7302 type T: ICapeInterfaceImpl+ICapeThermoPropertyRoutineImpl;
7303
7304 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
7305
7306 fn init_interface() -> crate::C::ICapeInterface {
7308 crate::C::ICapeInterface {
7309 me: std::ptr::null_mut(),
7310 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeThermoPropertyRoutine_VTable).cast_mut()
7311 as *mut crate::C::ICapeInterface_VTable,
7312 }
7313 }
7314
7315 fn init<Timpl: ICapeThermoPropertyRoutineImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
7316 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeThermoPropertyRoutine =
7317 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeThermoPropertyRoutine;
7318 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
7319 u.add_interface(
7320 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeThermoPropertyRoutine_UUID),
7321 iface as *mut crate::C::ICapeInterface,
7322 );
7323 }
7324
7325 extern "C" fn raw_calc_and_get_ln_phi(me: *mut std::ffi::c_void,phase_label:*mut crate::C::ICapeString,temperature:CapeReal,pressure:CapeReal,mole_fraction:*mut crate::C::ICapeArrayReal,f_flags:CapeInteger,ln_phi:*mut crate::C::ICapeArrayReal,ln_phi_dt:*mut crate::C::ICapeArrayReal,ln_phi_dp:*mut crate::C::ICapeArrayReal,ln_phi_dn:*mut crate::C::ICapeArrayReal) -> crate::C::CapeResult {
7326 if ln_phi.is_null()||ln_phi_dt.is_null()||ln_phi_dp.is_null()||ln_phi_dn.is_null() {
7327 return COBIAERR_NULLPOINTER;
7328 }
7329 let p = me as *mut Self::T;
7330 let myself=unsafe { &mut *p };
7331 if ln_phi.is_null()||ln_phi_dt.is_null()||ln_phi_dp.is_null()||ln_phi_dn.is_null() {
7332 return COBIAERR_NULLPOINTER;
7333 }
7334 let phase_label=CapeStringIn::new(&phase_label);
7335 let mole_fraction=CapeArrayRealIn::new(&mole_fraction);
7336 let mut ln_phi=unsafe{*((&ln_phi as *const *mut crate::C::ICapeArrayReal) as *mut *mut crate::C::ICapeArrayReal)};
7337 let mut ln_phi=CapeArrayRealOut::new(&mut ln_phi);
7338 let mut ln_phi_dt=unsafe{*((&ln_phi_dt as *const *mut crate::C::ICapeArrayReal) as *mut *mut crate::C::ICapeArrayReal)};
7339 let mut ln_phi_dt=CapeArrayRealOut::new(&mut ln_phi_dt);
7340 let mut ln_phi_dp=unsafe{*((&ln_phi_dp as *const *mut crate::C::ICapeArrayReal) as *mut *mut crate::C::ICapeArrayReal)};
7341 let mut ln_phi_dp=CapeArrayRealOut::new(&mut ln_phi_dp);
7342 let mut ln_phi_dn=unsafe{*((&ln_phi_dn as *const *mut crate::C::ICapeArrayReal) as *mut *mut crate::C::ICapeArrayReal)};
7343 let mut ln_phi_dn=CapeArrayRealOut::new(&mut ln_phi_dn);
7344 match myself.calc_and_get_ln_phi(&phase_label,temperature,pressure,&mole_fraction,f_flags,&mut ln_phi,&mut ln_phi_dt,&mut ln_phi_dp,&mut ln_phi_dn) {
7345 Ok(_) => COBIAERR_NOERROR,
7346 Err(e) => myself.set_last_error(e,"ICapeThermoPropertyRoutine::CalcAndGetLnPhi")
7347 }
7348 }
7349
7350 extern "C" fn raw_calc_single_phase_prop(me: *mut std::ffi::c_void,props:*mut crate::C::ICapeArrayString,phase_label:*mut crate::C::ICapeString) -> crate::C::CapeResult {
7351 let p = me as *mut Self::T;
7352 let myself=unsafe { &mut *p };
7353 let props=CapeArrayStringIn::new(&props);
7354 let phase_label=CapeStringIn::new(&phase_label);
7355 match myself.calc_single_phase_prop(&props,&phase_label) {
7356 Ok(_) => COBIAERR_NOERROR,
7357 Err(e) => myself.set_last_error(e,"ICapeThermoPropertyRoutine::CalcSinglePhaseProp")
7358 }
7359 }
7360
7361 extern "C" fn raw_calc_two_phase_prop(me: *mut std::ffi::c_void,props:*mut crate::C::ICapeArrayString,phase_labels:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
7362 let p = me as *mut Self::T;
7363 let myself=unsafe { &mut *p };
7364 let props=CapeArrayStringIn::new(&props);
7365 let phase_labels=CapeArrayStringIn::new(&phase_labels);
7366 match myself.calc_two_phase_prop(&props,&phase_labels) {
7367 Ok(_) => COBIAERR_NOERROR,
7368 Err(e) => myself.set_last_error(e,"ICapeThermoPropertyRoutine::CalcTwoPhaseProp")
7369 }
7370 }
7371
7372 extern "C" fn raw_check_single_phase_prop_spec(me: *mut std::ffi::c_void,property:*mut crate::C::ICapeString,phase_label:*mut crate::C::ICapeString,valid:*mut CapeBoolean) -> crate::C::CapeResult {
7373 if valid.is_null() {
7374 return COBIAERR_NULLPOINTER;
7375 }
7376 let p = me as *mut Self::T;
7377 let myself=unsafe { &mut *p };
7378 let property=CapeStringIn::new(&property);
7379 let phase_label=CapeStringIn::new(&phase_label);
7380 match myself.check_single_phase_prop_spec(&property,&phase_label) {
7381 Ok(_valid) => {
7382 unsafe{*valid=_valid;}
7383 COBIAERR_NOERROR
7384 },
7385 Err(e) => myself.set_last_error(e,"ICapeThermoPropertyRoutine::CheckSinglePhasePropSpec")
7386 }
7387 }
7388
7389 extern "C" fn raw_check_two_phase_prop_spec(me: *mut std::ffi::c_void,property:*mut crate::C::ICapeString,phase_labels:*mut crate::C::ICapeArrayString,valid:*mut CapeBoolean) -> crate::C::CapeResult {
7390 if valid.is_null() {
7391 return COBIAERR_NULLPOINTER;
7392 }
7393 let p = me as *mut Self::T;
7394 let myself=unsafe { &mut *p };
7395 let property=CapeStringIn::new(&property);
7396 let phase_labels=CapeArrayStringIn::new(&phase_labels);
7397 match myself.check_two_phase_prop_spec(&property,&phase_labels) {
7398 Ok(_valid) => {
7399 unsafe{*valid=_valid;}
7400 COBIAERR_NOERROR
7401 },
7402 Err(e) => myself.set_last_error(e,"ICapeThermoPropertyRoutine::CheckTwoPhasePropSpec")
7403 }
7404 }
7405
7406 extern "C" fn raw_get_single_phase_prop_list(me: *mut std::ffi::c_void,props:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
7407 if props.is_null() {
7408 return COBIAERR_NULLPOINTER;
7409 }
7410 let p = me as *mut Self::T;
7411 let myself=unsafe { &mut *p };
7412 if props.is_null() {
7413 return COBIAERR_NULLPOINTER;
7414 }
7415 let mut props=unsafe{*((&props as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
7416 let mut props=CapeArrayStringOut::new(&mut props);
7417 match myself.get_single_phase_prop_list(&mut props) {
7418 Ok(_) => COBIAERR_NOERROR,
7419 Err(e) => myself.set_last_error(e,"ICapeThermoPropertyRoutine::GetSinglePhasePropList")
7420 }
7421 }
7422
7423 extern "C" fn raw_get_two_phase_prop_list(me: *mut std::ffi::c_void,props:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
7424 if props.is_null() {
7425 return COBIAERR_NULLPOINTER;
7426 }
7427 let p = me as *mut Self::T;
7428 let myself=unsafe { &mut *p };
7429 if props.is_null() {
7430 return COBIAERR_NULLPOINTER;
7431 }
7432 let mut props=unsafe{*((&props as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
7433 let mut props=CapeArrayStringOut::new(&mut props);
7434 match myself.get_two_phase_prop_list(&mut props) {
7435 Ok(_) => COBIAERR_NOERROR,
7436 Err(e) => myself.set_last_error(e,"ICapeThermoPropertyRoutine::GetTwoPhasePropList")
7437 }
7438 }
7439
7440 const VTABLE: C::CAPEOPEN_1_2_ICapeThermoPropertyRoutine_VTable =
7441 C::CAPEOPEN_1_2_ICapeThermoPropertyRoutine_VTable {
7442 base: crate::C::ICapeInterface_VTable {
7443 addReference: Some(Self::T::raw_add_reference),
7444 release: Some(Self::T::raw_release),
7445 queryInterface: Some(Self::T::raw_query_interface),
7446 getLastError: Some(Self::T::raw_get_last_error),
7447 },
7448 CalcAndGetLnPhi: Some(Self::T::raw_calc_and_get_ln_phi),
7449 CalcSinglePhaseProp: Some(Self::T::raw_calc_single_phase_prop),
7450 CalcTwoPhaseProp: Some(Self::T::raw_calc_two_phase_prop),
7451 CheckSinglePhasePropSpec: Some(Self::T::raw_check_single_phase_prop_spec),
7452 CheckTwoPhasePropSpec: Some(Self::T::raw_check_two_phase_prop_spec),
7453 getSinglePhasePropList: Some(Self::T::raw_get_single_phase_prop_list),
7454 getTwoPhasePropList: Some(Self::T::raw_get_two_phase_prop_list),
7455 };
7456}
7457
7458#[cape_smart_pointer(ICAPETHERMOPROPERTYROUTINE_UUID)]
7459pub struct CapeThermoPropertyRoutine {
7460 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeThermoPropertyRoutine,
7461}
7462
7463impl CapeThermoPropertyRoutine {
7464
7465 pub fn calc_and_get_ln_phi<TypeOfPhaseLabel:CapeStringProviderIn,TypeOfMoleFraction:CapeArrayRealProviderIn,TypeOfLnPhi:CapeArrayRealProviderOut,TypeOfLnPhiDt:CapeArrayRealProviderOut,TypeOfLnPhiDp:CapeArrayRealProviderOut,TypeOfLnPhiDn:CapeArrayRealProviderOut>(&self,phase_label:&TypeOfPhaseLabel,temperature:CapeReal,pressure:CapeReal,mole_fraction:&TypeOfMoleFraction,f_flags:CapeInteger,ln_phi:&mut TypeOfLnPhi,ln_phi_dt:&mut TypeOfLnPhiDt,ln_phi_dp:&mut TypeOfLnPhiDp,ln_phi_dn:&mut TypeOfLnPhiDn) -> Result<(),COBIAError> {
7466 let result_code = unsafe {
7467 ((*(*self.interface).vTbl).CalcAndGetLnPhi.unwrap())((*self.interface).me,(&phase_label.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),temperature,pressure,(&mole_fraction.as_cape_array_real_in() as *const crate::C::ICapeArrayReal).cast_mut(),f_flags,(&ln_phi.as_cape_array_real_out() as *const crate::C::ICapeArrayReal).cast_mut(),(&ln_phi_dt.as_cape_array_real_out() as *const crate::C::ICapeArrayReal).cast_mut(),(&ln_phi_dp.as_cape_array_real_out() as *const crate::C::ICapeArrayReal).cast_mut(),(&ln_phi_dn.as_cape_array_real_out() as *const crate::C::ICapeArrayReal).cast_mut())
7468 };
7469 match result_code {
7470 COBIAERR_NOERROR => {Ok(())},
7471 _ => Err(COBIAError::from_object(result_code,self))
7472 }
7473 }
7474
7475 pub fn calc_single_phase_prop<TypeOfProps:CapeArrayStringProviderIn,TypeOfPhaseLabel:CapeStringProviderIn>(&self,props:&TypeOfProps,phase_label:&TypeOfPhaseLabel) -> Result<(),COBIAError> {
7476 let result_code = unsafe {
7477 ((*(*self.interface).vTbl).CalcSinglePhaseProp.unwrap())((*self.interface).me,(&props.as_cape_array_string_in() as *const crate::C::ICapeArrayString).cast_mut(),(&phase_label.as_cape_string_in() as *const crate::C::ICapeString).cast_mut())
7478 };
7479 match result_code {
7480 COBIAERR_NOERROR => {Ok(())},
7481 _ => Err(COBIAError::from_object(result_code,self))
7482 }
7483 }
7484
7485 pub fn calc_two_phase_prop<TypeOfProps:CapeArrayStringProviderIn,TypeOfPhaseLabels:CapeArrayStringProviderIn>(&self,props:&TypeOfProps,phase_labels:&TypeOfPhaseLabels) -> Result<(),COBIAError> {
7486 let result_code = unsafe {
7487 ((*(*self.interface).vTbl).CalcTwoPhaseProp.unwrap())((*self.interface).me,(&props.as_cape_array_string_in() as *const crate::C::ICapeArrayString).cast_mut(),(&phase_labels.as_cape_array_string_in() as *const crate::C::ICapeArrayString).cast_mut())
7488 };
7489 match result_code {
7490 COBIAERR_NOERROR => {Ok(())},
7491 _ => Err(COBIAError::from_object(result_code,self))
7492 }
7493 }
7494
7495 pub fn check_single_phase_prop_spec<TypeOfProperty:CapeStringProviderIn,TypeOfPhaseLabel:CapeStringProviderIn>(&self,property:&TypeOfProperty,phase_label:&TypeOfPhaseLabel) -> Result<CapeBoolean,COBIAError> {
7496 let mut valid:CapeBoolean=false as CapeBoolean;
7497 let result_code = unsafe {
7498 ((*(*self.interface).vTbl).CheckSinglePhasePropSpec.unwrap())((*self.interface).me,(&property.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&phase_label.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),&mut valid as *mut CapeBoolean)
7499 };
7500 match result_code {
7501 COBIAERR_NOERROR => {Ok(valid)},
7502 _ => Err(COBIAError::from_object(result_code,self))
7503 }
7504 }
7505
7506 pub fn check_two_phase_prop_spec<TypeOfProperty:CapeStringProviderIn,TypeOfPhaseLabels:CapeArrayStringProviderIn>(&self,property:&TypeOfProperty,phase_labels:&TypeOfPhaseLabels) -> Result<CapeBoolean,COBIAError> {
7507 let mut valid:CapeBoolean=false as CapeBoolean;
7508 let result_code = unsafe {
7509 ((*(*self.interface).vTbl).CheckTwoPhasePropSpec.unwrap())((*self.interface).me,(&property.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&phase_labels.as_cape_array_string_in() as *const crate::C::ICapeArrayString).cast_mut(),&mut valid as *mut CapeBoolean)
7510 };
7511 match result_code {
7512 COBIAERR_NOERROR => {Ok(valid)},
7513 _ => Err(COBIAError::from_object(result_code,self))
7514 }
7515 }
7516
7517 pub fn get_single_phase_prop_list<TypeOfProps:CapeArrayStringProviderOut>(&self,props:&mut TypeOfProps) -> Result<(),COBIAError> {
7518 let result_code = unsafe {
7519 ((*(*self.interface).vTbl).getSinglePhasePropList.unwrap())((*self.interface).me,(&props.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
7520 };
7521 match result_code {
7522 COBIAERR_NOERROR => {Ok(())},
7523 _ => Err(COBIAError::from_object(result_code,self))
7524 }
7525 }
7526
7527 pub fn get_two_phase_prop_list<TypeOfProps:CapeArrayStringProviderOut>(&self,props:&mut TypeOfProps) -> Result<(),COBIAError> {
7528 let result_code = unsafe {
7529 ((*(*self.interface).vTbl).getTwoPhasePropList.unwrap())((*self.interface).me,(&props.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
7530 };
7531 match result_code {
7532 COBIAERR_NOERROR => {Ok(())},
7533 _ => Err(COBIAError::from_object(result_code,self))
7534 }
7535 }
7536
7537}
7538
7539pub trait ICapeThermoEquilibriumRoutine {
7544 fn calc_equilibrium(&mut self,specification1:&CapeArrayStringIn,specification2:&CapeArrayStringIn,solution_type:&CapeStringIn) -> Result<(),COBIAError>;
7545 fn check_equilibrium_spec(&mut self,specification1:&CapeArrayStringIn,specification2:&CapeArrayStringIn,solution_type:&CapeStringIn) -> Result<CapeBoolean,COBIAError>;
7546}
7547
7548pub trait ICapeThermoEquilibriumRoutineImpl : ICapeThermoEquilibriumRoutine {
7549 type T: ICapeInterfaceImpl+ICapeThermoEquilibriumRoutineImpl;
7550
7551 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
7552
7553 fn init_interface() -> crate::C::ICapeInterface {
7555 crate::C::ICapeInterface {
7556 me: std::ptr::null_mut(),
7557 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeThermoEquilibriumRoutine_VTable).cast_mut()
7558 as *mut crate::C::ICapeInterface_VTable,
7559 }
7560 }
7561
7562 fn init<Timpl: ICapeThermoEquilibriumRoutineImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
7563 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeThermoEquilibriumRoutine =
7564 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeThermoEquilibriumRoutine;
7565 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
7566 u.add_interface(
7567 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeThermoEquilibriumRoutine_UUID),
7568 iface as *mut crate::C::ICapeInterface,
7569 );
7570 }
7571
7572 extern "C" fn raw_calc_equilibrium(me: *mut std::ffi::c_void,specification1:*mut crate::C::ICapeArrayString,specification2:*mut crate::C::ICapeArrayString,solution_type:*mut crate::C::ICapeString) -> crate::C::CapeResult {
7573 let p = me as *mut Self::T;
7574 let myself=unsafe { &mut *p };
7575 let specification1=CapeArrayStringIn::new(&specification1);
7576 let specification2=CapeArrayStringIn::new(&specification2);
7577 let solution_type=CapeStringIn::new(&solution_type);
7578 match myself.calc_equilibrium(&specification1,&specification2,&solution_type) {
7579 Ok(_) => COBIAERR_NOERROR,
7580 Err(e) => myself.set_last_error(e,"ICapeThermoEquilibriumRoutine::CalcEquilibrium")
7581 }
7582 }
7583
7584 extern "C" fn raw_check_equilibrium_spec(me: *mut std::ffi::c_void,specification1:*mut crate::C::ICapeArrayString,specification2:*mut crate::C::ICapeArrayString,solution_type:*mut crate::C::ICapeString,is_supported:*mut CapeBoolean) -> crate::C::CapeResult {
7585 if is_supported.is_null() {
7586 return COBIAERR_NULLPOINTER;
7587 }
7588 let p = me as *mut Self::T;
7589 let myself=unsafe { &mut *p };
7590 let specification1=CapeArrayStringIn::new(&specification1);
7591 let specification2=CapeArrayStringIn::new(&specification2);
7592 let solution_type=CapeStringIn::new(&solution_type);
7593 match myself.check_equilibrium_spec(&specification1,&specification2,&solution_type) {
7594 Ok(_is_supported) => {
7595 unsafe{*is_supported=_is_supported;}
7596 COBIAERR_NOERROR
7597 },
7598 Err(e) => myself.set_last_error(e,"ICapeThermoEquilibriumRoutine::CheckEquilibriumSpec")
7599 }
7600 }
7601
7602 const VTABLE: C::CAPEOPEN_1_2_ICapeThermoEquilibriumRoutine_VTable =
7603 C::CAPEOPEN_1_2_ICapeThermoEquilibriumRoutine_VTable {
7604 base: crate::C::ICapeInterface_VTable {
7605 addReference: Some(Self::T::raw_add_reference),
7606 release: Some(Self::T::raw_release),
7607 queryInterface: Some(Self::T::raw_query_interface),
7608 getLastError: Some(Self::T::raw_get_last_error),
7609 },
7610 CalcEquilibrium: Some(Self::T::raw_calc_equilibrium),
7611 CheckEquilibriumSpec: Some(Self::T::raw_check_equilibrium_spec),
7612 };
7613}
7614
7615#[cape_smart_pointer(ICAPETHERMOEQUILIBRIUMROUTINE_UUID)]
7616pub struct CapeThermoEquilibriumRoutine {
7617 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeThermoEquilibriumRoutine,
7618}
7619
7620impl CapeThermoEquilibriumRoutine {
7621
7622 pub fn calc_equilibrium<TypeOfSpecification1:CapeArrayStringProviderIn,TypeOfSpecification2:CapeArrayStringProviderIn,TypeOfSolutionType:CapeStringProviderIn>(&self,specification1:&TypeOfSpecification1,specification2:&TypeOfSpecification2,solution_type:&TypeOfSolutionType) -> Result<(),COBIAError> {
7623 let result_code = unsafe {
7624 ((*(*self.interface).vTbl).CalcEquilibrium.unwrap())((*self.interface).me,(&specification1.as_cape_array_string_in() as *const crate::C::ICapeArrayString).cast_mut(),(&specification2.as_cape_array_string_in() as *const crate::C::ICapeArrayString).cast_mut(),(&solution_type.as_cape_string_in() as *const crate::C::ICapeString).cast_mut())
7625 };
7626 match result_code {
7627 COBIAERR_NOERROR => {Ok(())},
7628 _ => Err(COBIAError::from_object(result_code,self))
7629 }
7630 }
7631
7632 pub fn check_equilibrium_spec<TypeOfSpecification1:CapeArrayStringProviderIn,TypeOfSpecification2:CapeArrayStringProviderIn,TypeOfSolutionType:CapeStringProviderIn>(&self,specification1:&TypeOfSpecification1,specification2:&TypeOfSpecification2,solution_type:&TypeOfSolutionType) -> Result<CapeBoolean,COBIAError> {
7633 let mut is_supported:CapeBoolean=false as CapeBoolean;
7634 let result_code = unsafe {
7635 ((*(*self.interface).vTbl).CheckEquilibriumSpec.unwrap())((*self.interface).me,(&specification1.as_cape_array_string_in() as *const crate::C::ICapeArrayString).cast_mut(),(&specification2.as_cape_array_string_in() as *const crate::C::ICapeArrayString).cast_mut(),(&solution_type.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),&mut is_supported as *mut CapeBoolean)
7636 };
7637 match result_code {
7638 COBIAERR_NOERROR => {Ok(is_supported)},
7639 _ => Err(COBIAError::from_object(result_code,self))
7640 }
7641 }
7642
7643}
7644
7645pub trait ICapeThermoUniversalConstant {
7650 fn get_universal_constant(&mut self,constant_id:&CapeStringIn,constant_value:&mut CapeValueOut) -> Result<(),COBIAError>;
7651 fn get_universal_constant_list(&mut self,constant_id_list:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
7652}
7653
7654pub trait ICapeThermoUniversalConstantImpl : ICapeThermoUniversalConstant {
7655 type T: ICapeInterfaceImpl+ICapeThermoUniversalConstantImpl;
7656
7657 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
7658
7659 fn init_interface() -> crate::C::ICapeInterface {
7661 crate::C::ICapeInterface {
7662 me: std::ptr::null_mut(),
7663 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeThermoUniversalConstant_VTable).cast_mut()
7664 as *mut crate::C::ICapeInterface_VTable,
7665 }
7666 }
7667
7668 fn init<Timpl: ICapeThermoUniversalConstantImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
7669 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeThermoUniversalConstant =
7670 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeThermoUniversalConstant;
7671 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
7672 u.add_interface(
7673 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeThermoUniversalConstant_UUID),
7674 iface as *mut crate::C::ICapeInterface,
7675 );
7676 }
7677
7678 extern "C" fn raw_get_universal_constant(me: *mut std::ffi::c_void,constant_id:*mut crate::C::ICapeString,constant_value:*mut crate::C::ICapeValue) -> crate::C::CapeResult {
7679 if constant_value.is_null() {
7680 return COBIAERR_NULLPOINTER;
7681 }
7682 let p = me as *mut Self::T;
7683 let myself=unsafe { &mut *p };
7684 if constant_value.is_null() {
7685 return COBIAERR_NULLPOINTER;
7686 }
7687 let constant_id=CapeStringIn::new(&constant_id);
7688 let mut constant_value=unsafe{*((&constant_value as *const *mut crate::C::ICapeValue) as *mut *mut crate::C::ICapeValue)};
7689 let mut constant_value=CapeValueOut::new(&mut constant_value);
7690 match myself.get_universal_constant(&constant_id,&mut constant_value) {
7691 Ok(_) => COBIAERR_NOERROR,
7692 Err(e) => myself.set_last_error(e,"ICapeThermoUniversalConstant::GetUniversalConstant")
7693 }
7694 }
7695
7696 extern "C" fn raw_get_universal_constant_list(me: *mut std::ffi::c_void,constant_id_list:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
7697 if constant_id_list.is_null() {
7698 return COBIAERR_NULLPOINTER;
7699 }
7700 let p = me as *mut Self::T;
7701 let myself=unsafe { &mut *p };
7702 if constant_id_list.is_null() {
7703 return COBIAERR_NULLPOINTER;
7704 }
7705 let mut constant_id_list=unsafe{*((&constant_id_list as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
7706 let mut constant_id_list=CapeArrayStringOut::new(&mut constant_id_list);
7707 match myself.get_universal_constant_list(&mut constant_id_list) {
7708 Ok(_) => COBIAERR_NOERROR,
7709 Err(e) => myself.set_last_error(e,"ICapeThermoUniversalConstant::GetUniversalConstantList")
7710 }
7711 }
7712
7713 const VTABLE: C::CAPEOPEN_1_2_ICapeThermoUniversalConstant_VTable =
7714 C::CAPEOPEN_1_2_ICapeThermoUniversalConstant_VTable {
7715 base: crate::C::ICapeInterface_VTable {
7716 addReference: Some(Self::T::raw_add_reference),
7717 release: Some(Self::T::raw_release),
7718 queryInterface: Some(Self::T::raw_query_interface),
7719 getLastError: Some(Self::T::raw_get_last_error),
7720 },
7721 GetUniversalConstant: Some(Self::T::raw_get_universal_constant),
7722 getUniversalConstantList: Some(Self::T::raw_get_universal_constant_list),
7723 };
7724}
7725
7726#[cape_smart_pointer(ICAPETHERMOUNIVERSALCONSTANT_UUID)]
7727pub struct CapeThermoUniversalConstant {
7728 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeThermoUniversalConstant,
7729}
7730
7731impl CapeThermoUniversalConstant {
7732
7733 pub fn get_universal_constant<TypeOfConstantId:CapeStringProviderIn,TypeOfConstantValue:CapeValueProviderOut>(&self,constant_id:&TypeOfConstantId,constant_value:&mut TypeOfConstantValue) -> Result<(),COBIAError> {
7734 let result_code = unsafe {
7735 ((*(*self.interface).vTbl).GetUniversalConstant.unwrap())((*self.interface).me,(&constant_id.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&constant_value.as_cape_value_out() as *const crate::C::ICapeValue).cast_mut())
7736 };
7737 match result_code {
7738 COBIAERR_NOERROR => {Ok(())},
7739 _ => Err(COBIAError::from_object(result_code,self))
7740 }
7741 }
7742
7743 pub fn get_universal_constant_list<TypeOfConstantIdList:CapeArrayStringProviderOut>(&self,constant_id_list:&mut TypeOfConstantIdList) -> Result<(),COBIAError> {
7744 let result_code = unsafe {
7745 ((*(*self.interface).vTbl).getUniversalConstantList.unwrap())((*self.interface).me,(&constant_id_list.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
7746 };
7747 match result_code {
7748 COBIAERR_NOERROR => {Ok(())},
7749 _ => Err(COBIAError::from_object(result_code,self))
7750 }
7751 }
7752
7753}
7754
7755pub trait ICapeThermoPropertyPackageManager {
7760 fn get_property_package_list(&mut self,package_names:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
7761 fn get_property_package(&mut self,package_name:&CapeStringIn) -> Result<crate::CapeObject,COBIAError>;
7762}
7763
7764pub trait ICapeThermoPropertyPackageManagerImpl : ICapeThermoPropertyPackageManager {
7765 type T: ICapeInterfaceImpl+ICapeThermoPropertyPackageManagerImpl;
7766
7767 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
7768
7769 fn init_interface() -> crate::C::ICapeInterface {
7771 crate::C::ICapeInterface {
7772 me: std::ptr::null_mut(),
7773 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeThermoPropertyPackageManager_VTable).cast_mut()
7774 as *mut crate::C::ICapeInterface_VTable,
7775 }
7776 }
7777
7778 fn init<Timpl: ICapeThermoPropertyPackageManagerImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
7779 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeThermoPropertyPackageManager =
7780 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeThermoPropertyPackageManager;
7781 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
7782 u.add_interface(
7783 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeThermoPropertyPackageManager_UUID),
7784 iface as *mut crate::C::ICapeInterface,
7785 );
7786 }
7787
7788 extern "C" fn raw_get_property_package_list(me: *mut std::ffi::c_void,package_names:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
7789 if package_names.is_null() {
7790 return COBIAERR_NULLPOINTER;
7791 }
7792 let p = me as *mut Self::T;
7793 let myself=unsafe { &mut *p };
7794 if package_names.is_null() {
7795 return COBIAERR_NULLPOINTER;
7796 }
7797 let mut package_names=unsafe{*((&package_names as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
7798 let mut package_names=CapeArrayStringOut::new(&mut package_names);
7799 match myself.get_property_package_list(&mut package_names) {
7800 Ok(_) => COBIAERR_NOERROR,
7801 Err(e) => myself.set_last_error(e,"ICapeThermoPropertyPackageManager::GetPropertyPackageList")
7802 }
7803 }
7804
7805 extern "C" fn raw_get_property_package(me: *mut std::ffi::c_void,package_name:*mut crate::C::ICapeString,package:*mut *mut crate::C::ICapeInterface) -> crate::C::CapeResult {
7806 if package.is_null() {
7807 return COBIAERR_NULLPOINTER;
7808 }
7809 let p = me as *mut Self::T;
7810 let myself=unsafe { &mut *p };
7811 if package.is_null() {
7812 return COBIAERR_NULLPOINTER;
7813 }
7814 let package_name=CapeStringIn::new(&package_name);
7815 match myself.get_property_package(&package_name) {
7816 Ok(_package) => {
7817 unsafe{*package=_package.detach();}
7818 COBIAERR_NOERROR
7819 },
7820 Err(e) => myself.set_last_error(e,"ICapeThermoPropertyPackageManager::GetPropertyPackage")
7821 }
7822 }
7823
7824 const VTABLE: C::CAPEOPEN_1_2_ICapeThermoPropertyPackageManager_VTable =
7825 C::CAPEOPEN_1_2_ICapeThermoPropertyPackageManager_VTable {
7826 base: crate::C::ICapeInterface_VTable {
7827 addReference: Some(Self::T::raw_add_reference),
7828 release: Some(Self::T::raw_release),
7829 queryInterface: Some(Self::T::raw_query_interface),
7830 getLastError: Some(Self::T::raw_get_last_error),
7831 },
7832 getPropertyPackageList: Some(Self::T::raw_get_property_package_list),
7833 GetPropertyPackage: Some(Self::T::raw_get_property_package),
7834 };
7835}
7836
7837#[cape_smart_pointer(ICAPETHERMOPROPERTYPACKAGEMANAGER_UUID)]
7838pub struct CapeThermoPropertyPackageManager {
7839 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeThermoPropertyPackageManager,
7840}
7841
7842impl CapeThermoPropertyPackageManager {
7843
7844 pub fn get_property_package_list<TypeOfPackageNames:CapeArrayStringProviderOut>(&self,package_names:&mut TypeOfPackageNames) -> Result<(),COBIAError> {
7845 let result_code = unsafe {
7846 ((*(*self.interface).vTbl).getPropertyPackageList.unwrap())((*self.interface).me,(&package_names.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
7847 };
7848 match result_code {
7849 COBIAERR_NOERROR => {Ok(())},
7850 _ => Err(COBIAError::from_object(result_code,self))
7851 }
7852 }
7853
7854 pub fn get_property_package<TypeOfPackageName:CapeStringProviderIn>(&self,package_name:&TypeOfPackageName) -> Result<crate::CapeObject,COBIAError> {
7855 let mut package: *mut crate::C::ICapeInterface=std::ptr::null_mut();
7856 let result_code = unsafe {
7857 ((*(*self.interface).vTbl).GetPropertyPackage.unwrap())((*self.interface).me,(&package_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),&mut package as *mut *mut crate::C::ICapeInterface)
7858 };
7859 match result_code {
7860 COBIAERR_NOERROR => {Ok(crate::CapeObject::attach(package))},
7861 _ => Err(COBIAError::from_object(result_code,self))
7862 }
7863 }
7864
7865}
7866
7867pub trait ICapeUnit {
7872 fn ports(&mut self) -> Result<CapeCollection<CapeUnitPort>,COBIAError>;
7873 fn get_val_status(&mut self) -> Result<CapeValidationStatus,COBIAError>;
7874 fn calculate(&mut self) -> Result<(),COBIAError>;
7875 fn validate(&mut self,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
7876}
7877
7878pub trait ICapeUnitImpl : ICapeUnit {
7879 type T: ICapeInterfaceImpl+ICapeUnitImpl;
7880
7881 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
7882
7883 fn init_interface() -> crate::C::ICapeInterface {
7885 crate::C::ICapeInterface {
7886 me: std::ptr::null_mut(),
7887 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeUnit_VTable).cast_mut()
7888 as *mut crate::C::ICapeInterface_VTable,
7889 }
7890 }
7891
7892 fn init<Timpl: ICapeUnitImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
7893 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeUnit =
7894 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeUnit;
7895 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
7896 u.add_interface(
7897 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeUnit_UUID),
7898 iface as *mut crate::C::ICapeInterface,
7899 );
7900 }
7901
7902 extern "C" fn raw_ports(me: *mut std::ffi::c_void,ports:*mut *mut C::CAPEOPEN_1_2_ICapeCollection) -> crate::C::CapeResult {
7903 if ports.is_null() {
7904 return COBIAERR_NULLPOINTER;
7905 }
7906 let p = me as *mut Self::T;
7907 let myself=unsafe { &mut *p };
7908 if ports.is_null() {
7909 return COBIAERR_NULLPOINTER;
7910 }
7911 match myself.ports() {
7912 Ok(_ports) => {
7913 unsafe{*ports=_ports.detach();}
7914 COBIAERR_NOERROR
7915 },
7916 Err(e) => myself.set_last_error(e,"ICapeUnit::ports")
7917 }
7918 }
7919
7920 extern "C" fn raw_get_val_status(me: *mut std::ffi::c_void,val_status:*mut C::CAPEOPEN_1_2_CapeValidationStatus) -> crate::C::CapeResult {
7921 if val_status.is_null() {
7922 return COBIAERR_NULLPOINTER;
7923 }
7924 let p = me as *mut Self::T;
7925 let myself=unsafe { &mut *p };
7926 match myself.get_val_status() {
7927 Ok(_val_status) => {
7928 unsafe{*val_status=_val_status as C::CAPEOPEN_1_2_CapeValidationStatus;}
7929 COBIAERR_NOERROR
7930 },
7931 Err(e) => myself.set_last_error(e,"ICapeUnit::GetValStatus")
7932 }
7933 }
7934
7935 extern "C" fn raw_calculate(me: *mut std::ffi::c_void) -> crate::C::CapeResult {
7936 let p = me as *mut Self::T;
7937 let myself=unsafe { &mut *p };
7938 match myself.calculate() {
7939 Ok(_) => COBIAERR_NOERROR,
7940 Err(e) => myself.set_last_error(e,"ICapeUnit::Calculate")
7941 }
7942 }
7943
7944 extern "C" fn raw_validate(me: *mut std::ffi::c_void,message:*mut crate::C::ICapeString,is_valid:*mut CapeBoolean) -> crate::C::CapeResult {
7945 if message.is_null()||is_valid.is_null() {
7946 return COBIAERR_NULLPOINTER;
7947 }
7948 let p = me as *mut Self::T;
7949 let myself=unsafe { &mut *p };
7950 if message.is_null() {
7951 return COBIAERR_NULLPOINTER;
7952 }
7953 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
7954 let mut message=CapeStringOut::new(&mut message);
7955 match myself.validate(&mut message) {
7956 Ok(_is_valid) => {
7957 unsafe{*is_valid=_is_valid;}
7958 COBIAERR_NOERROR
7959 },
7960 Err(e) => myself.set_last_error(e,"ICapeUnit::Validate")
7961 }
7962 }
7963
7964 const VTABLE: C::CAPEOPEN_1_2_ICapeUnit_VTable =
7965 C::CAPEOPEN_1_2_ICapeUnit_VTable {
7966 base: crate::C::ICapeInterface_VTable {
7967 addReference: Some(Self::T::raw_add_reference),
7968 release: Some(Self::T::raw_release),
7969 queryInterface: Some(Self::T::raw_query_interface),
7970 getLastError: Some(Self::T::raw_get_last_error),
7971 },
7972 ports: Some(Self::T::raw_ports),
7973 getValStatus: Some(Self::T::raw_get_val_status),
7974 Calculate: Some(Self::T::raw_calculate),
7975 Validate: Some(Self::T::raw_validate),
7976 };
7977}
7978
7979#[cape_smart_pointer(ICAPEUNIT_UUID)]
7980pub struct CapeUnit {
7981 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeUnit,
7982}
7983
7984impl CapeUnit {
7985
7986 pub fn ports(&self) -> Result<CapeCollection<CapeUnitPort>,COBIAError> {
7987 let mut ports: *mut C::CAPEOPEN_1_2_ICapeCollection=std::ptr::null_mut();
7988 let result_code = unsafe {
7989 ((*(*self.interface).vTbl).ports.unwrap())((*self.interface).me,&mut ports as *mut *mut C::CAPEOPEN_1_2_ICapeCollection)
7990 };
7991 match result_code {
7992 COBIAERR_NOERROR => {Ok(CapeCollection::<CapeUnitPort>::attach(ports))},
7993 _ => Err(COBIAError::from_object(result_code,self))
7994 }
7995 }
7996
7997 pub fn get_val_status(&self) -> Result<CapeValidationStatus,COBIAError> {
7998 let mut val_status:C::CAPEOPEN_1_2_CapeValidationStatus=0;
7999 let result_code = unsafe {
8000 ((*(*self.interface).vTbl).getValStatus.unwrap())((*self.interface).me,&mut val_status as *mut C::CAPEOPEN_1_2_CapeValidationStatus)
8001 };
8002 let val_status=match CapeValidationStatus::from(val_status) {
8003 Some(_val_status) => _val_status,
8004 None => {return Err(COBIAError::Message("Invalid enumeration value".to_string()));}
8005 };
8006 match result_code {
8007 COBIAERR_NOERROR => {Ok(val_status)},
8008 _ => Err(COBIAError::from_object(result_code,self))
8009 }
8010 }
8011
8012 pub fn calculate(&self) -> Result<(),COBIAError> {
8013 let result_code = unsafe {
8014 ((*(*self.interface).vTbl).Calculate.unwrap())((*self.interface).me)
8015 };
8016 match result_code {
8017 COBIAERR_NOERROR => {Ok(())},
8018 _ => Err(COBIAError::from_object(result_code,self))
8019 }
8020 }
8021
8022 pub fn validate<TypeOfMessage:CapeStringProviderOut>(&self,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
8023 let mut is_valid:CapeBoolean=false as CapeBoolean;
8024 let result_code = unsafe {
8025 ((*(*self.interface).vTbl).Validate.unwrap())((*self.interface).me,(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_valid as *mut CapeBoolean)
8026 };
8027 match result_code {
8028 COBIAERR_NOERROR => {Ok(is_valid)},
8029 _ => Err(COBIAError::from_object(result_code,self))
8030 }
8031 }
8032
8033}
8034
8035pub trait ICapeUnitPort {
8040 fn get_port_type(&mut self) -> Result<CapePortType,COBIAError>;
8041 fn get_direction(&mut self) -> Result<CapePortDirection,COBIAError>;
8042 fn get_connected_object(&mut self) -> Result<crate::CapeObject,COBIAError>;
8043 fn connect(&mut self,object_to_connect:crate::CapeObject) -> Result<(),COBIAError>;
8044 fn disconnect(&mut self) -> Result<(),COBIAError>;
8045}
8046
8047pub trait ICapeUnitPortImpl : ICapeUnitPort {
8048 type T: ICapeInterfaceImpl+ICapeUnitPortImpl;
8049
8050 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
8051
8052 fn init_interface() -> crate::C::ICapeInterface {
8054 crate::C::ICapeInterface {
8055 me: std::ptr::null_mut(),
8056 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeUnitPort_VTable).cast_mut()
8057 as *mut crate::C::ICapeInterface_VTable,
8058 }
8059 }
8060
8061 fn init<Timpl: ICapeUnitPortImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
8062 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeUnitPort =
8063 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeUnitPort;
8064 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
8065 u.add_interface(
8066 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeUnitPort_UUID),
8067 iface as *mut crate::C::ICapeInterface,
8068 );
8069 }
8070
8071 extern "C" fn raw_get_port_type(me: *mut std::ffi::c_void,port_type:*mut C::CAPEOPEN_1_2_CapePortType) -> crate::C::CapeResult {
8072 if port_type.is_null() {
8073 return COBIAERR_NULLPOINTER;
8074 }
8075 let p = me as *mut Self::T;
8076 let myself=unsafe { &mut *p };
8077 match myself.get_port_type() {
8078 Ok(_port_type) => {
8079 unsafe{*port_type=_port_type as C::CAPEOPEN_1_2_CapePortType;}
8080 COBIAERR_NOERROR
8081 },
8082 Err(e) => myself.set_last_error(e,"ICapeUnitPort::GetPortType")
8083 }
8084 }
8085
8086 extern "C" fn raw_get_direction(me: *mut std::ffi::c_void,port_direction:*mut C::CAPEOPEN_1_2_CapePortDirection) -> crate::C::CapeResult {
8087 if port_direction.is_null() {
8088 return COBIAERR_NULLPOINTER;
8089 }
8090 let p = me as *mut Self::T;
8091 let myself=unsafe { &mut *p };
8092 match myself.get_direction() {
8093 Ok(_port_direction) => {
8094 unsafe{*port_direction=_port_direction as C::CAPEOPEN_1_2_CapePortDirection;}
8095 COBIAERR_NOERROR
8096 },
8097 Err(e) => myself.set_last_error(e,"ICapeUnitPort::GetDirection")
8098 }
8099 }
8100
8101 extern "C" fn raw_get_connected_object(me: *mut std::ffi::c_void,connected_object:*mut *mut crate::C::ICapeInterface) -> crate::C::CapeResult {
8102 if connected_object.is_null() {
8103 return COBIAERR_NULLPOINTER;
8104 }
8105 let p = me as *mut Self::T;
8106 let myself=unsafe { &mut *p };
8107 if connected_object.is_null() {
8108 return COBIAERR_NULLPOINTER;
8109 }
8110 match myself.get_connected_object() {
8111 Ok(_connected_object) => {
8112 unsafe{*connected_object=_connected_object.detach();}
8113 COBIAERR_NOERROR
8114 },
8115 Err(e) => myself.set_last_error(e,"ICapeUnitPort::GetConnectedObject")
8116 }
8117 }
8118
8119 extern "C" fn raw_connect(me: *mut std::ffi::c_void,object_to_connect:*mut crate::C::ICapeInterface) -> crate::C::CapeResult {
8120 if object_to_connect.is_null() {
8121 return COBIAERR_NULLPOINTER;
8122 }
8123 let p = me as *mut Self::T;
8124 let myself=unsafe { &mut *p };
8125 if object_to_connect.is_null() {
8126 return COBIAERR_NULLPOINTER;
8127 }
8128 let object_to_connect=crate::CapeObject::from_interface_pointer(object_to_connect);
8129 match myself.connect(object_to_connect) {
8130 Ok(_) => COBIAERR_NOERROR,
8131 Err(e) => myself.set_last_error(e,"ICapeUnitPort::Connect")
8132 }
8133 }
8134
8135 extern "C" fn raw_disconnect(me: *mut std::ffi::c_void) -> crate::C::CapeResult {
8136 let p = me as *mut Self::T;
8137 let myself=unsafe { &mut *p };
8138 match myself.disconnect() {
8139 Ok(_) => COBIAERR_NOERROR,
8140 Err(e) => myself.set_last_error(e,"ICapeUnitPort::Disconnect")
8141 }
8142 }
8143
8144 const VTABLE: C::CAPEOPEN_1_2_ICapeUnitPort_VTable =
8145 C::CAPEOPEN_1_2_ICapeUnitPort_VTable {
8146 base: crate::C::ICapeInterface_VTable {
8147 addReference: Some(Self::T::raw_add_reference),
8148 release: Some(Self::T::raw_release),
8149 queryInterface: Some(Self::T::raw_query_interface),
8150 getLastError: Some(Self::T::raw_get_last_error),
8151 },
8152 getPortType: Some(Self::T::raw_get_port_type),
8153 getDirection: Some(Self::T::raw_get_direction),
8154 getConnectedObject: Some(Self::T::raw_get_connected_object),
8155 Connect: Some(Self::T::raw_connect),
8156 Disconnect: Some(Self::T::raw_disconnect),
8157 };
8158}
8159
8160#[cape_smart_pointer(ICAPEUNITPORT_UUID)]
8161pub struct CapeUnitPort {
8162 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeUnitPort,
8163}
8164
8165impl CapeUnitPort {
8166
8167 pub fn get_port_type(&self) -> Result<CapePortType,COBIAError> {
8168 let mut port_type:C::CAPEOPEN_1_2_CapePortType=0;
8169 let result_code = unsafe {
8170 ((*(*self.interface).vTbl).getPortType.unwrap())((*self.interface).me,&mut port_type as *mut C::CAPEOPEN_1_2_CapePortType)
8171 };
8172 let port_type=match CapePortType::from(port_type) {
8173 Some(_port_type) => _port_type,
8174 None => {return Err(COBIAError::Message("Invalid enumeration value".to_string()));}
8175 };
8176 match result_code {
8177 COBIAERR_NOERROR => {Ok(port_type)},
8178 _ => Err(COBIAError::from_object(result_code,self))
8179 }
8180 }
8181
8182 pub fn get_direction(&self) -> Result<CapePortDirection,COBIAError> {
8183 let mut port_direction:C::CAPEOPEN_1_2_CapePortDirection=0;
8184 let result_code = unsafe {
8185 ((*(*self.interface).vTbl).getDirection.unwrap())((*self.interface).me,&mut port_direction as *mut C::CAPEOPEN_1_2_CapePortDirection)
8186 };
8187 let port_direction=match CapePortDirection::from(port_direction) {
8188 Some(_port_direction) => _port_direction,
8189 None => {return Err(COBIAError::Message("Invalid enumeration value".to_string()));}
8190 };
8191 match result_code {
8192 COBIAERR_NOERROR => {Ok(port_direction)},
8193 _ => Err(COBIAError::from_object(result_code,self))
8194 }
8195 }
8196
8197 pub fn get_connected_object(&self) -> Result<crate::CapeObject,COBIAError> {
8198 let mut connected_object: *mut crate::C::ICapeInterface=std::ptr::null_mut();
8199 let result_code = unsafe {
8200 ((*(*self.interface).vTbl).getConnectedObject.unwrap())((*self.interface).me,&mut connected_object as *mut *mut crate::C::ICapeInterface)
8201 };
8202 match result_code {
8203 COBIAERR_NOERROR => {Ok(crate::CapeObject::attach(connected_object))},
8204 _ => Err(COBIAError::from_object(result_code,self))
8205 }
8206 }
8207
8208 pub fn connect(&self,object_to_connect:&crate::CapeObject) -> Result<(),COBIAError> {
8209 let result_code = unsafe {
8210 ((*(*self.interface).vTbl).Connect.unwrap())((*self.interface).me,object_to_connect.as_interface_pointer() as *mut crate::C::ICapeInterface)
8211 };
8212 match result_code {
8213 COBIAERR_NOERROR => {Ok(())},
8214 _ => Err(COBIAError::from_object(result_code,self))
8215 }
8216 }
8217
8218 pub fn disconnect(&self) -> Result<(),COBIAError> {
8219 let result_code = unsafe {
8220 ((*(*self.interface).vTbl).Disconnect.unwrap())((*self.interface).me)
8221 };
8222 match result_code {
8223 COBIAERR_NOERROR => {Ok(())},
8224 _ => Err(COBIAError::from_object(result_code,self))
8225 }
8226 }
8227
8228}
8229
8230pub trait ICapePersistWriter {
8235 fn add_real(&mut self,value_name:&CapeStringIn,value:CapeReal) -> Result<(),COBIAError>;
8236 fn add_integer(&mut self,value_name:&CapeStringIn,value:CapeInteger) -> Result<(),COBIAError>;
8237 fn add_boolean(&mut self,value_name:&CapeStringIn,value:CapeBoolean) -> Result<(),COBIAError>;
8238 fn add_string(&mut self,value_name:&CapeStringIn,value:&CapeStringIn) -> Result<(),COBIAError>;
8239 fn add_enumeration(&mut self,value_name:&CapeStringIn,value:crate::CapeEnumeration) -> Result<(),COBIAError>;
8240 fn add_value(&mut self,value_name:&CapeStringIn,value:&CapeValueIn) -> Result<(),COBIAError>;
8241 fn add_array_real(&mut self,value_name:&CapeStringIn,value:&CapeArrayRealIn) -> Result<(),COBIAError>;
8242 fn add_array_integer(&mut self,value_name:&CapeStringIn,value:&CapeArrayIntegerIn) -> Result<(),COBIAError>;
8243 fn add_array_boolean(&mut self,value_name:&CapeStringIn,value:&CapeArrayBooleanIn) -> Result<(),COBIAError>;
8244 fn add_array_string(&mut self,value_name:&CapeStringIn,value:&CapeArrayStringIn) -> Result<(),COBIAError>;
8245 fn add_array_enumeration(&mut self,value_name:&CapeStringIn,value:&CapeArrayEnumerationIn<CapeEnumeration>) -> Result<(),COBIAError>;
8246 fn add_array_value(&mut self,value_name:&CapeStringIn,value:&CapeArrayValueIn) -> Result<(),COBIAError>;
8247 fn add_array_byte(&mut self,value_name:&CapeStringIn,value:&CapeArrayByteIn) -> Result<(),COBIAError>;
8248 fn add_node(&mut self,node_name:&CapeStringIn) -> Result<CapePersistWriter,COBIAError>;
8249}
8250
8251pub trait ICapePersistWriterImpl : ICapePersistWriter {
8252 type T: ICapeInterfaceImpl+ICapePersistWriterImpl;
8253
8254 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
8255
8256 fn init_interface() -> crate::C::ICapeInterface {
8258 crate::C::ICapeInterface {
8259 me: std::ptr::null_mut(),
8260 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapePersistWriter_VTable).cast_mut()
8261 as *mut crate::C::ICapeInterface_VTable,
8262 }
8263 }
8264
8265 fn init<Timpl: ICapePersistWriterImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
8266 let iface: *mut crate::C::CAPEOPEN_1_2_ICapePersistWriter =
8267 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapePersistWriter;
8268 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
8269 u.add_interface(
8270 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapePersistWriter_UUID),
8271 iface as *mut crate::C::ICapeInterface,
8272 );
8273 }
8274
8275 extern "C" fn raw_add_real(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:CapeReal) -> crate::C::CapeResult {
8276 let p = me as *mut Self::T;
8277 let myself=unsafe { &mut *p };
8278 let value_name=CapeStringIn::new(&value_name);
8279 match myself.add_real(&value_name,value) {
8280 Ok(_) => COBIAERR_NOERROR,
8281 Err(e) => myself.set_last_error(e,"ICapePersistWriter::AddReal")
8282 }
8283 }
8284
8285 extern "C" fn raw_add_integer(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:CapeInteger) -> crate::C::CapeResult {
8286 let p = me as *mut Self::T;
8287 let myself=unsafe { &mut *p };
8288 let value_name=CapeStringIn::new(&value_name);
8289 match myself.add_integer(&value_name,value) {
8290 Ok(_) => COBIAERR_NOERROR,
8291 Err(e) => myself.set_last_error(e,"ICapePersistWriter::AddInteger")
8292 }
8293 }
8294
8295 extern "C" fn raw_add_boolean(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:CapeBoolean) -> crate::C::CapeResult {
8296 let p = me as *mut Self::T;
8297 let myself=unsafe { &mut *p };
8298 let value_name=CapeStringIn::new(&value_name);
8299 match myself.add_boolean(&value_name,value) {
8300 Ok(_) => COBIAERR_NOERROR,
8301 Err(e) => myself.set_last_error(e,"ICapePersistWriter::AddBoolean")
8302 }
8303 }
8304
8305 extern "C" fn raw_add_string(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut crate::C::ICapeString) -> crate::C::CapeResult {
8306 let p = me as *mut Self::T;
8307 let myself=unsafe { &mut *p };
8308 let value_name=CapeStringIn::new(&value_name);
8309 let value=CapeStringIn::new(&value);
8310 match myself.add_string(&value_name,&value) {
8311 Ok(_) => COBIAERR_NOERROR,
8312 Err(e) => myself.set_last_error(e,"ICapePersistWriter::AddString")
8313 }
8314 }
8315
8316 extern "C" fn raw_add_enumeration(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:crate::C::CapeEnumeration) -> crate::C::CapeResult {
8317 let p = me as *mut Self::T;
8318 let myself=unsafe { &mut *p };
8319 let value_name=CapeStringIn::new(&value_name);
8320 match myself.add_enumeration(&value_name,value) {
8321 Ok(_) => COBIAERR_NOERROR,
8322 Err(e) => myself.set_last_error(e,"ICapePersistWriter::AddEnumeration")
8323 }
8324 }
8325
8326 extern "C" fn raw_add_value(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut crate::C::ICapeValue) -> crate::C::CapeResult {
8327 let p = me as *mut Self::T;
8328 let myself=unsafe { &mut *p };
8329 let value_name=CapeStringIn::new(&value_name);
8330 let value=CapeValueIn::new(&value);
8331 match myself.add_value(&value_name,&value) {
8332 Ok(_) => COBIAERR_NOERROR,
8333 Err(e) => myself.set_last_error(e,"ICapePersistWriter::AddValue")
8334 }
8335 }
8336
8337 extern "C" fn raw_add_array_real(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut crate::C::ICapeArrayReal) -> crate::C::CapeResult {
8338 let p = me as *mut Self::T;
8339 let myself=unsafe { &mut *p };
8340 let value_name=CapeStringIn::new(&value_name);
8341 let value=CapeArrayRealIn::new(&value);
8342 match myself.add_array_real(&value_name,&value) {
8343 Ok(_) => COBIAERR_NOERROR,
8344 Err(e) => myself.set_last_error(e,"ICapePersistWriter::AddArrayReal")
8345 }
8346 }
8347
8348 extern "C" fn raw_add_array_integer(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut crate::C::ICapeArrayInteger) -> crate::C::CapeResult {
8349 let p = me as *mut Self::T;
8350 let myself=unsafe { &mut *p };
8351 let value_name=CapeStringIn::new(&value_name);
8352 let value=CapeArrayIntegerIn::new(&value);
8353 match myself.add_array_integer(&value_name,&value) {
8354 Ok(_) => COBIAERR_NOERROR,
8355 Err(e) => myself.set_last_error(e,"ICapePersistWriter::AddArrayInteger")
8356 }
8357 }
8358
8359 extern "C" fn raw_add_array_boolean(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut crate::C::ICapeArrayBoolean) -> crate::C::CapeResult {
8360 let p = me as *mut Self::T;
8361 let myself=unsafe { &mut *p };
8362 let value_name=CapeStringIn::new(&value_name);
8363 let value=CapeArrayBooleanIn::new(&value);
8364 match myself.add_array_boolean(&value_name,&value) {
8365 Ok(_) => COBIAERR_NOERROR,
8366 Err(e) => myself.set_last_error(e,"ICapePersistWriter::AddArrayBoolean")
8367 }
8368 }
8369
8370 extern "C" fn raw_add_array_string(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
8371 let p = me as *mut Self::T;
8372 let myself=unsafe { &mut *p };
8373 let value_name=CapeStringIn::new(&value_name);
8374 let value=CapeArrayStringIn::new(&value);
8375 match myself.add_array_string(&value_name,&value) {
8376 Ok(_) => COBIAERR_NOERROR,
8377 Err(e) => myself.set_last_error(e,"ICapePersistWriter::AddArrayString")
8378 }
8379 }
8380
8381 extern "C" fn raw_add_array_enumeration(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut crate::C::ICapeArrayEnumeration) -> crate::C::CapeResult {
8382 let p = me as *mut Self::T;
8383 let myself=unsafe { &mut *p };
8384 let value_name=CapeStringIn::new(&value_name);
8385 let value=CapeArrayEnumerationIn::<CapeEnumeration>::new(&value);
8386 match myself.add_array_enumeration(&value_name,&value) {
8387 Ok(_) => COBIAERR_NOERROR,
8388 Err(e) => myself.set_last_error(e,"ICapePersistWriter::AddArrayEnumeration")
8389 }
8390 }
8391
8392 extern "C" fn raw_add_array_value(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut crate::C::ICapeArrayValue) -> crate::C::CapeResult {
8393 let p = me as *mut Self::T;
8394 let myself=unsafe { &mut *p };
8395 let value_name=CapeStringIn::new(&value_name);
8396 let value=CapeArrayValueIn::new(&value);
8397 match myself.add_array_value(&value_name,&value) {
8398 Ok(_) => COBIAERR_NOERROR,
8399 Err(e) => myself.set_last_error(e,"ICapePersistWriter::AddArrayValue")
8400 }
8401 }
8402
8403 extern "C" fn raw_add_array_byte(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut crate::C::ICapeArrayByte) -> crate::C::CapeResult {
8404 let p = me as *mut Self::T;
8405 let myself=unsafe { &mut *p };
8406 let value_name=CapeStringIn::new(&value_name);
8407 let value=CapeArrayByteIn::new(&value);
8408 match myself.add_array_byte(&value_name,&value) {
8409 Ok(_) => COBIAERR_NOERROR,
8410 Err(e) => myself.set_last_error(e,"ICapePersistWriter::AddArrayByte")
8411 }
8412 }
8413
8414 extern "C" fn raw_add_node(me: *mut std::ffi::c_void,node_name:*mut crate::C::ICapeString,value:*mut *mut C::CAPEOPEN_1_2_ICapePersistWriter) -> crate::C::CapeResult {
8415 if value.is_null() {
8416 return COBIAERR_NULLPOINTER;
8417 }
8418 let p = me as *mut Self::T;
8419 let myself=unsafe { &mut *p };
8420 if value.is_null() {
8421 return COBIAERR_NULLPOINTER;
8422 }
8423 let node_name=CapeStringIn::new(&node_name);
8424 match myself.add_node(&node_name) {
8425 Ok(_value) => {
8426 unsafe{*value=_value.detach();}
8427 COBIAERR_NOERROR
8428 },
8429 Err(e) => myself.set_last_error(e,"ICapePersistWriter::AddNode")
8430 }
8431 }
8432
8433 const VTABLE: C::CAPEOPEN_1_2_ICapePersistWriter_VTable =
8434 C::CAPEOPEN_1_2_ICapePersistWriter_VTable {
8435 base: crate::C::ICapeInterface_VTable {
8436 addReference: Some(Self::T::raw_add_reference),
8437 release: Some(Self::T::raw_release),
8438 queryInterface: Some(Self::T::raw_query_interface),
8439 getLastError: Some(Self::T::raw_get_last_error),
8440 },
8441 AddReal: Some(Self::T::raw_add_real),
8442 AddInteger: Some(Self::T::raw_add_integer),
8443 AddBoolean: Some(Self::T::raw_add_boolean),
8444 AddString: Some(Self::T::raw_add_string),
8445 AddEnumeration: Some(Self::T::raw_add_enumeration),
8446 AddValue: Some(Self::T::raw_add_value),
8447 AddArrayReal: Some(Self::T::raw_add_array_real),
8448 AddArrayInteger: Some(Self::T::raw_add_array_integer),
8449 AddArrayBoolean: Some(Self::T::raw_add_array_boolean),
8450 AddArrayString: Some(Self::T::raw_add_array_string),
8451 AddArrayEnumeration: Some(Self::T::raw_add_array_enumeration),
8452 AddArrayValue: Some(Self::T::raw_add_array_value),
8453 AddArrayByte: Some(Self::T::raw_add_array_byte),
8454 AddNode: Some(Self::T::raw_add_node),
8455 };
8456}
8457
8458#[cape_smart_pointer(ICAPEPERSISTWRITER_UUID)]
8459pub struct CapePersistWriter {
8460 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapePersistWriter,
8461}
8462
8463impl CapePersistWriter {
8464
8465 pub fn add_real<TypeOfValueName:CapeStringProviderIn>(&self,value_name:&TypeOfValueName,value:CapeReal) -> Result<(),COBIAError> {
8466 let result_code = unsafe {
8467 ((*(*self.interface).vTbl).AddReal.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),value)
8468 };
8469 match result_code {
8470 COBIAERR_NOERROR => {Ok(())},
8471 _ => Err(COBIAError::from_object(result_code,self))
8472 }
8473 }
8474
8475 pub fn add_integer<TypeOfValueName:CapeStringProviderIn>(&self,value_name:&TypeOfValueName,value:CapeInteger) -> Result<(),COBIAError> {
8476 let result_code = unsafe {
8477 ((*(*self.interface).vTbl).AddInteger.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),value)
8478 };
8479 match result_code {
8480 COBIAERR_NOERROR => {Ok(())},
8481 _ => Err(COBIAError::from_object(result_code,self))
8482 }
8483 }
8484
8485 pub fn add_boolean<TypeOfValueName:CapeStringProviderIn>(&self,value_name:&TypeOfValueName,value:CapeBoolean) -> Result<(),COBIAError> {
8486 let result_code = unsafe {
8487 ((*(*self.interface).vTbl).AddBoolean.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),value)
8488 };
8489 match result_code {
8490 COBIAERR_NOERROR => {Ok(())},
8491 _ => Err(COBIAError::from_object(result_code,self))
8492 }
8493 }
8494
8495 pub fn add_string<TypeOfValueName:CapeStringProviderIn,TypeOfValue:CapeStringProviderIn>(&self,value_name:&TypeOfValueName,value:&TypeOfValue) -> Result<(),COBIAError> {
8496 let result_code = unsafe {
8497 ((*(*self.interface).vTbl).AddString.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&value.as_cape_string_in() as *const crate::C::ICapeString).cast_mut())
8498 };
8499 match result_code {
8500 COBIAERR_NOERROR => {Ok(())},
8501 _ => Err(COBIAError::from_object(result_code,self))
8502 }
8503 }
8504
8505 pub fn add_enumeration<TypeOfValueName:CapeStringProviderIn>(&self,value_name:&TypeOfValueName,value:crate::CapeEnumeration) -> Result<(),COBIAError> {
8506 let result_code = unsafe {
8507 ((*(*self.interface).vTbl).AddEnumeration.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),value)
8508 };
8509 match result_code {
8510 COBIAERR_NOERROR => {Ok(())},
8511 _ => Err(COBIAError::from_object(result_code,self))
8512 }
8513 }
8514
8515 pub fn add_value<TypeOfValueName:CapeStringProviderIn,TypeOfValue:CapeValueProviderIn>(&self,value_name:&TypeOfValueName,value:&TypeOfValue) -> Result<(),COBIAError> {
8516 let result_code = unsafe {
8517 ((*(*self.interface).vTbl).AddValue.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&value.as_cape_value_in() as *const crate::C::ICapeValue).cast_mut())
8518 };
8519 match result_code {
8520 COBIAERR_NOERROR => {Ok(())},
8521 _ => Err(COBIAError::from_object(result_code,self))
8522 }
8523 }
8524
8525 pub fn add_array_real<TypeOfValueName:CapeStringProviderIn,TypeOfValue:CapeArrayRealProviderIn>(&self,value_name:&TypeOfValueName,value:&TypeOfValue) -> Result<(),COBIAError> {
8526 let result_code = unsafe {
8527 ((*(*self.interface).vTbl).AddArrayReal.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&value.as_cape_array_real_in() as *const crate::C::ICapeArrayReal).cast_mut())
8528 };
8529 match result_code {
8530 COBIAERR_NOERROR => {Ok(())},
8531 _ => Err(COBIAError::from_object(result_code,self))
8532 }
8533 }
8534
8535 pub fn add_array_integer<TypeOfValueName:CapeStringProviderIn,TypeOfValue:CapeArrayIntegerProviderIn>(&self,value_name:&TypeOfValueName,value:&TypeOfValue) -> Result<(),COBIAError> {
8536 let result_code = unsafe {
8537 ((*(*self.interface).vTbl).AddArrayInteger.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&value.as_cape_array_integer_in() as *const crate::C::ICapeArrayInteger).cast_mut())
8538 };
8539 match result_code {
8540 COBIAERR_NOERROR => {Ok(())},
8541 _ => Err(COBIAError::from_object(result_code,self))
8542 }
8543 }
8544
8545 pub fn add_array_boolean<TypeOfValueName:CapeStringProviderIn,TypeOfValue:CapeArrayBooleanProviderIn>(&self,value_name:&TypeOfValueName,value:&TypeOfValue) -> Result<(),COBIAError> {
8546 let result_code = unsafe {
8547 ((*(*self.interface).vTbl).AddArrayBoolean.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&value.as_cape_array_boolean_in() as *const crate::C::ICapeArrayBoolean).cast_mut())
8548 };
8549 match result_code {
8550 COBIAERR_NOERROR => {Ok(())},
8551 _ => Err(COBIAError::from_object(result_code,self))
8552 }
8553 }
8554
8555 pub fn add_array_string<TypeOfValueName:CapeStringProviderIn,TypeOfValue:CapeArrayStringProviderIn>(&self,value_name:&TypeOfValueName,value:&TypeOfValue) -> Result<(),COBIAError> {
8556 let result_code = unsafe {
8557 ((*(*self.interface).vTbl).AddArrayString.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&value.as_cape_array_string_in() as *const crate::C::ICapeArrayString).cast_mut())
8558 };
8559 match result_code {
8560 COBIAERR_NOERROR => {Ok(())},
8561 _ => Err(COBIAError::from_object(result_code,self))
8562 }
8563 }
8564
8565 pub fn add_array_enumeration<TypeOfValueName:CapeStringProviderIn,TypeOfValue:CapeArrayEnumerationProviderIn>(&self,value_name:&TypeOfValueName,value:&TypeOfValue) -> Result<(),COBIAError> {
8566 let result_code = unsafe {
8567 ((*(*self.interface).vTbl).AddArrayEnumeration.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&value.as_cape_array_enumeration_in() as *const crate::C::ICapeArrayEnumeration).cast_mut())
8568 };
8569 match result_code {
8570 COBIAERR_NOERROR => {Ok(())},
8571 _ => Err(COBIAError::from_object(result_code,self))
8572 }
8573 }
8574
8575 pub fn add_array_value<TypeOfValueName:CapeStringProviderIn,TypeOfValue:CapeArrayValueProviderIn>(&self,value_name:&TypeOfValueName,value:&TypeOfValue) -> Result<(),COBIAError> {
8576 let result_code = unsafe {
8577 ((*(*self.interface).vTbl).AddArrayValue.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&value.as_cape_array_value_in() as *const crate::C::ICapeArrayValue).cast_mut())
8578 };
8579 match result_code {
8580 COBIAERR_NOERROR => {Ok(())},
8581 _ => Err(COBIAError::from_object(result_code,self))
8582 }
8583 }
8584
8585 pub fn add_array_byte<TypeOfValueName:CapeStringProviderIn,TypeOfValue:CapeArrayByteProviderIn>(&self,value_name:&TypeOfValueName,value:&TypeOfValue) -> Result<(),COBIAError> {
8586 let result_code = unsafe {
8587 ((*(*self.interface).vTbl).AddArrayByte.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&value.as_cape_array_byte_in() as *const crate::C::ICapeArrayByte).cast_mut())
8588 };
8589 match result_code {
8590 COBIAERR_NOERROR => {Ok(())},
8591 _ => Err(COBIAError::from_object(result_code,self))
8592 }
8593 }
8594
8595 pub fn add_node<TypeOfNodeName:CapeStringProviderIn>(&self,node_name:&TypeOfNodeName) -> Result<CapePersistWriter,COBIAError> {
8596 let mut value: *mut C::CAPEOPEN_1_2_ICapePersistWriter=std::ptr::null_mut();
8597 let result_code = unsafe {
8598 ((*(*self.interface).vTbl).AddNode.unwrap())((*self.interface).me,(&node_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),&mut value as *mut *mut C::CAPEOPEN_1_2_ICapePersistWriter)
8599 };
8600 match result_code {
8601 COBIAERR_NOERROR => {Ok(CapePersistWriter::attach(value))},
8602 _ => Err(COBIAError::from_object(result_code,self))
8603 }
8604 }
8605
8606}
8607
8608pub trait ICapePersistReader {
8613 fn get_value_names(&mut self,value_names:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
8614 fn get_value_type(&mut self,value_name:&CapeStringIn) -> Result<CapePersistedDataType,COBIAError>;
8615 fn get_real(&mut self,value_name:&CapeStringIn) -> Result<CapeReal,COBIAError>;
8616 fn get_integer(&mut self,value_name:&CapeStringIn) -> Result<CapeInteger,COBIAError>;
8617 fn get_boolean(&mut self,value_name:&CapeStringIn) -> Result<CapeBoolean,COBIAError>;
8618 fn get_string(&mut self,value_name:&CapeStringIn,value:&mut CapeStringOut) -> Result<(),COBIAError>;
8619 fn get_enumeration(&mut self,value_name:&CapeStringIn) -> Result<crate::CapeEnumeration,COBIAError>;
8620 fn get_value(&mut self,value_name:&CapeStringIn,value:&mut CapeValueOut) -> Result<(),COBIAError>;
8621 fn get_array_real(&mut self,value_name:&CapeStringIn,value:&mut CapeArrayRealOut) -> Result<(),COBIAError>;
8622 fn get_array_integer(&mut self,value_name:&CapeStringIn,value:&mut CapeArrayIntegerOut) -> Result<(),COBIAError>;
8623 fn get_array_boolean(&mut self,value_name:&CapeStringIn,value:&mut CapeArrayBooleanOut) -> Result<(),COBIAError>;
8624 fn get_array_string(&mut self,value_name:&CapeStringIn,value:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
8625 fn get_array_enumeration(&mut self,value_name:&CapeStringIn,value:&mut CapeArrayEnumerationOut<CapeEnumeration>) -> Result<(),COBIAError>;
8626 fn get_array_value(&mut self,value_name:&CapeStringIn,value:&mut CapeArrayValueOut) -> Result<(),COBIAError>;
8627 fn get_array_byte(&mut self,value_name:&CapeStringIn,value:&mut CapeArrayByteOut) -> Result<(),COBIAError>;
8628 fn get_node_names(&mut self,node_names:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
8629 fn get_node(&mut self,node_name:&CapeStringIn) -> Result<CapePersistReader,COBIAError>;
8630}
8631
8632pub trait ICapePersistReaderImpl : ICapePersistReader {
8633 type T: ICapeInterfaceImpl+ICapePersistReaderImpl;
8634
8635 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
8636
8637 fn init_interface() -> crate::C::ICapeInterface {
8639 crate::C::ICapeInterface {
8640 me: std::ptr::null_mut(),
8641 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapePersistReader_VTable).cast_mut()
8642 as *mut crate::C::ICapeInterface_VTable,
8643 }
8644 }
8645
8646 fn init<Timpl: ICapePersistReaderImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
8647 let iface: *mut crate::C::CAPEOPEN_1_2_ICapePersistReader =
8648 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapePersistReader;
8649 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
8650 u.add_interface(
8651 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapePersistReader_UUID),
8652 iface as *mut crate::C::ICapeInterface,
8653 );
8654 }
8655
8656 extern "C" fn raw_get_value_names(me: *mut std::ffi::c_void,value_names:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
8657 if value_names.is_null() {
8658 return COBIAERR_NULLPOINTER;
8659 }
8660 let p = me as *mut Self::T;
8661 let myself=unsafe { &mut *p };
8662 if value_names.is_null() {
8663 return COBIAERR_NULLPOINTER;
8664 }
8665 let mut value_names=unsafe{*((&value_names as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
8666 let mut value_names=CapeArrayStringOut::new(&mut value_names);
8667 match myself.get_value_names(&mut value_names) {
8668 Ok(_) => COBIAERR_NOERROR,
8669 Err(e) => myself.set_last_error(e,"ICapePersistReader::GetValueNames")
8670 }
8671 }
8672
8673 extern "C" fn raw_get_value_type(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value_type:*mut C::CAPEOPEN_1_2_CapePersistedDataType) -> crate::C::CapeResult {
8674 if value_type.is_null() {
8675 return COBIAERR_NULLPOINTER;
8676 }
8677 let p = me as *mut Self::T;
8678 let myself=unsafe { &mut *p };
8679 let value_name=CapeStringIn::new(&value_name);
8680 match myself.get_value_type(&value_name) {
8681 Ok(_value_type) => {
8682 unsafe{*value_type=_value_type as C::CAPEOPEN_1_2_CapePersistedDataType;}
8683 COBIAERR_NOERROR
8684 },
8685 Err(e) => myself.set_last_error(e,"ICapePersistReader::GetValueType")
8686 }
8687 }
8688
8689 extern "C" fn raw_get_real(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut CapeReal) -> crate::C::CapeResult {
8690 if value.is_null() {
8691 return COBIAERR_NULLPOINTER;
8692 }
8693 let p = me as *mut Self::T;
8694 let myself=unsafe { &mut *p };
8695 let value_name=CapeStringIn::new(&value_name);
8696 match myself.get_real(&value_name) {
8697 Ok(_value) => {
8698 unsafe{*value=_value;}
8699 COBIAERR_NOERROR
8700 },
8701 Err(e) => myself.set_last_error(e,"ICapePersistReader::GetReal")
8702 }
8703 }
8704
8705 extern "C" fn raw_get_integer(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut CapeInteger) -> crate::C::CapeResult {
8706 if value.is_null() {
8707 return COBIAERR_NULLPOINTER;
8708 }
8709 let p = me as *mut Self::T;
8710 let myself=unsafe { &mut *p };
8711 let value_name=CapeStringIn::new(&value_name);
8712 match myself.get_integer(&value_name) {
8713 Ok(_value) => {
8714 unsafe{*value=_value;}
8715 COBIAERR_NOERROR
8716 },
8717 Err(e) => myself.set_last_error(e,"ICapePersistReader::GetInteger")
8718 }
8719 }
8720
8721 extern "C" fn raw_get_boolean(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut CapeBoolean) -> crate::C::CapeResult {
8722 if value.is_null() {
8723 return COBIAERR_NULLPOINTER;
8724 }
8725 let p = me as *mut Self::T;
8726 let myself=unsafe { &mut *p };
8727 let value_name=CapeStringIn::new(&value_name);
8728 match myself.get_boolean(&value_name) {
8729 Ok(_value) => {
8730 unsafe{*value=_value;}
8731 COBIAERR_NOERROR
8732 },
8733 Err(e) => myself.set_last_error(e,"ICapePersistReader::GetBoolean")
8734 }
8735 }
8736
8737 extern "C" fn raw_get_string(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut crate::C::ICapeString) -> crate::C::CapeResult {
8738 if value.is_null() {
8739 return COBIAERR_NULLPOINTER;
8740 }
8741 let p = me as *mut Self::T;
8742 let myself=unsafe { &mut *p };
8743 if value.is_null() {
8744 return COBIAERR_NULLPOINTER;
8745 }
8746 let value_name=CapeStringIn::new(&value_name);
8747 let mut value=unsafe{*((&value as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
8748 let mut value=CapeStringOut::new(&mut value);
8749 match myself.get_string(&value_name,&mut value) {
8750 Ok(_) => COBIAERR_NOERROR,
8751 Err(e) => myself.set_last_error(e,"ICapePersistReader::GetString")
8752 }
8753 }
8754
8755 extern "C" fn raw_get_enumeration(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut crate::C::CapeEnumeration) -> crate::C::CapeResult {
8756 if value.is_null() {
8757 return COBIAERR_NULLPOINTER;
8758 }
8759 let p = me as *mut Self::T;
8760 let myself=unsafe { &mut *p };
8761 let value_name=CapeStringIn::new(&value_name);
8762 match myself.get_enumeration(&value_name) {
8763 Ok(_value) => {
8764 unsafe{*value=_value;}
8765 COBIAERR_NOERROR
8766 },
8767 Err(e) => myself.set_last_error(e,"ICapePersistReader::GetEnumeration")
8768 }
8769 }
8770
8771 extern "C" fn raw_get_value(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut crate::C::ICapeValue) -> crate::C::CapeResult {
8772 if value.is_null() {
8773 return COBIAERR_NULLPOINTER;
8774 }
8775 let p = me as *mut Self::T;
8776 let myself=unsafe { &mut *p };
8777 if value.is_null() {
8778 return COBIAERR_NULLPOINTER;
8779 }
8780 let value_name=CapeStringIn::new(&value_name);
8781 let mut value=unsafe{*((&value as *const *mut crate::C::ICapeValue) as *mut *mut crate::C::ICapeValue)};
8782 let mut value=CapeValueOut::new(&mut value);
8783 match myself.get_value(&value_name,&mut value) {
8784 Ok(_) => COBIAERR_NOERROR,
8785 Err(e) => myself.set_last_error(e,"ICapePersistReader::GetValue")
8786 }
8787 }
8788
8789 extern "C" fn raw_get_array_real(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut crate::C::ICapeArrayReal) -> crate::C::CapeResult {
8790 if value.is_null() {
8791 return COBIAERR_NULLPOINTER;
8792 }
8793 let p = me as *mut Self::T;
8794 let myself=unsafe { &mut *p };
8795 if value.is_null() {
8796 return COBIAERR_NULLPOINTER;
8797 }
8798 let value_name=CapeStringIn::new(&value_name);
8799 let mut value=unsafe{*((&value as *const *mut crate::C::ICapeArrayReal) as *mut *mut crate::C::ICapeArrayReal)};
8800 let mut value=CapeArrayRealOut::new(&mut value);
8801 match myself.get_array_real(&value_name,&mut value) {
8802 Ok(_) => COBIAERR_NOERROR,
8803 Err(e) => myself.set_last_error(e,"ICapePersistReader::GetArrayReal")
8804 }
8805 }
8806
8807 extern "C" fn raw_get_array_integer(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut crate::C::ICapeArrayInteger) -> crate::C::CapeResult {
8808 if value.is_null() {
8809 return COBIAERR_NULLPOINTER;
8810 }
8811 let p = me as *mut Self::T;
8812 let myself=unsafe { &mut *p };
8813 if value.is_null() {
8814 return COBIAERR_NULLPOINTER;
8815 }
8816 let value_name=CapeStringIn::new(&value_name);
8817 let mut value=unsafe{*((&value as *const *mut crate::C::ICapeArrayInteger) as *mut *mut crate::C::ICapeArrayInteger)};
8818 let mut value=CapeArrayIntegerOut::new(&mut value);
8819 match myself.get_array_integer(&value_name,&mut value) {
8820 Ok(_) => COBIAERR_NOERROR,
8821 Err(e) => myself.set_last_error(e,"ICapePersistReader::GetArrayInteger")
8822 }
8823 }
8824
8825 extern "C" fn raw_get_array_boolean(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut crate::C::ICapeArrayBoolean) -> crate::C::CapeResult {
8826 if value.is_null() {
8827 return COBIAERR_NULLPOINTER;
8828 }
8829 let p = me as *mut Self::T;
8830 let myself=unsafe { &mut *p };
8831 if value.is_null() {
8832 return COBIAERR_NULLPOINTER;
8833 }
8834 let value_name=CapeStringIn::new(&value_name);
8835 let mut value=unsafe{*((&value as *const *mut crate::C::ICapeArrayBoolean) as *mut *mut crate::C::ICapeArrayBoolean)};
8836 let mut value=CapeArrayBooleanOut::new(&mut value);
8837 match myself.get_array_boolean(&value_name,&mut value) {
8838 Ok(_) => COBIAERR_NOERROR,
8839 Err(e) => myself.set_last_error(e,"ICapePersistReader::GetArrayBoolean")
8840 }
8841 }
8842
8843 extern "C" fn raw_get_array_string(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
8844 if value.is_null() {
8845 return COBIAERR_NULLPOINTER;
8846 }
8847 let p = me as *mut Self::T;
8848 let myself=unsafe { &mut *p };
8849 if value.is_null() {
8850 return COBIAERR_NULLPOINTER;
8851 }
8852 let value_name=CapeStringIn::new(&value_name);
8853 let mut value=unsafe{*((&value as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
8854 let mut value=CapeArrayStringOut::new(&mut value);
8855 match myself.get_array_string(&value_name,&mut value) {
8856 Ok(_) => COBIAERR_NOERROR,
8857 Err(e) => myself.set_last_error(e,"ICapePersistReader::GetArrayString")
8858 }
8859 }
8860
8861 extern "C" fn raw_get_array_enumeration(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut crate::C::ICapeArrayEnumeration) -> crate::C::CapeResult {
8862 if value.is_null() {
8863 return COBIAERR_NULLPOINTER;
8864 }
8865 let p = me as *mut Self::T;
8866 let myself=unsafe { &mut *p };
8867 if value.is_null() {
8868 return COBIAERR_NULLPOINTER;
8869 }
8870 let value_name=CapeStringIn::new(&value_name);
8871 let mut value=unsafe{*((&value as *const *mut crate::C::ICapeArrayEnumeration) as *mut *mut crate::C::ICapeArrayEnumeration)};
8872 let mut value=CapeArrayEnumerationOut::<CapeEnumeration>::new(&mut value);
8873 match myself.get_array_enumeration(&value_name,&mut value) {
8874 Ok(_) => COBIAERR_NOERROR,
8875 Err(e) => myself.set_last_error(e,"ICapePersistReader::GetArrayEnumeration")
8876 }
8877 }
8878
8879 extern "C" fn raw_get_array_value(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut crate::C::ICapeArrayValue) -> crate::C::CapeResult {
8880 if value.is_null() {
8881 return COBIAERR_NULLPOINTER;
8882 }
8883 let p = me as *mut Self::T;
8884 let myself=unsafe { &mut *p };
8885 if value.is_null() {
8886 return COBIAERR_NULLPOINTER;
8887 }
8888 let value_name=CapeStringIn::new(&value_name);
8889 let mut value=unsafe{*((&value as *const *mut crate::C::ICapeArrayValue) as *mut *mut crate::C::ICapeArrayValue)};
8890 let mut value=CapeArrayValueOut::new(&mut value);
8891 match myself.get_array_value(&value_name,&mut value) {
8892 Ok(_) => COBIAERR_NOERROR,
8893 Err(e) => myself.set_last_error(e,"ICapePersistReader::GetArrayValue")
8894 }
8895 }
8896
8897 extern "C" fn raw_get_array_byte(me: *mut std::ffi::c_void,value_name:*mut crate::C::ICapeString,value:*mut crate::C::ICapeArrayByte) -> crate::C::CapeResult {
8898 if value.is_null() {
8899 return COBIAERR_NULLPOINTER;
8900 }
8901 let p = me as *mut Self::T;
8902 let myself=unsafe { &mut *p };
8903 if value.is_null() {
8904 return COBIAERR_NULLPOINTER;
8905 }
8906 let value_name=CapeStringIn::new(&value_name);
8907 let mut value=unsafe{*((&value as *const *mut crate::C::ICapeArrayByte) as *mut *mut crate::C::ICapeArrayByte)};
8908 let mut value=CapeArrayByteOut::new(&mut value);
8909 match myself.get_array_byte(&value_name,&mut value) {
8910 Ok(_) => COBIAERR_NOERROR,
8911 Err(e) => myself.set_last_error(e,"ICapePersistReader::GetArrayByte")
8912 }
8913 }
8914
8915 extern "C" fn raw_get_node_names(me: *mut std::ffi::c_void,node_names:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
8916 if node_names.is_null() {
8917 return COBIAERR_NULLPOINTER;
8918 }
8919 let p = me as *mut Self::T;
8920 let myself=unsafe { &mut *p };
8921 if node_names.is_null() {
8922 return COBIAERR_NULLPOINTER;
8923 }
8924 let mut node_names=unsafe{*((&node_names as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
8925 let mut node_names=CapeArrayStringOut::new(&mut node_names);
8926 match myself.get_node_names(&mut node_names) {
8927 Ok(_) => COBIAERR_NOERROR,
8928 Err(e) => myself.set_last_error(e,"ICapePersistReader::GetNodeNames")
8929 }
8930 }
8931
8932 extern "C" fn raw_get_node(me: *mut std::ffi::c_void,node_name:*mut crate::C::ICapeString,value:*mut *mut C::CAPEOPEN_1_2_ICapePersistReader) -> crate::C::CapeResult {
8933 if value.is_null() {
8934 return COBIAERR_NULLPOINTER;
8935 }
8936 let p = me as *mut Self::T;
8937 let myself=unsafe { &mut *p };
8938 if value.is_null() {
8939 return COBIAERR_NULLPOINTER;
8940 }
8941 let node_name=CapeStringIn::new(&node_name);
8942 match myself.get_node(&node_name) {
8943 Ok(_value) => {
8944 unsafe{*value=_value.detach();}
8945 COBIAERR_NOERROR
8946 },
8947 Err(e) => myself.set_last_error(e,"ICapePersistReader::GetNode")
8948 }
8949 }
8950
8951 const VTABLE: C::CAPEOPEN_1_2_ICapePersistReader_VTable =
8952 C::CAPEOPEN_1_2_ICapePersistReader_VTable {
8953 base: crate::C::ICapeInterface_VTable {
8954 addReference: Some(Self::T::raw_add_reference),
8955 release: Some(Self::T::raw_release),
8956 queryInterface: Some(Self::T::raw_query_interface),
8957 getLastError: Some(Self::T::raw_get_last_error),
8958 },
8959 getValueNames: Some(Self::T::raw_get_value_names),
8960 GetValueType: Some(Self::T::raw_get_value_type),
8961 GetReal: Some(Self::T::raw_get_real),
8962 GetInteger: Some(Self::T::raw_get_integer),
8963 GetBoolean: Some(Self::T::raw_get_boolean),
8964 GetString: Some(Self::T::raw_get_string),
8965 GetEnumeration: Some(Self::T::raw_get_enumeration),
8966 GetValue: Some(Self::T::raw_get_value),
8967 GetArrayReal: Some(Self::T::raw_get_array_real),
8968 GetArrayInteger: Some(Self::T::raw_get_array_integer),
8969 GetArrayBoolean: Some(Self::T::raw_get_array_boolean),
8970 GetArrayString: Some(Self::T::raw_get_array_string),
8971 GetArrayEnumeration: Some(Self::T::raw_get_array_enumeration),
8972 GetArrayValue: Some(Self::T::raw_get_array_value),
8973 GetArrayByte: Some(Self::T::raw_get_array_byte),
8974 getNodeNames: Some(Self::T::raw_get_node_names),
8975 GetNode: Some(Self::T::raw_get_node),
8976 };
8977}
8978
8979#[cape_smart_pointer(ICAPEPERSISTREADER_UUID)]
8980pub struct CapePersistReader {
8981 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapePersistReader,
8982}
8983
8984impl CapePersistReader {
8985
8986 pub fn get_value_names<TypeOfValueNames:CapeArrayStringProviderOut>(&self,value_names:&mut TypeOfValueNames) -> Result<(),COBIAError> {
8987 let result_code = unsafe {
8988 ((*(*self.interface).vTbl).getValueNames.unwrap())((*self.interface).me,(&value_names.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
8989 };
8990 match result_code {
8991 COBIAERR_NOERROR => {Ok(())},
8992 _ => Err(COBIAError::from_object(result_code,self))
8993 }
8994 }
8995
8996 pub fn get_value_type<TypeOfValueName:CapeStringProviderIn>(&self,value_name:&TypeOfValueName) -> Result<CapePersistedDataType,COBIAError> {
8997 let mut value_type:C::CAPEOPEN_1_2_CapePersistedDataType=0;
8998 let result_code = unsafe {
8999 ((*(*self.interface).vTbl).GetValueType.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),&mut value_type as *mut C::CAPEOPEN_1_2_CapePersistedDataType)
9000 };
9001 let value_type=match CapePersistedDataType::from(value_type) {
9002 Some(_value_type) => _value_type,
9003 None => {return Err(COBIAError::Message("Invalid enumeration value".to_string()));}
9004 };
9005 match result_code {
9006 COBIAERR_NOERROR => {Ok(value_type)},
9007 _ => Err(COBIAError::from_object(result_code,self))
9008 }
9009 }
9010
9011 pub fn get_real<TypeOfValueName:CapeStringProviderIn>(&self,value_name:&TypeOfValueName) -> Result<CapeReal,COBIAError> {
9012 let mut value:CapeReal=0.0;
9013 let result_code = unsafe {
9014 ((*(*self.interface).vTbl).GetReal.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),&mut value as *mut CapeReal)
9015 };
9016 match result_code {
9017 COBIAERR_NOERROR => {Ok(value)},
9018 _ => Err(COBIAError::from_object(result_code,self))
9019 }
9020 }
9021
9022 pub fn get_integer<TypeOfValueName:CapeStringProviderIn>(&self,value_name:&TypeOfValueName) -> Result<CapeInteger,COBIAError> {
9023 let mut value:CapeInteger=0;
9024 let result_code = unsafe {
9025 ((*(*self.interface).vTbl).GetInteger.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),&mut value as *mut CapeInteger)
9026 };
9027 match result_code {
9028 COBIAERR_NOERROR => {Ok(value)},
9029 _ => Err(COBIAError::from_object(result_code,self))
9030 }
9031 }
9032
9033 pub fn get_boolean<TypeOfValueName:CapeStringProviderIn>(&self,value_name:&TypeOfValueName) -> Result<CapeBoolean,COBIAError> {
9034 let mut value:CapeBoolean=false as CapeBoolean;
9035 let result_code = unsafe {
9036 ((*(*self.interface).vTbl).GetBoolean.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),&mut value as *mut CapeBoolean)
9037 };
9038 match result_code {
9039 COBIAERR_NOERROR => {Ok(value)},
9040 _ => Err(COBIAError::from_object(result_code,self))
9041 }
9042 }
9043
9044 pub fn get_string<TypeOfValueName:CapeStringProviderIn,TypeOfValue:CapeStringProviderOut>(&self,value_name:&TypeOfValueName,value:&mut TypeOfValue) -> Result<(),COBIAError> {
9045 let result_code = unsafe {
9046 ((*(*self.interface).vTbl).GetString.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&value.as_cape_string_out() as *const crate::C::ICapeString).cast_mut())
9047 };
9048 match result_code {
9049 COBIAERR_NOERROR => {Ok(())},
9050 _ => Err(COBIAError::from_object(result_code,self))
9051 }
9052 }
9053
9054 pub fn get_enumeration<TypeOfValueName:CapeStringProviderIn>(&self,value_name:&TypeOfValueName) -> Result<crate::CapeEnumeration,COBIAError> {
9055 let mut value:crate::C::CapeEnumeration=0;
9056 let result_code = unsafe {
9057 ((*(*self.interface).vTbl).GetEnumeration.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),&mut value as *mut crate::C::CapeEnumeration)
9058 };
9059 match result_code {
9060 COBIAERR_NOERROR => {Ok(value)},
9061 _ => Err(COBIAError::from_object(result_code,self))
9062 }
9063 }
9064
9065 pub fn get_value<TypeOfValueName:CapeStringProviderIn,TypeOfValue:CapeValueProviderOut>(&self,value_name:&TypeOfValueName,value:&mut TypeOfValue) -> Result<(),COBIAError> {
9066 let result_code = unsafe {
9067 ((*(*self.interface).vTbl).GetValue.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&value.as_cape_value_out() as *const crate::C::ICapeValue).cast_mut())
9068 };
9069 match result_code {
9070 COBIAERR_NOERROR => {Ok(())},
9071 _ => Err(COBIAError::from_object(result_code,self))
9072 }
9073 }
9074
9075 pub fn get_array_real<TypeOfValueName:CapeStringProviderIn,TypeOfValue:CapeArrayRealProviderOut>(&self,value_name:&TypeOfValueName,value:&mut TypeOfValue) -> Result<(),COBIAError> {
9076 let result_code = unsafe {
9077 ((*(*self.interface).vTbl).GetArrayReal.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&value.as_cape_array_real_out() as *const crate::C::ICapeArrayReal).cast_mut())
9078 };
9079 match result_code {
9080 COBIAERR_NOERROR => {Ok(())},
9081 _ => Err(COBIAError::from_object(result_code,self))
9082 }
9083 }
9084
9085 pub fn get_array_integer<TypeOfValueName:CapeStringProviderIn,TypeOfValue:CapeArrayIntegerProviderOut>(&self,value_name:&TypeOfValueName,value:&mut TypeOfValue) -> Result<(),COBIAError> {
9086 let result_code = unsafe {
9087 ((*(*self.interface).vTbl).GetArrayInteger.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&value.as_cape_array_integer_out() as *const crate::C::ICapeArrayInteger).cast_mut())
9088 };
9089 match result_code {
9090 COBIAERR_NOERROR => {Ok(())},
9091 _ => Err(COBIAError::from_object(result_code,self))
9092 }
9093 }
9094
9095 pub fn get_array_boolean<TypeOfValueName:CapeStringProviderIn,TypeOfValue:CapeArrayBooleanProviderOut>(&self,value_name:&TypeOfValueName,value:&mut TypeOfValue) -> Result<(),COBIAError> {
9096 let result_code = unsafe {
9097 ((*(*self.interface).vTbl).GetArrayBoolean.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&value.as_cape_array_boolean_out() as *const crate::C::ICapeArrayBoolean).cast_mut())
9098 };
9099 match result_code {
9100 COBIAERR_NOERROR => {Ok(())},
9101 _ => Err(COBIAError::from_object(result_code,self))
9102 }
9103 }
9104
9105 pub fn get_array_string<TypeOfValueName:CapeStringProviderIn,TypeOfValue:CapeArrayStringProviderOut>(&self,value_name:&TypeOfValueName,value:&mut TypeOfValue) -> Result<(),COBIAError> {
9106 let result_code = unsafe {
9107 ((*(*self.interface).vTbl).GetArrayString.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&value.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
9108 };
9109 match result_code {
9110 COBIAERR_NOERROR => {Ok(())},
9111 _ => Err(COBIAError::from_object(result_code,self))
9112 }
9113 }
9114
9115 pub fn get_array_enumeration<TypeOfValueName:CapeStringProviderIn,TypeOfValue:CapeArrayEnumerationProviderOut>(&self,value_name:&TypeOfValueName,value:&mut TypeOfValue) -> Result<(),COBIAError> {
9116 let result_code = unsafe {
9117 ((*(*self.interface).vTbl).GetArrayEnumeration.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&value.as_cape_array_enumeration_out() as *const crate::C::ICapeArrayEnumeration).cast_mut())
9118 };
9119 match result_code {
9120 COBIAERR_NOERROR => {Ok(())},
9121 _ => Err(COBIAError::from_object(result_code,self))
9122 }
9123 }
9124
9125 pub fn get_array_value<TypeOfValueName:CapeStringProviderIn,TypeOfValue:CapeArrayValueProviderOut>(&self,value_name:&TypeOfValueName,value:&mut TypeOfValue) -> Result<(),COBIAError> {
9126 let result_code = unsafe {
9127 ((*(*self.interface).vTbl).GetArrayValue.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&value.as_cape_array_value_out() as *const crate::C::ICapeArrayValue).cast_mut())
9128 };
9129 match result_code {
9130 COBIAERR_NOERROR => {Ok(())},
9131 _ => Err(COBIAError::from_object(result_code,self))
9132 }
9133 }
9134
9135 pub fn get_array_byte<TypeOfValueName:CapeStringProviderIn,TypeOfValue:CapeArrayByteProviderOut>(&self,value_name:&TypeOfValueName,value:&mut TypeOfValue) -> Result<(),COBIAError> {
9136 let result_code = unsafe {
9137 ((*(*self.interface).vTbl).GetArrayByte.unwrap())((*self.interface).me,(&value_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&value.as_cape_array_byte_out() as *const crate::C::ICapeArrayByte).cast_mut())
9138 };
9139 match result_code {
9140 COBIAERR_NOERROR => {Ok(())},
9141 _ => Err(COBIAError::from_object(result_code,self))
9142 }
9143 }
9144
9145 pub fn get_node_names<TypeOfNodeNames:CapeArrayStringProviderOut>(&self,node_names:&mut TypeOfNodeNames) -> Result<(),COBIAError> {
9146 let result_code = unsafe {
9147 ((*(*self.interface).vTbl).getNodeNames.unwrap())((*self.interface).me,(&node_names.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
9148 };
9149 match result_code {
9150 COBIAERR_NOERROR => {Ok(())},
9151 _ => Err(COBIAError::from_object(result_code,self))
9152 }
9153 }
9154
9155 pub fn get_node<TypeOfNodeName:CapeStringProviderIn>(&self,node_name:&TypeOfNodeName) -> Result<CapePersistReader,COBIAError> {
9156 let mut value: *mut C::CAPEOPEN_1_2_ICapePersistReader=std::ptr::null_mut();
9157 let result_code = unsafe {
9158 ((*(*self.interface).vTbl).GetNode.unwrap())((*self.interface).me,(&node_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),&mut value as *mut *mut C::CAPEOPEN_1_2_ICapePersistReader)
9159 };
9160 match result_code {
9161 COBIAERR_NOERROR => {Ok(CapePersistReader::attach(value))},
9162 _ => Err(COBIAError::from_object(result_code,self))
9163 }
9164 }
9165
9166}
9167
9168pub trait ICapePersist {
9173 fn save(&mut self,writer:CapePersistWriter,clear_dirty:CapeBoolean) -> Result<(),COBIAError>;
9174 fn load(&mut self,reader:CapePersistReader) -> Result<(),COBIAError>;
9175 fn get_is_dirty(&mut self) -> Result<CapeBoolean,COBIAError>;
9176}
9177
9178pub trait ICapePersistImpl : ICapePersist {
9179 type T: ICapeInterfaceImpl+ICapePersistImpl;
9180
9181 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
9182
9183 fn init_interface() -> crate::C::ICapeInterface {
9185 crate::C::ICapeInterface {
9186 me: std::ptr::null_mut(),
9187 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapePersist_VTable).cast_mut()
9188 as *mut crate::C::ICapeInterface_VTable,
9189 }
9190 }
9191
9192 fn init<Timpl: ICapePersistImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
9193 let iface: *mut crate::C::CAPEOPEN_1_2_ICapePersist =
9194 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapePersist;
9195 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
9196 u.add_interface(
9197 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapePersist_UUID),
9198 iface as *mut crate::C::ICapeInterface,
9199 );
9200 }
9201
9202 extern "C" fn raw_save(me: *mut std::ffi::c_void,writer:*mut C::CAPEOPEN_1_2_ICapePersistWriter,clear_dirty:CapeBoolean) -> crate::C::CapeResult {
9203 if writer.is_null() {
9204 return COBIAERR_NULLPOINTER;
9205 }
9206 let p = me as *mut Self::T;
9207 let myself=unsafe { &mut *p };
9208 if writer.is_null() {
9209 return COBIAERR_NULLPOINTER;
9210 }
9211 let writer=CapePersistWriter::from_interface_pointer(writer);
9212 match myself.save(writer,clear_dirty) {
9213 Ok(_) => COBIAERR_NOERROR,
9214 Err(e) => myself.set_last_error(e,"ICapePersist::Save")
9215 }
9216 }
9217
9218 extern "C" fn raw_load(me: *mut std::ffi::c_void,reader:*mut C::CAPEOPEN_1_2_ICapePersistReader) -> crate::C::CapeResult {
9219 if reader.is_null() {
9220 return COBIAERR_NULLPOINTER;
9221 }
9222 let p = me as *mut Self::T;
9223 let myself=unsafe { &mut *p };
9224 if reader.is_null() {
9225 return COBIAERR_NULLPOINTER;
9226 }
9227 let reader=CapePersistReader::from_interface_pointer(reader);
9228 match myself.load(reader) {
9229 Ok(_) => COBIAERR_NOERROR,
9230 Err(e) => myself.set_last_error(e,"ICapePersist::Load")
9231 }
9232 }
9233
9234 extern "C" fn raw_get_is_dirty(me: *mut std::ffi::c_void,dirty:*mut CapeBoolean) -> crate::C::CapeResult {
9235 if dirty.is_null() {
9236 return COBIAERR_NULLPOINTER;
9237 }
9238 let p = me as *mut Self::T;
9239 let myself=unsafe { &mut *p };
9240 match myself.get_is_dirty() {
9241 Ok(_dirty) => {
9242 unsafe{*dirty=_dirty;}
9243 COBIAERR_NOERROR
9244 },
9245 Err(e) => myself.set_last_error(e,"ICapePersist::GetIsDirty")
9246 }
9247 }
9248
9249 const VTABLE: C::CAPEOPEN_1_2_ICapePersist_VTable =
9250 C::CAPEOPEN_1_2_ICapePersist_VTable {
9251 base: crate::C::ICapeInterface_VTable {
9252 addReference: Some(Self::T::raw_add_reference),
9253 release: Some(Self::T::raw_release),
9254 queryInterface: Some(Self::T::raw_query_interface),
9255 getLastError: Some(Self::T::raw_get_last_error),
9256 },
9257 Save: Some(Self::T::raw_save),
9258 Load: Some(Self::T::raw_load),
9259 getIsDirty: Some(Self::T::raw_get_is_dirty),
9260 };
9261}
9262
9263#[cape_smart_pointer(ICAPEPERSIST_UUID)]
9264pub struct CapePersist {
9265 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapePersist,
9266}
9267
9268impl CapePersist {
9269
9270 pub fn save(&self,writer:&CapePersistWriter,clear_dirty:CapeBoolean) -> Result<(),COBIAError> {
9271 let result_code = unsafe {
9272 ((*(*self.interface).vTbl).Save.unwrap())((*self.interface).me,writer.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapePersistWriter,clear_dirty)
9273 };
9274 match result_code {
9275 COBIAERR_NOERROR => {Ok(())},
9276 _ => Err(COBIAError::from_object(result_code,self))
9277 }
9278 }
9279
9280 pub fn load(&self,reader:&CapePersistReader) -> Result<(),COBIAError> {
9281 let result_code = unsafe {
9282 ((*(*self.interface).vTbl).Load.unwrap())((*self.interface).me,reader.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapePersistReader)
9283 };
9284 match result_code {
9285 COBIAERR_NOERROR => {Ok(())},
9286 _ => Err(COBIAError::from_object(result_code,self))
9287 }
9288 }
9289
9290 pub fn get_is_dirty(&self) -> Result<CapeBoolean,COBIAError> {
9291 let mut dirty:CapeBoolean=false as CapeBoolean;
9292 let result_code = unsafe {
9293 ((*(*self.interface).vTbl).getIsDirty.unwrap())((*self.interface).me,&mut dirty as *mut CapeBoolean)
9294 };
9295 match result_code {
9296 COBIAERR_NOERROR => {Ok(dirty)},
9297 _ => Err(COBIAError::from_object(result_code,self))
9298 }
9299 }
9300
9301}
9302
9303pub trait ICapeReport {
9308 fn get_report_names(&mut self,names:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
9309 fn report_types(&mut self,name:&CapeStringIn,types:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
9310 fn report_locales(&mut self,name:&CapeStringIn,_type:&CapeStringIn,locales:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
9311 fn check_report_spec(&mut self,name:&CapeStringIn,_type:&CapeStringIn,locale:&CapeStringIn) -> Result<CapeBoolean,COBIAError>;
9312 fn generate_report(&mut self,name:&CapeStringIn,_type:&CapeStringIn,locale:&CapeStringIn,report_content:&mut CapeStringOut) -> Result<(),COBIAError>;
9313 fn generate_report_file(&mut self,name:&CapeStringIn,_type:&CapeStringIn,locale:&CapeStringIn,file_name:&CapeStringIn) -> Result<(),COBIAError>;
9314}
9315
9316pub trait ICapeReportImpl : ICapeReport {
9317 type T: ICapeInterfaceImpl+ICapeReportImpl;
9318
9319 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
9320
9321 fn init_interface() -> crate::C::ICapeInterface {
9323 crate::C::ICapeInterface {
9324 me: std::ptr::null_mut(),
9325 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeReport_VTable).cast_mut()
9326 as *mut crate::C::ICapeInterface_VTable,
9327 }
9328 }
9329
9330 fn init<Timpl: ICapeReportImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
9331 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeReport =
9332 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeReport;
9333 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
9334 u.add_interface(
9335 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeReport_UUID),
9336 iface as *mut crate::C::ICapeInterface,
9337 );
9338 }
9339
9340 extern "C" fn raw_get_report_names(me: *mut std::ffi::c_void,names:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
9341 if names.is_null() {
9342 return COBIAERR_NULLPOINTER;
9343 }
9344 let p = me as *mut Self::T;
9345 let myself=unsafe { &mut *p };
9346 if names.is_null() {
9347 return COBIAERR_NULLPOINTER;
9348 }
9349 let mut names=unsafe{*((&names as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
9350 let mut names=CapeArrayStringOut::new(&mut names);
9351 match myself.get_report_names(&mut names) {
9352 Ok(_) => COBIAERR_NOERROR,
9353 Err(e) => myself.set_last_error(e,"ICapeReport::GetReportNames")
9354 }
9355 }
9356
9357 extern "C" fn raw_report_types(me: *mut std::ffi::c_void,name:*mut crate::C::ICapeString,types:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
9358 if types.is_null() {
9359 return COBIAERR_NULLPOINTER;
9360 }
9361 let p = me as *mut Self::T;
9362 let myself=unsafe { &mut *p };
9363 if types.is_null() {
9364 return COBIAERR_NULLPOINTER;
9365 }
9366 let name=CapeStringIn::new(&name);
9367 let mut types=unsafe{*((&types as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
9368 let mut types=CapeArrayStringOut::new(&mut types);
9369 match myself.report_types(&name,&mut types) {
9370 Ok(_) => COBIAERR_NOERROR,
9371 Err(e) => myself.set_last_error(e,"ICapeReport::ReportTypes")
9372 }
9373 }
9374
9375 extern "C" fn raw_report_locales(me: *mut std::ffi::c_void,name:*mut crate::C::ICapeString,_type:*mut crate::C::ICapeString,locales:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
9376 if locales.is_null() {
9377 return COBIAERR_NULLPOINTER;
9378 }
9379 let p = me as *mut Self::T;
9380 let myself=unsafe { &mut *p };
9381 if locales.is_null() {
9382 return COBIAERR_NULLPOINTER;
9383 }
9384 let name=CapeStringIn::new(&name);
9385 let _type=CapeStringIn::new(&_type);
9386 let mut locales=unsafe{*((&locales as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
9387 let mut locales=CapeArrayStringOut::new(&mut locales);
9388 match myself.report_locales(&name,&_type,&mut locales) {
9389 Ok(_) => COBIAERR_NOERROR,
9390 Err(e) => myself.set_last_error(e,"ICapeReport::ReportLocales")
9391 }
9392 }
9393
9394 extern "C" fn raw_check_report_spec(me: *mut std::ffi::c_void,name:*mut crate::C::ICapeString,_type:*mut crate::C::ICapeString,locale:*mut crate::C::ICapeString,report_available:*mut CapeBoolean) -> crate::C::CapeResult {
9395 if report_available.is_null() {
9396 return COBIAERR_NULLPOINTER;
9397 }
9398 let p = me as *mut Self::T;
9399 let myself=unsafe { &mut *p };
9400 let name=CapeStringIn::new(&name);
9401 let _type=CapeStringIn::new(&_type);
9402 let locale=CapeStringIn::new(&locale);
9403 match myself.check_report_spec(&name,&_type,&locale) {
9404 Ok(_report_available) => {
9405 unsafe{*report_available=_report_available;}
9406 COBIAERR_NOERROR
9407 },
9408 Err(e) => myself.set_last_error(e,"ICapeReport::CheckReportSpec")
9409 }
9410 }
9411
9412 extern "C" fn raw_generate_report(me: *mut std::ffi::c_void,name:*mut crate::C::ICapeString,_type:*mut crate::C::ICapeString,locale:*mut crate::C::ICapeString,report_content:*mut crate::C::ICapeString) -> crate::C::CapeResult {
9413 if report_content.is_null() {
9414 return COBIAERR_NULLPOINTER;
9415 }
9416 let p = me as *mut Self::T;
9417 let myself=unsafe { &mut *p };
9418 if report_content.is_null() {
9419 return COBIAERR_NULLPOINTER;
9420 }
9421 let name=CapeStringIn::new(&name);
9422 let _type=CapeStringIn::new(&_type);
9423 let locale=CapeStringIn::new(&locale);
9424 let mut report_content=unsafe{*((&report_content as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
9425 let mut report_content=CapeStringOut::new(&mut report_content);
9426 match myself.generate_report(&name,&_type,&locale,&mut report_content) {
9427 Ok(_) => COBIAERR_NOERROR,
9428 Err(e) => myself.set_last_error(e,"ICapeReport::GenerateReport")
9429 }
9430 }
9431
9432 extern "C" fn raw_generate_report_file(me: *mut std::ffi::c_void,name:*mut crate::C::ICapeString,_type:*mut crate::C::ICapeString,locale:*mut crate::C::ICapeString,file_name:*mut crate::C::ICapeString) -> crate::C::CapeResult {
9433 let p = me as *mut Self::T;
9434 let myself=unsafe { &mut *p };
9435 let name=CapeStringIn::new(&name);
9436 let _type=CapeStringIn::new(&_type);
9437 let locale=CapeStringIn::new(&locale);
9438 let file_name=CapeStringIn::new(&file_name);
9439 match myself.generate_report_file(&name,&_type,&locale,&file_name) {
9440 Ok(_) => COBIAERR_NOERROR,
9441 Err(e) => myself.set_last_error(e,"ICapeReport::GenerateReportFile")
9442 }
9443 }
9444
9445 const VTABLE: C::CAPEOPEN_1_2_ICapeReport_VTable =
9446 C::CAPEOPEN_1_2_ICapeReport_VTable {
9447 base: crate::C::ICapeInterface_VTable {
9448 addReference: Some(Self::T::raw_add_reference),
9449 release: Some(Self::T::raw_release),
9450 queryInterface: Some(Self::T::raw_query_interface),
9451 getLastError: Some(Self::T::raw_get_last_error),
9452 },
9453 getReportNames: Some(Self::T::raw_get_report_names),
9454 ReportTypes: Some(Self::T::raw_report_types),
9455 ReportLocales: Some(Self::T::raw_report_locales),
9456 CheckReportSpec: Some(Self::T::raw_check_report_spec),
9457 GenerateReport: Some(Self::T::raw_generate_report),
9458 GenerateReportFile: Some(Self::T::raw_generate_report_file),
9459 };
9460}
9461
9462#[cape_smart_pointer(ICAPEREPORT_UUID)]
9463pub struct CapeReport {
9464 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeReport,
9465}
9466
9467impl CapeReport {
9468
9469 pub fn get_report_names<TypeOfNames:CapeArrayStringProviderOut>(&self,names:&mut TypeOfNames) -> Result<(),COBIAError> {
9470 let result_code = unsafe {
9471 ((*(*self.interface).vTbl).getReportNames.unwrap())((*self.interface).me,(&names.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
9472 };
9473 match result_code {
9474 COBIAERR_NOERROR => {Ok(())},
9475 _ => Err(COBIAError::from_object(result_code,self))
9476 }
9477 }
9478
9479 pub fn report_types<TypeOfName:CapeStringProviderIn,TypeOfTypes:CapeArrayStringProviderOut>(&self,name:&TypeOfName,types:&mut TypeOfTypes) -> Result<(),COBIAError> {
9480 let result_code = unsafe {
9481 ((*(*self.interface).vTbl).ReportTypes.unwrap())((*self.interface).me,(&name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&types.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
9482 };
9483 match result_code {
9484 COBIAERR_NOERROR => {Ok(())},
9485 _ => Err(COBIAError::from_object(result_code,self))
9486 }
9487 }
9488
9489 pub fn report_locales<TypeOfName:CapeStringProviderIn,TypeOfType:CapeStringProviderIn,TypeOfLocales:CapeArrayStringProviderOut>(&self,name:&TypeOfName,_type:&TypeOfType,locales:&mut TypeOfLocales) -> Result<(),COBIAError> {
9490 let result_code = unsafe {
9491 ((*(*self.interface).vTbl).ReportLocales.unwrap())((*self.interface).me,(&name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&_type.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&locales.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
9492 };
9493 match result_code {
9494 COBIAERR_NOERROR => {Ok(())},
9495 _ => Err(COBIAError::from_object(result_code,self))
9496 }
9497 }
9498
9499 pub fn check_report_spec<TypeOfName:CapeStringProviderIn,TypeOfType:CapeStringProviderIn,TypeOfLocale:CapeStringProviderIn>(&self,name:&TypeOfName,_type:&TypeOfType,locale:&TypeOfLocale) -> Result<CapeBoolean,COBIAError> {
9500 let mut report_available:CapeBoolean=false as CapeBoolean;
9501 let result_code = unsafe {
9502 ((*(*self.interface).vTbl).CheckReportSpec.unwrap())((*self.interface).me,(&name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&_type.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&locale.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),&mut report_available as *mut CapeBoolean)
9503 };
9504 match result_code {
9505 COBIAERR_NOERROR => {Ok(report_available)},
9506 _ => Err(COBIAError::from_object(result_code,self))
9507 }
9508 }
9509
9510 pub fn generate_report<TypeOfName:CapeStringProviderIn,TypeOfType:CapeStringProviderIn,TypeOfLocale:CapeStringProviderIn,TypeOfReportContent:CapeStringProviderOut>(&self,name:&TypeOfName,_type:&TypeOfType,locale:&TypeOfLocale,report_content:&mut TypeOfReportContent) -> Result<(),COBIAError> {
9511 let result_code = unsafe {
9512 ((*(*self.interface).vTbl).GenerateReport.unwrap())((*self.interface).me,(&name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&_type.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&locale.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&report_content.as_cape_string_out() as *const crate::C::ICapeString).cast_mut())
9513 };
9514 match result_code {
9515 COBIAERR_NOERROR => {Ok(())},
9516 _ => Err(COBIAError::from_object(result_code,self))
9517 }
9518 }
9519
9520 pub fn generate_report_file<TypeOfName:CapeStringProviderIn,TypeOfType:CapeStringProviderIn,TypeOfLocale:CapeStringProviderIn,TypeOfFileName:CapeStringProviderIn>(&self,name:&TypeOfName,_type:&TypeOfType,locale:&TypeOfLocale,file_name:&TypeOfFileName) -> Result<(),COBIAError> {
9521 let result_code = unsafe {
9522 ((*(*self.interface).vTbl).GenerateReportFile.unwrap())((*self.interface).me,(&name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&_type.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&locale.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&file_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut())
9523 };
9524 match result_code {
9525 COBIAERR_NOERROR => {Ok(())},
9526 _ => Err(COBIAError::from_object(result_code,self))
9527 }
9528 }
9529
9530}
9531
9532pub trait ICapeFlowsheetMonitoringComponent {
9537 fn monitor(&mut self) -> Result<(),COBIAError>;
9538 fn validate(&mut self,message:&mut CapeStringOut) -> Result<CapeBoolean,COBIAError>;
9539 fn get_val_status(&mut self) -> Result<CapeValidationStatus,COBIAError>;
9540}
9541
9542pub trait ICapeFlowsheetMonitoringComponentImpl : ICapeFlowsheetMonitoringComponent {
9543 type T: ICapeInterfaceImpl+ICapeFlowsheetMonitoringComponentImpl;
9544
9545 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
9546
9547 fn init_interface() -> crate::C::ICapeInterface {
9549 crate::C::ICapeInterface {
9550 me: std::ptr::null_mut(),
9551 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeFlowsheetMonitoringComponent_VTable).cast_mut()
9552 as *mut crate::C::ICapeInterface_VTable,
9553 }
9554 }
9555
9556 fn init<Timpl: ICapeFlowsheetMonitoringComponentImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
9557 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeFlowsheetMonitoringComponent =
9558 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeFlowsheetMonitoringComponent;
9559 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
9560 u.add_interface(
9561 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeFlowsheetMonitoringComponent_UUID),
9562 iface as *mut crate::C::ICapeInterface,
9563 );
9564 }
9565
9566 extern "C" fn raw_monitor(me: *mut std::ffi::c_void) -> crate::C::CapeResult {
9567 let p = me as *mut Self::T;
9568 let myself=unsafe { &mut *p };
9569 match myself.monitor() {
9570 Ok(_) => COBIAERR_NOERROR,
9571 Err(e) => myself.set_last_error(e,"ICapeFlowsheetMonitoringComponent::Monitor")
9572 }
9573 }
9574
9575 extern "C" fn raw_validate(me: *mut std::ffi::c_void,message:*mut crate::C::ICapeString,is_valid:*mut CapeBoolean) -> crate::C::CapeResult {
9576 if message.is_null()||is_valid.is_null() {
9577 return COBIAERR_NULLPOINTER;
9578 }
9579 let p = me as *mut Self::T;
9580 let myself=unsafe { &mut *p };
9581 if message.is_null() {
9582 return COBIAERR_NULLPOINTER;
9583 }
9584 let mut message=unsafe{*((&message as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
9585 let mut message=CapeStringOut::new(&mut message);
9586 match myself.validate(&mut message) {
9587 Ok(_is_valid) => {
9588 unsafe{*is_valid=_is_valid;}
9589 COBIAERR_NOERROR
9590 },
9591 Err(e) => myself.set_last_error(e,"ICapeFlowsheetMonitoringComponent::Validate")
9592 }
9593 }
9594
9595 extern "C" fn raw_get_val_status(me: *mut std::ffi::c_void,validation_status:*mut C::CAPEOPEN_1_2_CapeValidationStatus) -> crate::C::CapeResult {
9596 if validation_status.is_null() {
9597 return COBIAERR_NULLPOINTER;
9598 }
9599 let p = me as *mut Self::T;
9600 let myself=unsafe { &mut *p };
9601 match myself.get_val_status() {
9602 Ok(_validation_status) => {
9603 unsafe{*validation_status=_validation_status as C::CAPEOPEN_1_2_CapeValidationStatus;}
9604 COBIAERR_NOERROR
9605 },
9606 Err(e) => myself.set_last_error(e,"ICapeFlowsheetMonitoringComponent::GetValStatus")
9607 }
9608 }
9609
9610 const VTABLE: C::CAPEOPEN_1_2_ICapeFlowsheetMonitoringComponent_VTable =
9611 C::CAPEOPEN_1_2_ICapeFlowsheetMonitoringComponent_VTable {
9612 base: crate::C::ICapeInterface_VTable {
9613 addReference: Some(Self::T::raw_add_reference),
9614 release: Some(Self::T::raw_release),
9615 queryInterface: Some(Self::T::raw_query_interface),
9616 getLastError: Some(Self::T::raw_get_last_error),
9617 },
9618 Monitor: Some(Self::T::raw_monitor),
9619 Validate: Some(Self::T::raw_validate),
9620 getValStatus: Some(Self::T::raw_get_val_status),
9621 };
9622}
9623
9624#[cape_smart_pointer(ICAPEFLOWSHEETMONITORINGCOMPONENT_UUID)]
9625pub struct CapeFlowsheetMonitoringComponent {
9626 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeFlowsheetMonitoringComponent,
9627}
9628
9629impl CapeFlowsheetMonitoringComponent {
9630
9631 pub fn monitor(&self) -> Result<(),COBIAError> {
9632 let result_code = unsafe {
9633 ((*(*self.interface).vTbl).Monitor.unwrap())((*self.interface).me)
9634 };
9635 match result_code {
9636 COBIAERR_NOERROR => {Ok(())},
9637 _ => Err(COBIAError::from_object(result_code,self))
9638 }
9639 }
9640
9641 pub fn validate<TypeOfMessage:CapeStringProviderOut>(&self,message:&mut TypeOfMessage) -> Result<CapeBoolean,COBIAError> {
9642 let mut is_valid:CapeBoolean=false as CapeBoolean;
9643 let result_code = unsafe {
9644 ((*(*self.interface).vTbl).Validate.unwrap())((*self.interface).me,(&message.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),&mut is_valid as *mut CapeBoolean)
9645 };
9646 match result_code {
9647 COBIAERR_NOERROR => {Ok(is_valid)},
9648 _ => Err(COBIAError::from_object(result_code,self))
9649 }
9650 }
9651
9652 pub fn get_val_status(&self) -> Result<CapeValidationStatus,COBIAError> {
9653 let mut validation_status:C::CAPEOPEN_1_2_CapeValidationStatus=0;
9654 let result_code = unsafe {
9655 ((*(*self.interface).vTbl).getValStatus.unwrap())((*self.interface).me,&mut validation_status as *mut C::CAPEOPEN_1_2_CapeValidationStatus)
9656 };
9657 let validation_status=match CapeValidationStatus::from(validation_status) {
9658 Some(_validation_status) => _validation_status,
9659 None => {return Err(COBIAError::Message("Invalid enumeration value".to_string()));}
9660 };
9661 match result_code {
9662 COBIAERR_NOERROR => {Ok(validation_status)},
9663 _ => Err(COBIAError::from_object(result_code,self))
9664 }
9665 }
9666
9667}
9668
9669pub trait ICapeStream {
9674 fn stream_type(&mut self) -> Result<CapeStreamType,COBIAError>;
9675 fn get_stream_object(&mut self) -> Result<crate::CapeObject,COBIAError>;
9676 fn get_upstream_port_connection(&mut self,upstream_port:&mut CapeStringOut,upstream_unit:&mut CapeStringOut) -> Result<(),COBIAError>;
9677 fn get_downstream_port_connection(&mut self,downstream_port:&mut CapeStringOut,downstream_unit:&mut CapeStringOut) -> Result<(),COBIAError>;
9678}
9679
9680pub trait ICapeStreamImpl : ICapeStream {
9681 type T: ICapeInterfaceImpl+ICapeStreamImpl;
9682
9683 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
9684
9685 fn init_interface() -> crate::C::ICapeInterface {
9687 crate::C::ICapeInterface {
9688 me: std::ptr::null_mut(),
9689 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeStream_VTable).cast_mut()
9690 as *mut crate::C::ICapeInterface_VTable,
9691 }
9692 }
9693
9694 fn init<Timpl: ICapeStreamImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
9695 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeStream =
9696 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeStream;
9697 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
9698 u.add_interface(
9699 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeStream_UUID),
9700 iface as *mut crate::C::ICapeInterface,
9701 );
9702 }
9703
9704 extern "C" fn raw_stream_type(me: *mut std::ffi::c_void,stream_type:*mut C::CAPEOPEN_1_2_CapeStreamType) -> crate::C::CapeResult {
9705 if stream_type.is_null() {
9706 return COBIAERR_NULLPOINTER;
9707 }
9708 let p = me as *mut Self::T;
9709 let myself=unsafe { &mut *p };
9710 match myself.stream_type() {
9711 Ok(_stream_type) => {
9712 unsafe{*stream_type=_stream_type as C::CAPEOPEN_1_2_CapeStreamType;}
9713 COBIAERR_NOERROR
9714 },
9715 Err(e) => myself.set_last_error(e,"ICapeStream::StreamType")
9716 }
9717 }
9718
9719 extern "C" fn raw_get_stream_object(me: *mut std::ffi::c_void,stream_object:*mut *mut crate::C::ICapeInterface) -> crate::C::CapeResult {
9720 if stream_object.is_null() {
9721 return COBIAERR_NULLPOINTER;
9722 }
9723 let p = me as *mut Self::T;
9724 let myself=unsafe { &mut *p };
9725 if stream_object.is_null() {
9726 return COBIAERR_NULLPOINTER;
9727 }
9728 match myself.get_stream_object() {
9729 Ok(_stream_object) => {
9730 unsafe{*stream_object=_stream_object.detach();}
9731 COBIAERR_NOERROR
9732 },
9733 Err(e) => myself.set_last_error(e,"ICapeStream::GetStreamObject")
9734 }
9735 }
9736
9737 extern "C" fn raw_get_upstream_port_connection(me: *mut std::ffi::c_void,upstream_port:*mut crate::C::ICapeString,upstream_unit:*mut crate::C::ICapeString) -> crate::C::CapeResult {
9738 if upstream_port.is_null()||upstream_unit.is_null() {
9739 return COBIAERR_NULLPOINTER;
9740 }
9741 let p = me as *mut Self::T;
9742 let myself=unsafe { &mut *p };
9743 if upstream_port.is_null()||upstream_unit.is_null() {
9744 return COBIAERR_NULLPOINTER;
9745 }
9746 let mut upstream_port=unsafe{*((&upstream_port as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
9747 let mut upstream_port=CapeStringOut::new(&mut upstream_port);
9748 let mut upstream_unit=unsafe{*((&upstream_unit as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
9749 let mut upstream_unit=CapeStringOut::new(&mut upstream_unit);
9750 match myself.get_upstream_port_connection(&mut upstream_port,&mut upstream_unit) {
9751 Ok(_) => COBIAERR_NOERROR,
9752 Err(e) => myself.set_last_error(e,"ICapeStream::GetUpstreamPortConnection")
9753 }
9754 }
9755
9756 extern "C" fn raw_get_downstream_port_connection(me: *mut std::ffi::c_void,downstream_port:*mut crate::C::ICapeString,downstream_unit:*mut crate::C::ICapeString) -> crate::C::CapeResult {
9757 if downstream_port.is_null()||downstream_unit.is_null() {
9758 return COBIAERR_NULLPOINTER;
9759 }
9760 let p = me as *mut Self::T;
9761 let myself=unsafe { &mut *p };
9762 if downstream_port.is_null()||downstream_unit.is_null() {
9763 return COBIAERR_NULLPOINTER;
9764 }
9765 let mut downstream_port=unsafe{*((&downstream_port as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
9766 let mut downstream_port=CapeStringOut::new(&mut downstream_port);
9767 let mut downstream_unit=unsafe{*((&downstream_unit as *const *mut crate::C::ICapeString) as *mut *mut crate::C::ICapeString)};
9768 let mut downstream_unit=CapeStringOut::new(&mut downstream_unit);
9769 match myself.get_downstream_port_connection(&mut downstream_port,&mut downstream_unit) {
9770 Ok(_) => COBIAERR_NOERROR,
9771 Err(e) => myself.set_last_error(e,"ICapeStream::GetDownstreamPortConnection")
9772 }
9773 }
9774
9775 const VTABLE: C::CAPEOPEN_1_2_ICapeStream_VTable =
9776 C::CAPEOPEN_1_2_ICapeStream_VTable {
9777 base: crate::C::ICapeInterface_VTable {
9778 addReference: Some(Self::T::raw_add_reference),
9779 release: Some(Self::T::raw_release),
9780 queryInterface: Some(Self::T::raw_query_interface),
9781 getLastError: Some(Self::T::raw_get_last_error),
9782 },
9783 StreamType: Some(Self::T::raw_stream_type),
9784 getStreamObject: Some(Self::T::raw_get_stream_object),
9785 GetUpstreamPortConnection: Some(Self::T::raw_get_upstream_port_connection),
9786 GetDownstreamPortConnection: Some(Self::T::raw_get_downstream_port_connection),
9787 };
9788}
9789
9790#[cape_smart_pointer(ICAPESTREAM_UUID)]
9791pub struct CapeStream {
9792 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeStream,
9793}
9794
9795impl CapeStream {
9796
9797 pub fn stream_type(&self) -> Result<CapeStreamType,COBIAError> {
9798 let mut stream_type:C::CAPEOPEN_1_2_CapeStreamType=0;
9799 let result_code = unsafe {
9800 ((*(*self.interface).vTbl).StreamType.unwrap())((*self.interface).me,&mut stream_type as *mut C::CAPEOPEN_1_2_CapeStreamType)
9801 };
9802 let stream_type=match CapeStreamType::from(stream_type) {
9803 Some(_stream_type) => _stream_type,
9804 None => {return Err(COBIAError::Message("Invalid enumeration value".to_string()));}
9805 };
9806 match result_code {
9807 COBIAERR_NOERROR => {Ok(stream_type)},
9808 _ => Err(COBIAError::from_object(result_code,self))
9809 }
9810 }
9811
9812 pub fn get_stream_object(&self) -> Result<crate::CapeObject,COBIAError> {
9813 let mut stream_object: *mut crate::C::ICapeInterface=std::ptr::null_mut();
9814 let result_code = unsafe {
9815 ((*(*self.interface).vTbl).getStreamObject.unwrap())((*self.interface).me,&mut stream_object as *mut *mut crate::C::ICapeInterface)
9816 };
9817 match result_code {
9818 COBIAERR_NOERROR => {Ok(crate::CapeObject::attach(stream_object))},
9819 _ => Err(COBIAError::from_object(result_code,self))
9820 }
9821 }
9822
9823 pub fn get_upstream_port_connection<TypeOfUpstreamPort:CapeStringProviderOut,TypeOfUpstreamUnit:CapeStringProviderOut>(&self,upstream_port:&mut TypeOfUpstreamPort,upstream_unit:&mut TypeOfUpstreamUnit) -> Result<(),COBIAError> {
9824 let result_code = unsafe {
9825 ((*(*self.interface).vTbl).GetUpstreamPortConnection.unwrap())((*self.interface).me,(&upstream_port.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),(&upstream_unit.as_cape_string_out() as *const crate::C::ICapeString).cast_mut())
9826 };
9827 match result_code {
9828 COBIAERR_NOERROR => {Ok(())},
9829 _ => Err(COBIAError::from_object(result_code,self))
9830 }
9831 }
9832
9833 pub fn get_downstream_port_connection<TypeOfDownstreamPort:CapeStringProviderOut,TypeOfDownstreamUnit:CapeStringProviderOut>(&self,downstream_port:&mut TypeOfDownstreamPort,downstream_unit:&mut TypeOfDownstreamUnit) -> Result<(),COBIAError> {
9834 let result_code = unsafe {
9835 ((*(*self.interface).vTbl).GetDownstreamPortConnection.unwrap())((*self.interface).me,(&downstream_port.as_cape_string_out() as *const crate::C::ICapeString).cast_mut(),(&downstream_unit.as_cape_string_out() as *const crate::C::ICapeString).cast_mut())
9836 };
9837 match result_code {
9838 COBIAERR_NOERROR => {Ok(())},
9839 _ => Err(COBIAError::from_object(result_code,self))
9840 }
9841 }
9842
9843}
9844
9845pub trait ICapeFlowsheetMonitoringEventSink {
9850 fn unit_operation_added(&mut self,unit:CapeUnit) -> Result<(),COBIAError>;
9851 fn unit_operation_removed(&mut self,unit:CapeUnit) -> Result<(),COBIAError>;
9852 fn unit_operation_renamed(&mut self,unit:CapeUnit,old_name:&CapeStringIn) -> Result<(),COBIAError>;
9853 fn stream_added(&mut self,stream:CapeStream,_type:CapeStreamType) -> Result<(),COBIAError>;
9854 fn stream_removed(&mut self,stream:CapeStream,_type:CapeStreamType) -> Result<(),COBIAError>;
9855 fn stream_renamed(&mut self,stream:CapeStream,_type:CapeStreamType,old_name:&CapeStringIn) -> Result<(),COBIAError>;
9856 fn connection_changed(&mut self,stream:CapeStream,_type:CapeStreamType,port:CapeUnitPort,unit:CapeUnit) -> Result<(),COBIAError>;
9857 fn flowsheet_solution_status_changed(&mut self,solution_status:CapeSolutionStatus) -> Result<(),COBIAError>;
9858 fn flowsheet_validation_state_changed(&mut self,validation_status:CapeValidationStatus) -> Result<(),COBIAError>;
9859 fn next_time_step(&mut self) -> Result<(),COBIAError>;
9860}
9861
9862pub trait ICapeFlowsheetMonitoringEventSinkImpl : ICapeFlowsheetMonitoringEventSink {
9863 type T: ICapeInterfaceImpl+ICapeFlowsheetMonitoringEventSinkImpl;
9864
9865 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
9866
9867 fn init_interface() -> crate::C::ICapeInterface {
9869 crate::C::ICapeInterface {
9870 me: std::ptr::null_mut(),
9871 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeFlowsheetMonitoringEventSink_VTable).cast_mut()
9872 as *mut crate::C::ICapeInterface_VTable,
9873 }
9874 }
9875
9876 fn init<Timpl: ICapeFlowsheetMonitoringEventSinkImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
9877 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeFlowsheetMonitoringEventSink =
9878 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeFlowsheetMonitoringEventSink;
9879 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
9880 u.add_interface(
9881 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeFlowsheetMonitoringEventSink_UUID),
9882 iface as *mut crate::C::ICapeInterface,
9883 );
9884 }
9885
9886 extern "C" fn raw_unit_operation_added(me: *mut std::ffi::c_void,unit:*mut C::CAPEOPEN_1_2_ICapeUnit) -> crate::C::CapeResult {
9887 if unit.is_null() {
9888 return COBIAERR_NULLPOINTER;
9889 }
9890 let p = me as *mut Self::T;
9891 let myself=unsafe { &mut *p };
9892 if unit.is_null() {
9893 return COBIAERR_NULLPOINTER;
9894 }
9895 let unit=CapeUnit::from_interface_pointer(unit);
9896 match myself.unit_operation_added(unit) {
9897 Ok(_) => COBIAERR_NOERROR,
9898 Err(e) => myself.set_last_error(e,"ICapeFlowsheetMonitoringEventSink::UnitOperationAdded")
9899 }
9900 }
9901
9902 extern "C" fn raw_unit_operation_removed(me: *mut std::ffi::c_void,unit:*mut C::CAPEOPEN_1_2_ICapeUnit) -> crate::C::CapeResult {
9903 if unit.is_null() {
9904 return COBIAERR_NULLPOINTER;
9905 }
9906 let p = me as *mut Self::T;
9907 let myself=unsafe { &mut *p };
9908 if unit.is_null() {
9909 return COBIAERR_NULLPOINTER;
9910 }
9911 let unit=CapeUnit::from_interface_pointer(unit);
9912 match myself.unit_operation_removed(unit) {
9913 Ok(_) => COBIAERR_NOERROR,
9914 Err(e) => myself.set_last_error(e,"ICapeFlowsheetMonitoringEventSink::UnitOperationRemoved")
9915 }
9916 }
9917
9918 extern "C" fn raw_unit_operation_renamed(me: *mut std::ffi::c_void,unit:*mut C::CAPEOPEN_1_2_ICapeUnit,old_name:*mut crate::C::ICapeString) -> crate::C::CapeResult {
9919 if unit.is_null() {
9920 return COBIAERR_NULLPOINTER;
9921 }
9922 let p = me as *mut Self::T;
9923 let myself=unsafe { &mut *p };
9924 if unit.is_null() {
9925 return COBIAERR_NULLPOINTER;
9926 }
9927 let unit=CapeUnit::from_interface_pointer(unit);
9928 let old_name=CapeStringIn::new(&old_name);
9929 match myself.unit_operation_renamed(unit,&old_name) {
9930 Ok(_) => COBIAERR_NOERROR,
9931 Err(e) => myself.set_last_error(e,"ICapeFlowsheetMonitoringEventSink::UnitOperationRenamed")
9932 }
9933 }
9934
9935 extern "C" fn raw_stream_added(me: *mut std::ffi::c_void,stream:*mut C::CAPEOPEN_1_2_ICapeStream,_type:C::CAPEOPEN_1_2_CapeStreamType) -> crate::C::CapeResult {
9936 if stream.is_null() {
9937 return COBIAERR_NULLPOINTER;
9938 }
9939 let p = me as *mut Self::T;
9940 let myself=unsafe { &mut *p };
9941 if stream.is_null() {
9942 return COBIAERR_NULLPOINTER;
9943 }
9944 let stream=CapeStream::from_interface_pointer(stream);
9945 let _type=match CapeStreamType::from(_type) {
9946 Some(__type) => __type,
9947 None => {return myself.set_last_error(COBIAError::Message("Invalid enumeration value".to_string()),"ICapeFlowsheetMonitoringEventSink::StreamAdded");}
9948 };
9949 match myself.stream_added(stream,_type) {
9950 Ok(_) => COBIAERR_NOERROR,
9951 Err(e) => myself.set_last_error(e,"ICapeFlowsheetMonitoringEventSink::StreamAdded")
9952 }
9953 }
9954
9955 extern "C" fn raw_stream_removed(me: *mut std::ffi::c_void,stream:*mut C::CAPEOPEN_1_2_ICapeStream,_type:C::CAPEOPEN_1_2_CapeStreamType) -> crate::C::CapeResult {
9956 if stream.is_null() {
9957 return COBIAERR_NULLPOINTER;
9958 }
9959 let p = me as *mut Self::T;
9960 let myself=unsafe { &mut *p };
9961 if stream.is_null() {
9962 return COBIAERR_NULLPOINTER;
9963 }
9964 let stream=CapeStream::from_interface_pointer(stream);
9965 let _type=match CapeStreamType::from(_type) {
9966 Some(__type) => __type,
9967 None => {return myself.set_last_error(COBIAError::Message("Invalid enumeration value".to_string()),"ICapeFlowsheetMonitoringEventSink::StreamRemoved");}
9968 };
9969 match myself.stream_removed(stream,_type) {
9970 Ok(_) => COBIAERR_NOERROR,
9971 Err(e) => myself.set_last_error(e,"ICapeFlowsheetMonitoringEventSink::StreamRemoved")
9972 }
9973 }
9974
9975 extern "C" fn raw_stream_renamed(me: *mut std::ffi::c_void,stream:*mut C::CAPEOPEN_1_2_ICapeStream,_type:C::CAPEOPEN_1_2_CapeStreamType,old_name:*mut crate::C::ICapeString) -> crate::C::CapeResult {
9976 if stream.is_null() {
9977 return COBIAERR_NULLPOINTER;
9978 }
9979 let p = me as *mut Self::T;
9980 let myself=unsafe { &mut *p };
9981 if stream.is_null() {
9982 return COBIAERR_NULLPOINTER;
9983 }
9984 let stream=CapeStream::from_interface_pointer(stream);
9985 let _type=match CapeStreamType::from(_type) {
9986 Some(__type) => __type,
9987 None => {return myself.set_last_error(COBIAError::Message("Invalid enumeration value".to_string()),"ICapeFlowsheetMonitoringEventSink::StreamRenamed");}
9988 };
9989 let old_name=CapeStringIn::new(&old_name);
9990 match myself.stream_renamed(stream,_type,&old_name) {
9991 Ok(_) => COBIAERR_NOERROR,
9992 Err(e) => myself.set_last_error(e,"ICapeFlowsheetMonitoringEventSink::StreamRenamed")
9993 }
9994 }
9995
9996 extern "C" fn raw_connection_changed(me: *mut std::ffi::c_void,stream:*mut C::CAPEOPEN_1_2_ICapeStream,_type:C::CAPEOPEN_1_2_CapeStreamType,port:*mut C::CAPEOPEN_1_2_ICapeUnitPort,unit:*mut C::CAPEOPEN_1_2_ICapeUnit) -> crate::C::CapeResult {
9997 if stream.is_null()||port.is_null()||unit.is_null() {
9998 return COBIAERR_NULLPOINTER;
9999 }
10000 let p = me as *mut Self::T;
10001 let myself=unsafe { &mut *p };
10002 if stream.is_null()||port.is_null()||unit.is_null() {
10003 return COBIAERR_NULLPOINTER;
10004 }
10005 let stream=CapeStream::from_interface_pointer(stream);
10006 let _type=match CapeStreamType::from(_type) {
10007 Some(__type) => __type,
10008 None => {return myself.set_last_error(COBIAError::Message("Invalid enumeration value".to_string()),"ICapeFlowsheetMonitoringEventSink::ConnectionChanged");}
10009 };
10010 let port=CapeUnitPort::from_interface_pointer(port);
10011 let unit=CapeUnit::from_interface_pointer(unit);
10012 match myself.connection_changed(stream,_type,port,unit) {
10013 Ok(_) => COBIAERR_NOERROR,
10014 Err(e) => myself.set_last_error(e,"ICapeFlowsheetMonitoringEventSink::ConnectionChanged")
10015 }
10016 }
10017
10018 extern "C" fn raw_flowsheet_solution_status_changed(me: *mut std::ffi::c_void,solution_status:C::CAPEOPEN_1_2_CapeSolutionStatus) -> crate::C::CapeResult {
10019 let p = me as *mut Self::T;
10020 let myself=unsafe { &mut *p };
10021 let solution_status=match CapeSolutionStatus::from(solution_status) {
10022 Some(_solution_status) => _solution_status,
10023 None => {return myself.set_last_error(COBIAError::Message("Invalid enumeration value".to_string()),"ICapeFlowsheetMonitoringEventSink::FlowsheetSolutionStatusChanged");}
10024 };
10025 match myself.flowsheet_solution_status_changed(solution_status) {
10026 Ok(_) => COBIAERR_NOERROR,
10027 Err(e) => myself.set_last_error(e,"ICapeFlowsheetMonitoringEventSink::FlowsheetSolutionStatusChanged")
10028 }
10029 }
10030
10031 extern "C" fn raw_flowsheet_validation_state_changed(me: *mut std::ffi::c_void,validation_status:C::CAPEOPEN_1_2_CapeValidationStatus) -> crate::C::CapeResult {
10032 let p = me as *mut Self::T;
10033 let myself=unsafe { &mut *p };
10034 let validation_status=match CapeValidationStatus::from(validation_status) {
10035 Some(_validation_status) => _validation_status,
10036 None => {return myself.set_last_error(COBIAError::Message("Invalid enumeration value".to_string()),"ICapeFlowsheetMonitoringEventSink::FlowsheetValidationStateChanged");}
10037 };
10038 match myself.flowsheet_validation_state_changed(validation_status) {
10039 Ok(_) => COBIAERR_NOERROR,
10040 Err(e) => myself.set_last_error(e,"ICapeFlowsheetMonitoringEventSink::FlowsheetValidationStateChanged")
10041 }
10042 }
10043
10044 extern "C" fn raw_next_time_step(me: *mut std::ffi::c_void) -> crate::C::CapeResult {
10045 let p = me as *mut Self::T;
10046 let myself=unsafe { &mut *p };
10047 match myself.next_time_step() {
10048 Ok(_) => COBIAERR_NOERROR,
10049 Err(e) => myself.set_last_error(e,"ICapeFlowsheetMonitoringEventSink::NextTimeStep")
10050 }
10051 }
10052
10053 const VTABLE: C::CAPEOPEN_1_2_ICapeFlowsheetMonitoringEventSink_VTable =
10054 C::CAPEOPEN_1_2_ICapeFlowsheetMonitoringEventSink_VTable {
10055 base: crate::C::ICapeInterface_VTable {
10056 addReference: Some(Self::T::raw_add_reference),
10057 release: Some(Self::T::raw_release),
10058 queryInterface: Some(Self::T::raw_query_interface),
10059 getLastError: Some(Self::T::raw_get_last_error),
10060 },
10061 UnitOperationAdded: Some(Self::T::raw_unit_operation_added),
10062 UnitOperationRemoved: Some(Self::T::raw_unit_operation_removed),
10063 UnitOperationRenamed: Some(Self::T::raw_unit_operation_renamed),
10064 StreamAdded: Some(Self::T::raw_stream_added),
10065 StreamRemoved: Some(Self::T::raw_stream_removed),
10066 StreamRenamed: Some(Self::T::raw_stream_renamed),
10067 ConnectionChanged: Some(Self::T::raw_connection_changed),
10068 FlowsheetSolutionStatusChanged: Some(Self::T::raw_flowsheet_solution_status_changed),
10069 FlowsheetValidationStateChanged: Some(Self::T::raw_flowsheet_validation_state_changed),
10070 NextTimeStep: Some(Self::T::raw_next_time_step),
10071 };
10072}
10073
10074#[cape_smart_pointer(ICAPEFLOWSHEETMONITORINGEVENTSINK_UUID)]
10075pub struct CapeFlowsheetMonitoringEventSink {
10076 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeFlowsheetMonitoringEventSink,
10077}
10078
10079impl CapeFlowsheetMonitoringEventSink {
10080
10081 pub fn unit_operation_added(&self,unit:&CapeUnit) -> Result<(),COBIAError> {
10082 let result_code = unsafe {
10083 ((*(*self.interface).vTbl).UnitOperationAdded.unwrap())((*self.interface).me,unit.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeUnit)
10084 };
10085 match result_code {
10086 COBIAERR_NOERROR => {Ok(())},
10087 _ => Err(COBIAError::from_object(result_code,self))
10088 }
10089 }
10090
10091 pub fn unit_operation_removed(&self,unit:&CapeUnit) -> Result<(),COBIAError> {
10092 let result_code = unsafe {
10093 ((*(*self.interface).vTbl).UnitOperationRemoved.unwrap())((*self.interface).me,unit.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeUnit)
10094 };
10095 match result_code {
10096 COBIAERR_NOERROR => {Ok(())},
10097 _ => Err(COBIAError::from_object(result_code,self))
10098 }
10099 }
10100
10101 pub fn unit_operation_renamed<TypeOfOldName:CapeStringProviderIn>(&self,unit:&CapeUnit,old_name:&TypeOfOldName) -> Result<(),COBIAError> {
10102 let result_code = unsafe {
10103 ((*(*self.interface).vTbl).UnitOperationRenamed.unwrap())((*self.interface).me,unit.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeUnit,(&old_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut())
10104 };
10105 match result_code {
10106 COBIAERR_NOERROR => {Ok(())},
10107 _ => Err(COBIAError::from_object(result_code,self))
10108 }
10109 }
10110
10111 pub fn stream_added(&self,stream:&CapeStream,_type:CapeStreamType) -> Result<(),COBIAError> {
10112 let result_code = unsafe {
10113 ((*(*self.interface).vTbl).StreamAdded.unwrap())((*self.interface).me,stream.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeStream,_type as C::CAPEOPEN_1_2_CapeStreamType)
10114 };
10115 match result_code {
10116 COBIAERR_NOERROR => {Ok(())},
10117 _ => Err(COBIAError::from_object(result_code,self))
10118 }
10119 }
10120
10121 pub fn stream_removed(&self,stream:&CapeStream,_type:CapeStreamType) -> Result<(),COBIAError> {
10122 let result_code = unsafe {
10123 ((*(*self.interface).vTbl).StreamRemoved.unwrap())((*self.interface).me,stream.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeStream,_type as C::CAPEOPEN_1_2_CapeStreamType)
10124 };
10125 match result_code {
10126 COBIAERR_NOERROR => {Ok(())},
10127 _ => Err(COBIAError::from_object(result_code,self))
10128 }
10129 }
10130
10131 pub fn stream_renamed<TypeOfOldName:CapeStringProviderIn>(&self,stream:&CapeStream,_type:CapeStreamType,old_name:&TypeOfOldName) -> Result<(),COBIAError> {
10132 let result_code = unsafe {
10133 ((*(*self.interface).vTbl).StreamRenamed.unwrap())((*self.interface).me,stream.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeStream,_type as C::CAPEOPEN_1_2_CapeStreamType,(&old_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut())
10134 };
10135 match result_code {
10136 COBIAERR_NOERROR => {Ok(())},
10137 _ => Err(COBIAError::from_object(result_code,self))
10138 }
10139 }
10140
10141 pub fn connection_changed(&self,stream:&CapeStream,_type:CapeStreamType,port:&CapeUnitPort,unit:&CapeUnit) -> Result<(),COBIAError> {
10142 let result_code = unsafe {
10143 ((*(*self.interface).vTbl).ConnectionChanged.unwrap())((*self.interface).me,stream.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeStream,_type as C::CAPEOPEN_1_2_CapeStreamType,port.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeUnitPort,unit.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeUnit)
10144 };
10145 match result_code {
10146 COBIAERR_NOERROR => {Ok(())},
10147 _ => Err(COBIAError::from_object(result_code,self))
10148 }
10149 }
10150
10151 pub fn flowsheet_solution_status_changed(&self,solution_status:CapeSolutionStatus) -> Result<(),COBIAError> {
10152 let result_code = unsafe {
10153 ((*(*self.interface).vTbl).FlowsheetSolutionStatusChanged.unwrap())((*self.interface).me,solution_status as C::CAPEOPEN_1_2_CapeSolutionStatus)
10154 };
10155 match result_code {
10156 COBIAERR_NOERROR => {Ok(())},
10157 _ => Err(COBIAError::from_object(result_code,self))
10158 }
10159 }
10160
10161 pub fn flowsheet_validation_state_changed(&self,validation_status:CapeValidationStatus) -> Result<(),COBIAError> {
10162 let result_code = unsafe {
10163 ((*(*self.interface).vTbl).FlowsheetValidationStateChanged.unwrap())((*self.interface).me,validation_status as C::CAPEOPEN_1_2_CapeValidationStatus)
10164 };
10165 match result_code {
10166 COBIAERR_NOERROR => {Ok(())},
10167 _ => Err(COBIAError::from_object(result_code,self))
10168 }
10169 }
10170
10171 pub fn next_time_step(&self) -> Result<(),COBIAError> {
10172 let result_code = unsafe {
10173 ((*(*self.interface).vTbl).NextTimeStep.unwrap())((*self.interface).me)
10174 };
10175 match result_code {
10176 COBIAERR_NOERROR => {Ok(())},
10177 _ => Err(COBIAError::from_object(result_code,self))
10178 }
10179 }
10180
10181}
10182
10183pub trait ICapeFlowsheetMonitoring {
10188 fn get_stream_collection(&mut self,_type:CapeStreamType) -> Result<CapeCollection<CapeStream>,COBIAError>;
10189 fn get_unit_operation_collection(&mut self) -> Result<CapeCollection<CapeUnit>,COBIAError>;
10190 fn get_solution_status(&mut self) -> Result<CapeSolutionStatus,COBIAError>;
10191 fn get_val_status(&mut self) -> Result<CapeValidationStatus,COBIAError>;
10192 fn register_for_events(&mut self,component:crate::CapeObject,events:&CapeArrayEnumerationIn<CapeMonitoringEvent>) -> Result<(),COBIAError>;
10193 fn get_supported_events(&mut self,supported_events:&mut CapeArrayEnumerationOut<CapeMonitoringEvent>) -> Result<(),COBIAError>;
10194}
10195
10196pub trait ICapeFlowsheetMonitoringImpl : ICapeFlowsheetMonitoring {
10197 type T: ICapeInterfaceImpl+ICapeFlowsheetMonitoringImpl;
10198
10199 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
10200
10201 fn init_interface() -> crate::C::ICapeInterface {
10203 crate::C::ICapeInterface {
10204 me: std::ptr::null_mut(),
10205 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeFlowsheetMonitoring_VTable).cast_mut()
10206 as *mut crate::C::ICapeInterface_VTable,
10207 }
10208 }
10209
10210 fn init<Timpl: ICapeFlowsheetMonitoringImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
10211 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeFlowsheetMonitoring =
10212 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeFlowsheetMonitoring;
10213 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
10214 u.add_interface(
10215 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeFlowsheetMonitoring_UUID),
10216 iface as *mut crate::C::ICapeInterface,
10217 );
10218 }
10219
10220 extern "C" fn raw_get_stream_collection(me: *mut std::ffi::c_void,_type:C::CAPEOPEN_1_2_CapeStreamType,stream_collection:*mut *mut C::CAPEOPEN_1_2_ICapeCollection) -> crate::C::CapeResult {
10221 if stream_collection.is_null() {
10222 return COBIAERR_NULLPOINTER;
10223 }
10224 let p = me as *mut Self::T;
10225 let myself=unsafe { &mut *p };
10226 if stream_collection.is_null() {
10227 return COBIAERR_NULLPOINTER;
10228 }
10229 let _type=match CapeStreamType::from(_type) {
10230 Some(__type) => __type,
10231 None => {return myself.set_last_error(COBIAError::Message("Invalid enumeration value".to_string()),"ICapeFlowsheetMonitoring::GetStreamCollection");}
10232 };
10233 match myself.get_stream_collection(_type) {
10234 Ok(_stream_collection) => {
10235 unsafe{*stream_collection=_stream_collection.detach();}
10236 COBIAERR_NOERROR
10237 },
10238 Err(e) => myself.set_last_error(e,"ICapeFlowsheetMonitoring::GetStreamCollection")
10239 }
10240 }
10241
10242 extern "C" fn raw_get_unit_operation_collection(me: *mut std::ffi::c_void,unit_operation_collection:*mut *mut C::CAPEOPEN_1_2_ICapeCollection) -> crate::C::CapeResult {
10243 if unit_operation_collection.is_null() {
10244 return COBIAERR_NULLPOINTER;
10245 }
10246 let p = me as *mut Self::T;
10247 let myself=unsafe { &mut *p };
10248 if unit_operation_collection.is_null() {
10249 return COBIAERR_NULLPOINTER;
10250 }
10251 match myself.get_unit_operation_collection() {
10252 Ok(_unit_operation_collection) => {
10253 unsafe{*unit_operation_collection=_unit_operation_collection.detach();}
10254 COBIAERR_NOERROR
10255 },
10256 Err(e) => myself.set_last_error(e,"ICapeFlowsheetMonitoring::GetUnitOperationCollection")
10257 }
10258 }
10259
10260 extern "C" fn raw_get_solution_status(me: *mut std::ffi::c_void,solution_status:*mut C::CAPEOPEN_1_2_CapeSolutionStatus) -> crate::C::CapeResult {
10261 if solution_status.is_null() {
10262 return COBIAERR_NULLPOINTER;
10263 }
10264 let p = me as *mut Self::T;
10265 let myself=unsafe { &mut *p };
10266 match myself.get_solution_status() {
10267 Ok(_solution_status) => {
10268 unsafe{*solution_status=_solution_status as C::CAPEOPEN_1_2_CapeSolutionStatus;}
10269 COBIAERR_NOERROR
10270 },
10271 Err(e) => myself.set_last_error(e,"ICapeFlowsheetMonitoring::GetSolutionStatus")
10272 }
10273 }
10274
10275 extern "C" fn raw_get_val_status(me: *mut std::ffi::c_void,validation_status:*mut C::CAPEOPEN_1_2_CapeValidationStatus) -> crate::C::CapeResult {
10276 if validation_status.is_null() {
10277 return COBIAERR_NULLPOINTER;
10278 }
10279 let p = me as *mut Self::T;
10280 let myself=unsafe { &mut *p };
10281 match myself.get_val_status() {
10282 Ok(_validation_status) => {
10283 unsafe{*validation_status=_validation_status as C::CAPEOPEN_1_2_CapeValidationStatus;}
10284 COBIAERR_NOERROR
10285 },
10286 Err(e) => myself.set_last_error(e,"ICapeFlowsheetMonitoring::GetValStatus")
10287 }
10288 }
10289
10290 extern "C" fn raw_register_for_events(me: *mut std::ffi::c_void,component:*mut crate::C::ICapeInterface,events:*mut crate::C::ICapeArrayEnumeration) -> crate::C::CapeResult {
10291 if component.is_null() {
10292 return COBIAERR_NULLPOINTER;
10293 }
10294 let p = me as *mut Self::T;
10295 let myself=unsafe { &mut *p };
10296 if component.is_null() {
10297 return COBIAERR_NULLPOINTER;
10298 }
10299 let component=crate::CapeObject::from_interface_pointer(component);
10300 let events=CapeArrayEnumerationIn::<CapeMonitoringEvent>::new(&events);
10301 match myself.register_for_events(component,&events) {
10302 Ok(_) => COBIAERR_NOERROR,
10303 Err(e) => myself.set_last_error(e,"ICapeFlowsheetMonitoring::RegisterForEvents")
10304 }
10305 }
10306
10307 extern "C" fn raw_get_supported_events(me: *mut std::ffi::c_void,supported_events:*mut crate::C::ICapeArrayEnumeration) -> crate::C::CapeResult {
10308 if supported_events.is_null() {
10309 return COBIAERR_NULLPOINTER;
10310 }
10311 let p = me as *mut Self::T;
10312 let myself=unsafe { &mut *p };
10313 if supported_events.is_null() {
10314 return COBIAERR_NULLPOINTER;
10315 }
10316 let mut supported_events=unsafe{*((&supported_events as *const *mut crate::C::ICapeArrayEnumeration) as *mut *mut crate::C::ICapeArrayEnumeration)};
10317 let mut supported_events=CapeArrayEnumerationOut::<CapeMonitoringEvent>::new(&mut supported_events);
10318 match myself.get_supported_events(&mut supported_events) {
10319 Ok(_) => COBIAERR_NOERROR,
10320 Err(e) => myself.set_last_error(e,"ICapeFlowsheetMonitoring::GetSupportedEvents")
10321 }
10322 }
10323
10324 const VTABLE: C::CAPEOPEN_1_2_ICapeFlowsheetMonitoring_VTable =
10325 C::CAPEOPEN_1_2_ICapeFlowsheetMonitoring_VTable {
10326 base: crate::C::ICapeInterface_VTable {
10327 addReference: Some(Self::T::raw_add_reference),
10328 release: Some(Self::T::raw_release),
10329 queryInterface: Some(Self::T::raw_query_interface),
10330 getLastError: Some(Self::T::raw_get_last_error),
10331 },
10332 GetStreamCollection: Some(Self::T::raw_get_stream_collection),
10333 GetUnitOperationCollection: Some(Self::T::raw_get_unit_operation_collection),
10334 getSolutionStatus: Some(Self::T::raw_get_solution_status),
10335 getValStatus: Some(Self::T::raw_get_val_status),
10336 RegisterForEvents: Some(Self::T::raw_register_for_events),
10337 getSupportedEvents: Some(Self::T::raw_get_supported_events),
10338 };
10339}
10340
10341#[cape_smart_pointer(ICAPEFLOWSHEETMONITORING_UUID)]
10342pub struct CapeFlowsheetMonitoring {
10343 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeFlowsheetMonitoring,
10344}
10345
10346impl CapeFlowsheetMonitoring {
10347
10348 pub fn get_stream_collection(&self,_type:CapeStreamType) -> Result<CapeCollection<CapeStream>,COBIAError> {
10349 let mut stream_collection: *mut C::CAPEOPEN_1_2_ICapeCollection=std::ptr::null_mut();
10350 let result_code = unsafe {
10351 ((*(*self.interface).vTbl).GetStreamCollection.unwrap())((*self.interface).me,_type as C::CAPEOPEN_1_2_CapeStreamType,&mut stream_collection as *mut *mut C::CAPEOPEN_1_2_ICapeCollection)
10352 };
10353 match result_code {
10354 COBIAERR_NOERROR => {Ok(CapeCollection::<CapeStream>::attach(stream_collection))},
10355 _ => Err(COBIAError::from_object(result_code,self))
10356 }
10357 }
10358
10359 pub fn get_unit_operation_collection(&self) -> Result<CapeCollection<CapeUnit>,COBIAError> {
10360 let mut unit_operation_collection: *mut C::CAPEOPEN_1_2_ICapeCollection=std::ptr::null_mut();
10361 let result_code = unsafe {
10362 ((*(*self.interface).vTbl).GetUnitOperationCollection.unwrap())((*self.interface).me,&mut unit_operation_collection as *mut *mut C::CAPEOPEN_1_2_ICapeCollection)
10363 };
10364 match result_code {
10365 COBIAERR_NOERROR => {Ok(CapeCollection::<CapeUnit>::attach(unit_operation_collection))},
10366 _ => Err(COBIAError::from_object(result_code,self))
10367 }
10368 }
10369
10370 pub fn get_solution_status(&self) -> Result<CapeSolutionStatus,COBIAError> {
10371 let mut solution_status:C::CAPEOPEN_1_2_CapeSolutionStatus=0;
10372 let result_code = unsafe {
10373 ((*(*self.interface).vTbl).getSolutionStatus.unwrap())((*self.interface).me,&mut solution_status as *mut C::CAPEOPEN_1_2_CapeSolutionStatus)
10374 };
10375 let solution_status=match CapeSolutionStatus::from(solution_status) {
10376 Some(_solution_status) => _solution_status,
10377 None => {return Err(COBIAError::Message("Invalid enumeration value".to_string()));}
10378 };
10379 match result_code {
10380 COBIAERR_NOERROR => {Ok(solution_status)},
10381 _ => Err(COBIAError::from_object(result_code,self))
10382 }
10383 }
10384
10385 pub fn get_val_status(&self) -> Result<CapeValidationStatus,COBIAError> {
10386 let mut validation_status:C::CAPEOPEN_1_2_CapeValidationStatus=0;
10387 let result_code = unsafe {
10388 ((*(*self.interface).vTbl).getValStatus.unwrap())((*self.interface).me,&mut validation_status as *mut C::CAPEOPEN_1_2_CapeValidationStatus)
10389 };
10390 let validation_status=match CapeValidationStatus::from(validation_status) {
10391 Some(_validation_status) => _validation_status,
10392 None => {return Err(COBIAError::Message("Invalid enumeration value".to_string()));}
10393 };
10394 match result_code {
10395 COBIAERR_NOERROR => {Ok(validation_status)},
10396 _ => Err(COBIAError::from_object(result_code,self))
10397 }
10398 }
10399
10400 pub fn register_for_events<TypeOfEvents:CapeArrayEnumerationProviderIn>(&self,component:&crate::CapeObject,events:&TypeOfEvents) -> Result<(),COBIAError> {
10401 let result_code = unsafe {
10402 ((*(*self.interface).vTbl).RegisterForEvents.unwrap())((*self.interface).me,component.as_interface_pointer() as *mut crate::C::ICapeInterface,(&events.as_cape_array_enumeration_in() as *const crate::C::ICapeArrayEnumeration).cast_mut())
10403 };
10404 match result_code {
10405 COBIAERR_NOERROR => {Ok(())},
10406 _ => Err(COBIAError::from_object(result_code,self))
10407 }
10408 }
10409
10410 pub fn get_supported_events<TypeOfSupportedEvents:CapeArrayEnumerationProviderOut>(&self,supported_events:&mut TypeOfSupportedEvents) -> Result<(),COBIAError> {
10411 let result_code = unsafe {
10412 ((*(*self.interface).vTbl).getSupportedEvents.unwrap())((*self.interface).me,(&supported_events.as_cape_array_enumeration_out() as *const crate::C::ICapeArrayEnumeration).cast_mut())
10413 };
10414 match result_code {
10415 COBIAERR_NOERROR => {Ok(())},
10416 _ => Err(COBIAError::from_object(result_code,self))
10417 }
10418 }
10419
10420}
10421
10422pub trait ICapeThermoMaterialCustomData {
10427 fn get_custom_data_container(&mut self,source:crate::CapeObject) -> Result<crate::CapeObject,COBIAError>;
10428}
10429
10430pub trait ICapeThermoMaterialCustomDataImpl : ICapeThermoMaterialCustomData {
10431 type T: ICapeInterfaceImpl+ICapeThermoMaterialCustomDataImpl;
10432
10433 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
10434
10435 fn init_interface() -> crate::C::ICapeInterface {
10437 crate::C::ICapeInterface {
10438 me: std::ptr::null_mut(),
10439 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeThermoMaterialCustomData_VTable).cast_mut()
10440 as *mut crate::C::ICapeInterface_VTable,
10441 }
10442 }
10443
10444 fn init<Timpl: ICapeThermoMaterialCustomDataImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
10445 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeThermoMaterialCustomData =
10446 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeThermoMaterialCustomData;
10447 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
10448 u.add_interface(
10449 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeThermoMaterialCustomData_UUID),
10450 iface as *mut crate::C::ICapeInterface,
10451 );
10452 }
10453
10454 extern "C" fn raw_get_custom_data_container(me: *mut std::ffi::c_void,source:*mut crate::C::ICapeInterface,custom_data_container:*mut *mut crate::C::ICapeInterface) -> crate::C::CapeResult {
10455 if source.is_null()||custom_data_container.is_null() {
10456 return COBIAERR_NULLPOINTER;
10457 }
10458 let p = me as *mut Self::T;
10459 let myself=unsafe { &mut *p };
10460 if source.is_null()||custom_data_container.is_null() {
10461 return COBIAERR_NULLPOINTER;
10462 }
10463 let source=crate::CapeObject::from_interface_pointer(source);
10464 match myself.get_custom_data_container(source) {
10465 Ok(_custom_data_container) => {
10466 unsafe{*custom_data_container=_custom_data_container.detach();}
10467 COBIAERR_NOERROR
10468 },
10469 Err(e) => myself.set_last_error(e,"ICapeThermoMaterialCustomData::GetCustomDataContainer")
10470 }
10471 }
10472
10473 const VTABLE: C::CAPEOPEN_1_2_ICapeThermoMaterialCustomData_VTable =
10474 C::CAPEOPEN_1_2_ICapeThermoMaterialCustomData_VTable {
10475 base: crate::C::ICapeInterface_VTable {
10476 addReference: Some(Self::T::raw_add_reference),
10477 release: Some(Self::T::raw_release),
10478 queryInterface: Some(Self::T::raw_query_interface),
10479 getLastError: Some(Self::T::raw_get_last_error),
10480 },
10481 GetCustomDataContainer: Some(Self::T::raw_get_custom_data_container),
10482 };
10483}
10484
10485#[cape_smart_pointer(ICAPETHERMOMATERIALCUSTOMDATA_UUID)]
10486pub struct CapeThermoMaterialCustomData {
10487 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeThermoMaterialCustomData,
10488}
10489
10490impl CapeThermoMaterialCustomData {
10491
10492 pub fn get_custom_data_container(&self,source:&crate::CapeObject) -> Result<crate::CapeObject,COBIAError> {
10493 let mut custom_data_container: *mut crate::C::ICapeInterface=std::ptr::null_mut();
10494 let result_code = unsafe {
10495 ((*(*self.interface).vTbl).GetCustomDataContainer.unwrap())((*self.interface).me,source.as_interface_pointer() as *mut crate::C::ICapeInterface,&mut custom_data_container as *mut *mut crate::C::ICapeInterface)
10496 };
10497 match result_code {
10498 COBIAERR_NOERROR => {Ok(crate::CapeObject::attach(custom_data_container))},
10499 _ => Err(COBIAError::from_object(result_code,self))
10500 }
10501 }
10502
10503}
10504
10505pub trait ICapeCustomDataSource {
10510 fn create_custom_data_container(&mut self) -> Result<crate::CapeObject,COBIAError>;
10511 fn copy_custom_data(&mut self,source:crate::CapeObject,target:crate::CapeObject) -> Result<(),COBIAError>;
10512 fn thermodynamic_configuration_changed(&mut self,container:crate::CapeObject) -> Result<(),COBIAError>;
10513}
10514
10515pub trait ICapeCustomDataSourceImpl : ICapeCustomDataSource {
10516 type T: ICapeInterfaceImpl+ICapeCustomDataSourceImpl;
10517
10518 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
10519
10520 fn init_interface() -> crate::C::ICapeInterface {
10522 crate::C::ICapeInterface {
10523 me: std::ptr::null_mut(),
10524 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeCustomDataSource_VTable).cast_mut()
10525 as *mut crate::C::ICapeInterface_VTable,
10526 }
10527 }
10528
10529 fn init<Timpl: ICapeCustomDataSourceImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
10530 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeCustomDataSource =
10531 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeCustomDataSource;
10532 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
10533 u.add_interface(
10534 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeCustomDataSource_UUID),
10535 iface as *mut crate::C::ICapeInterface,
10536 );
10537 }
10538
10539 extern "C" fn raw_create_custom_data_container(me: *mut std::ffi::c_void,custom_data_container:*mut *mut crate::C::ICapeInterface) -> crate::C::CapeResult {
10540 if custom_data_container.is_null() {
10541 return COBIAERR_NULLPOINTER;
10542 }
10543 let p = me as *mut Self::T;
10544 let myself=unsafe { &mut *p };
10545 if custom_data_container.is_null() {
10546 return COBIAERR_NULLPOINTER;
10547 }
10548 match myself.create_custom_data_container() {
10549 Ok(_custom_data_container) => {
10550 unsafe{*custom_data_container=_custom_data_container.detach();}
10551 COBIAERR_NOERROR
10552 },
10553 Err(e) => myself.set_last_error(e,"ICapeCustomDataSource::CreateCustomDataContainer")
10554 }
10555 }
10556
10557 extern "C" fn raw_copy_custom_data(me: *mut std::ffi::c_void,source:*mut crate::C::ICapeInterface,target:*mut crate::C::ICapeInterface) -> crate::C::CapeResult {
10558 if source.is_null()||target.is_null() {
10559 return COBIAERR_NULLPOINTER;
10560 }
10561 let p = me as *mut Self::T;
10562 let myself=unsafe { &mut *p };
10563 if source.is_null()||target.is_null() {
10564 return COBIAERR_NULLPOINTER;
10565 }
10566 let source=crate::CapeObject::from_interface_pointer(source);
10567 let target=crate::CapeObject::from_interface_pointer(target);
10568 match myself.copy_custom_data(source,target) {
10569 Ok(_) => COBIAERR_NOERROR,
10570 Err(e) => myself.set_last_error(e,"ICapeCustomDataSource::CopyCustomData")
10571 }
10572 }
10573
10574 extern "C" fn raw_thermodynamic_configuration_changed(me: *mut std::ffi::c_void,container:*mut crate::C::ICapeInterface) -> crate::C::CapeResult {
10575 if container.is_null() {
10576 return COBIAERR_NULLPOINTER;
10577 }
10578 let p = me as *mut Self::T;
10579 let myself=unsafe { &mut *p };
10580 if container.is_null() {
10581 return COBIAERR_NULLPOINTER;
10582 }
10583 let container=crate::CapeObject::from_interface_pointer(container);
10584 match myself.thermodynamic_configuration_changed(container) {
10585 Ok(_) => COBIAERR_NOERROR,
10586 Err(e) => myself.set_last_error(e,"ICapeCustomDataSource::ThermodynamicConfigurationChanged")
10587 }
10588 }
10589
10590 const VTABLE: C::CAPEOPEN_1_2_ICapeCustomDataSource_VTable =
10591 C::CAPEOPEN_1_2_ICapeCustomDataSource_VTable {
10592 base: crate::C::ICapeInterface_VTable {
10593 addReference: Some(Self::T::raw_add_reference),
10594 release: Some(Self::T::raw_release),
10595 queryInterface: Some(Self::T::raw_query_interface),
10596 getLastError: Some(Self::T::raw_get_last_error),
10597 },
10598 CreateCustomDataContainer: Some(Self::T::raw_create_custom_data_container),
10599 CopyCustomData: Some(Self::T::raw_copy_custom_data),
10600 ThermodynamicConfigurationChanged: Some(Self::T::raw_thermodynamic_configuration_changed),
10601 };
10602}
10603
10604#[cape_smart_pointer(ICAPECUSTOMDATASOURCE_UUID)]
10605pub struct CapeCustomDataSource {
10606 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeCustomDataSource,
10607}
10608
10609impl CapeCustomDataSource {
10610
10611 pub fn create_custom_data_container(&self) -> Result<crate::CapeObject,COBIAError> {
10612 let mut custom_data_container: *mut crate::C::ICapeInterface=std::ptr::null_mut();
10613 let result_code = unsafe {
10614 ((*(*self.interface).vTbl).CreateCustomDataContainer.unwrap())((*self.interface).me,&mut custom_data_container as *mut *mut crate::C::ICapeInterface)
10615 };
10616 match result_code {
10617 COBIAERR_NOERROR => {Ok(crate::CapeObject::attach(custom_data_container))},
10618 _ => Err(COBIAError::from_object(result_code,self))
10619 }
10620 }
10621
10622 pub fn copy_custom_data(&self,source:&crate::CapeObject,target:&crate::CapeObject) -> Result<(),COBIAError> {
10623 let result_code = unsafe {
10624 ((*(*self.interface).vTbl).CopyCustomData.unwrap())((*self.interface).me,source.as_interface_pointer() as *mut crate::C::ICapeInterface,target.as_interface_pointer() as *mut crate::C::ICapeInterface)
10625 };
10626 match result_code {
10627 COBIAERR_NOERROR => {Ok(())},
10628 _ => Err(COBIAError::from_object(result_code,self))
10629 }
10630 }
10631
10632 pub fn thermodynamic_configuration_changed(&self,container:&crate::CapeObject) -> Result<(),COBIAError> {
10633 let result_code = unsafe {
10634 ((*(*self.interface).vTbl).ThermodynamicConfigurationChanged.unwrap())((*self.interface).me,container.as_interface_pointer() as *mut crate::C::ICapeInterface)
10635 };
10636 match result_code {
10637 COBIAERR_NOERROR => {Ok(())},
10638 _ => Err(COBIAError::from_object(result_code,self))
10639 }
10640 }
10641
10642}
10643
10644pub trait ICapeThermoPetroleumFractions {
10649 fn set_petro_compound_prop(&mut self,property_id:&CapeStringIn,basis:&CapeStringIn,values:&CapeArrayRealIn) -> Result<(),COBIAError>;
10650 fn set_petro_bulk_prop(&mut self,property_id:&CapeStringIn,basis:&CapeStringIn,value:CapeReal) -> Result<(),COBIAError>;
10651 fn get_petro_compound_prop(&mut self,property_id:&CapeStringIn,basis:&CapeStringIn,values:&mut CapeArrayRealOut) -> Result<(),COBIAError>;
10652 fn get_petro_bulk_prop(&mut self,property_id:&CapeStringIn,basis:&CapeStringIn) -> Result<CapeReal,COBIAError>;
10653 fn petro_prop_list(&mut self,property_ids:&mut CapeArrayStringOut) -> Result<(),COBIAError>;
10654 fn get_petro_prop_attribute(&mut self,property_id:&CapeStringIn,attribute_name:&CapeStringIn,attribute_value:&mut CapeValueOut) -> Result<(),COBIAError>;
10655 fn copy_petro_properties(&mut self,source:CapeThermoMaterial) -> Result<(),COBIAError>;
10656 fn update_petro_properties(&mut self) -> Result<(),COBIAError>;
10657}
10658
10659pub trait ICapeThermoPetroleumFractionsImpl : ICapeThermoPetroleumFractions {
10660 type T: ICapeInterfaceImpl+ICapeThermoPetroleumFractionsImpl;
10661
10662 fn as_interface_pointer(&mut self) -> *mut crate::C::ICapeInterface;
10663
10664 fn init_interface() -> crate::C::ICapeInterface {
10666 crate::C::ICapeInterface {
10667 me: std::ptr::null_mut(),
10668 vTbl: (&Self::T::VTABLE as *const crate::C::CAPEOPEN_1_2_ICapeThermoPetroleumFractions_VTable).cast_mut()
10669 as *mut crate::C::ICapeInterface_VTable,
10670 }
10671 }
10672
10673 fn init<Timpl: ICapeThermoPetroleumFractionsImpl+ICapeInterfaceImpl>(u: &mut Timpl) {
10674 let iface: *mut crate::C::CAPEOPEN_1_2_ICapeThermoPetroleumFractions =
10675 u.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeThermoPetroleumFractions;
10676 unsafe { (*iface).me = u.get_self() as *const Timpl as *mut std::ffi::c_void };
10677 u.add_interface(
10678 std::ptr::addr_of!(C::CAPEOPEN_1_2_ICapeThermoPetroleumFractions_UUID),
10679 iface as *mut crate::C::ICapeInterface,
10680 );
10681 }
10682
10683 extern "C" fn raw_set_petro_compound_prop(me: *mut std::ffi::c_void,property_id:*mut crate::C::ICapeString,basis:*mut crate::C::ICapeString,values:*mut crate::C::ICapeArrayReal) -> crate::C::CapeResult {
10684 let p = me as *mut Self::T;
10685 let myself=unsafe { &mut *p };
10686 let property_id=CapeStringIn::new(&property_id);
10687 let basis=CapeStringIn::new(&basis);
10688 let values=CapeArrayRealIn::new(&values);
10689 match myself.set_petro_compound_prop(&property_id,&basis,&values) {
10690 Ok(_) => COBIAERR_NOERROR,
10691 Err(e) => myself.set_last_error(e,"ICapeThermoPetroleumFractions::SetPetroCompoundProp")
10692 }
10693 }
10694
10695 extern "C" fn raw_set_petro_bulk_prop(me: *mut std::ffi::c_void,property_id:*mut crate::C::ICapeString,basis:*mut crate::C::ICapeString,value:CapeReal) -> crate::C::CapeResult {
10696 let p = me as *mut Self::T;
10697 let myself=unsafe { &mut *p };
10698 let property_id=CapeStringIn::new(&property_id);
10699 let basis=CapeStringIn::new(&basis);
10700 match myself.set_petro_bulk_prop(&property_id,&basis,value) {
10701 Ok(_) => COBIAERR_NOERROR,
10702 Err(e) => myself.set_last_error(e,"ICapeThermoPetroleumFractions::SetPetroBulkProp")
10703 }
10704 }
10705
10706 extern "C" fn raw_get_petro_compound_prop(me: *mut std::ffi::c_void,property_id:*mut crate::C::ICapeString,basis:*mut crate::C::ICapeString,values:*mut crate::C::ICapeArrayReal) -> crate::C::CapeResult {
10707 if values.is_null() {
10708 return COBIAERR_NULLPOINTER;
10709 }
10710 let p = me as *mut Self::T;
10711 let myself=unsafe { &mut *p };
10712 if values.is_null() {
10713 return COBIAERR_NULLPOINTER;
10714 }
10715 let property_id=CapeStringIn::new(&property_id);
10716 let basis=CapeStringIn::new(&basis);
10717 let mut values=unsafe{*((&values as *const *mut crate::C::ICapeArrayReal) as *mut *mut crate::C::ICapeArrayReal)};
10718 let mut values=CapeArrayRealOut::new(&mut values);
10719 match myself.get_petro_compound_prop(&property_id,&basis,&mut values) {
10720 Ok(_) => COBIAERR_NOERROR,
10721 Err(e) => myself.set_last_error(e,"ICapeThermoPetroleumFractions::GetPetroCompoundProp")
10722 }
10723 }
10724
10725 extern "C" fn raw_get_petro_bulk_prop(me: *mut std::ffi::c_void,property_id:*mut crate::C::ICapeString,basis:*mut crate::C::ICapeString,value:*mut CapeReal) -> crate::C::CapeResult {
10726 if value.is_null() {
10727 return COBIAERR_NULLPOINTER;
10728 }
10729 let p = me as *mut Self::T;
10730 let myself=unsafe { &mut *p };
10731 let property_id=CapeStringIn::new(&property_id);
10732 let basis=CapeStringIn::new(&basis);
10733 match myself.get_petro_bulk_prop(&property_id,&basis) {
10734 Ok(_value) => {
10735 unsafe{*value=_value;}
10736 COBIAERR_NOERROR
10737 },
10738 Err(e) => myself.set_last_error(e,"ICapeThermoPetroleumFractions::GetPetroBulkProp")
10739 }
10740 }
10741
10742 extern "C" fn raw_petro_prop_list(me: *mut std::ffi::c_void,property_ids:*mut crate::C::ICapeArrayString) -> crate::C::CapeResult {
10743 if property_ids.is_null() {
10744 return COBIAERR_NULLPOINTER;
10745 }
10746 let p = me as *mut Self::T;
10747 let myself=unsafe { &mut *p };
10748 if property_ids.is_null() {
10749 return COBIAERR_NULLPOINTER;
10750 }
10751 let mut property_ids=unsafe{*((&property_ids as *const *mut crate::C::ICapeArrayString) as *mut *mut crate::C::ICapeArrayString)};
10752 let mut property_ids=CapeArrayStringOut::new(&mut property_ids);
10753 match myself.petro_prop_list(&mut property_ids) {
10754 Ok(_) => COBIAERR_NOERROR,
10755 Err(e) => myself.set_last_error(e,"ICapeThermoPetroleumFractions::PetroPropList")
10756 }
10757 }
10758
10759 extern "C" fn raw_get_petro_prop_attribute(me: *mut std::ffi::c_void,property_id:*mut crate::C::ICapeString,attribute_name:*mut crate::C::ICapeString,attribute_value:*mut crate::C::ICapeValue) -> crate::C::CapeResult {
10760 if attribute_value.is_null() {
10761 return COBIAERR_NULLPOINTER;
10762 }
10763 let p = me as *mut Self::T;
10764 let myself=unsafe { &mut *p };
10765 if attribute_value.is_null() {
10766 return COBIAERR_NULLPOINTER;
10767 }
10768 let property_id=CapeStringIn::new(&property_id);
10769 let attribute_name=CapeStringIn::new(&attribute_name);
10770 let mut attribute_value=unsafe{*((&attribute_value as *const *mut crate::C::ICapeValue) as *mut *mut crate::C::ICapeValue)};
10771 let mut attribute_value=CapeValueOut::new(&mut attribute_value);
10772 match myself.get_petro_prop_attribute(&property_id,&attribute_name,&mut attribute_value) {
10773 Ok(_) => COBIAERR_NOERROR,
10774 Err(e) => myself.set_last_error(e,"ICapeThermoPetroleumFractions::GetPetroPropAttribute")
10775 }
10776 }
10777
10778 extern "C" fn raw_copy_petro_properties(me: *mut std::ffi::c_void,source:*mut C::CAPEOPEN_1_2_ICapeThermoMaterial) -> crate::C::CapeResult {
10779 if source.is_null() {
10780 return COBIAERR_NULLPOINTER;
10781 }
10782 let p = me as *mut Self::T;
10783 let myself=unsafe { &mut *p };
10784 if source.is_null() {
10785 return COBIAERR_NULLPOINTER;
10786 }
10787 let source=CapeThermoMaterial::from_interface_pointer(source);
10788 match myself.copy_petro_properties(source) {
10789 Ok(_) => COBIAERR_NOERROR,
10790 Err(e) => myself.set_last_error(e,"ICapeThermoPetroleumFractions::CopyPetroProperties")
10791 }
10792 }
10793
10794 extern "C" fn raw_update_petro_properties(me: *mut std::ffi::c_void) -> crate::C::CapeResult {
10795 let p = me as *mut Self::T;
10796 let myself=unsafe { &mut *p };
10797 match myself.update_petro_properties() {
10798 Ok(_) => COBIAERR_NOERROR,
10799 Err(e) => myself.set_last_error(e,"ICapeThermoPetroleumFractions::UpdatePetroProperties")
10800 }
10801 }
10802
10803 const VTABLE: C::CAPEOPEN_1_2_ICapeThermoPetroleumFractions_VTable =
10804 C::CAPEOPEN_1_2_ICapeThermoPetroleumFractions_VTable {
10805 base: crate::C::ICapeInterface_VTable {
10806 addReference: Some(Self::T::raw_add_reference),
10807 release: Some(Self::T::raw_release),
10808 queryInterface: Some(Self::T::raw_query_interface),
10809 getLastError: Some(Self::T::raw_get_last_error),
10810 },
10811 SetPetroCompoundProp: Some(Self::T::raw_set_petro_compound_prop),
10812 SetPetroBulkProp: Some(Self::T::raw_set_petro_bulk_prop),
10813 GetPetroCompoundProp: Some(Self::T::raw_get_petro_compound_prop),
10814 GetPetroBulkProp: Some(Self::T::raw_get_petro_bulk_prop),
10815 PetroPropList: Some(Self::T::raw_petro_prop_list),
10816 GetPetroPropAttribute: Some(Self::T::raw_get_petro_prop_attribute),
10817 CopyPetroProperties: Some(Self::T::raw_copy_petro_properties),
10818 UpdatePetroProperties: Some(Self::T::raw_update_petro_properties),
10819 };
10820}
10821
10822#[cape_smart_pointer(ICAPETHERMOPETROLEUMFRACTIONS_UUID)]
10823pub struct CapeThermoPetroleumFractions {
10824 pub(crate) interface: *mut C::CAPEOPEN_1_2_ICapeThermoPetroleumFractions,
10825}
10826
10827impl CapeThermoPetroleumFractions {
10828
10829 pub fn set_petro_compound_prop<TypeOfPropertyId:CapeStringProviderIn,TypeOfBasis:CapeStringProviderIn,TypeOfValues:CapeArrayRealProviderIn>(&self,property_id:&TypeOfPropertyId,basis:&TypeOfBasis,values:&TypeOfValues) -> Result<(),COBIAError> {
10830 let result_code = unsafe {
10831 ((*(*self.interface).vTbl).SetPetroCompoundProp.unwrap())((*self.interface).me,(&property_id.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&basis.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&values.as_cape_array_real_in() as *const crate::C::ICapeArrayReal).cast_mut())
10832 };
10833 match result_code {
10834 COBIAERR_NOERROR => {Ok(())},
10835 _ => Err(COBIAError::from_object(result_code,self))
10836 }
10837 }
10838
10839 pub fn set_petro_bulk_prop<TypeOfPropertyId:CapeStringProviderIn,TypeOfBasis:CapeStringProviderIn>(&self,property_id:&TypeOfPropertyId,basis:&TypeOfBasis,value:CapeReal) -> Result<(),COBIAError> {
10840 let result_code = unsafe {
10841 ((*(*self.interface).vTbl).SetPetroBulkProp.unwrap())((*self.interface).me,(&property_id.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&basis.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),value)
10842 };
10843 match result_code {
10844 COBIAERR_NOERROR => {Ok(())},
10845 _ => Err(COBIAError::from_object(result_code,self))
10846 }
10847 }
10848
10849 pub fn get_petro_compound_prop<TypeOfPropertyId:CapeStringProviderIn,TypeOfBasis:CapeStringProviderIn,TypeOfValues:CapeArrayRealProviderOut>(&self,property_id:&TypeOfPropertyId,basis:&TypeOfBasis,values:&mut TypeOfValues) -> Result<(),COBIAError> {
10850 let result_code = unsafe {
10851 ((*(*self.interface).vTbl).GetPetroCompoundProp.unwrap())((*self.interface).me,(&property_id.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&basis.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&values.as_cape_array_real_out() as *const crate::C::ICapeArrayReal).cast_mut())
10852 };
10853 match result_code {
10854 COBIAERR_NOERROR => {Ok(())},
10855 _ => Err(COBIAError::from_object(result_code,self))
10856 }
10857 }
10858
10859 pub fn get_petro_bulk_prop<TypeOfPropertyId:CapeStringProviderIn,TypeOfBasis:CapeStringProviderIn>(&self,property_id:&TypeOfPropertyId,basis:&TypeOfBasis) -> Result<CapeReal,COBIAError> {
10860 let mut value:CapeReal=0.0;
10861 let result_code = unsafe {
10862 ((*(*self.interface).vTbl).GetPetroBulkProp.unwrap())((*self.interface).me,(&property_id.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&basis.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),&mut value as *mut CapeReal)
10863 };
10864 match result_code {
10865 COBIAERR_NOERROR => {Ok(value)},
10866 _ => Err(COBIAError::from_object(result_code,self))
10867 }
10868 }
10869
10870 pub fn petro_prop_list<TypeOfPropertyIds:CapeArrayStringProviderOut>(&self,property_ids:&mut TypeOfPropertyIds) -> Result<(),COBIAError> {
10871 let result_code = unsafe {
10872 ((*(*self.interface).vTbl).PetroPropList.unwrap())((*self.interface).me,(&property_ids.as_cape_array_string_out() as *const crate::C::ICapeArrayString).cast_mut())
10873 };
10874 match result_code {
10875 COBIAERR_NOERROR => {Ok(())},
10876 _ => Err(COBIAError::from_object(result_code,self))
10877 }
10878 }
10879
10880 pub fn get_petro_prop_attribute<TypeOfPropertyId:CapeStringProviderIn,TypeOfAttributeName:CapeStringProviderIn,TypeOfAttributeValue:CapeValueProviderOut>(&self,property_id:&TypeOfPropertyId,attribute_name:&TypeOfAttributeName,attribute_value:&mut TypeOfAttributeValue) -> Result<(),COBIAError> {
10881 let result_code = unsafe {
10882 ((*(*self.interface).vTbl).GetPetroPropAttribute.unwrap())((*self.interface).me,(&property_id.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&attribute_name.as_cape_string_in() as *const crate::C::ICapeString).cast_mut(),(&attribute_value.as_cape_value_out() as *const crate::C::ICapeValue).cast_mut())
10883 };
10884 match result_code {
10885 COBIAERR_NOERROR => {Ok(())},
10886 _ => Err(COBIAError::from_object(result_code,self))
10887 }
10888 }
10889
10890 pub fn copy_petro_properties(&self,source:&CapeThermoMaterial) -> Result<(),COBIAError> {
10891 let result_code = unsafe {
10892 ((*(*self.interface).vTbl).CopyPetroProperties.unwrap())((*self.interface).me,source.as_interface_pointer() as *mut C::CAPEOPEN_1_2_ICapeThermoMaterial)
10893 };
10894 match result_code {
10895 COBIAERR_NOERROR => {Ok(())},
10896 _ => Err(COBIAError::from_object(result_code,self))
10897 }
10898 }
10899
10900 pub fn update_petro_properties(&self) -> Result<(),COBIAError> {
10901 let result_code = unsafe {
10902 ((*(*self.interface).vTbl).UpdatePetroProperties.unwrap())((*self.interface).me)
10903 };
10904 match result_code {
10905 COBIAERR_NOERROR => {Ok(())},
10906 _ => Err(COBIAError::from_object(result_code,self))
10907 }
10908 }
10909
10910}
10911