summaryrefslogtreecommitdiff
path: root/src/java/jlibical_utils_cxx.h
blob: 2a61b54eb6865193cdffa1c018596f4e6a4e19a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/*======================================================================
 FILE: jlibical_utils_cxx.h
 CREATOR: Srinivasa Boppana/George Norman

 SPDX-FileCopyrightText: 2002, Critical Path

 SPDX-License-Identifier: LGPL-2.1-only OR MPL-2.0

======================================================================*/

#ifndef TEST_CXX_H
#define TEST_CXX_H

#ifndef JNI_H
#include <jni.h>
#endif

class VComponent;
class ICalProperty;
class ICalValue;
class ICalParameter;
struct icaltimetype;
struct icaltriggertype;
struct icaldurationtype;
struct icalrecurrencetype;
struct icalperiodtype;

// get & set
void* getCObjectPtr(JNIEnv *env, jobject anObj);
void setCObjectPtr(JNIEnv *env, jobject anObj, void* val);

// type-safe getters
VComponent* getSubjectAsVComponent(JNIEnv *env, jobject surrogateComponent, int exceptionType);
ICalProperty* getSubjectAsICalProperty(JNIEnv *env, jobject surrogateProperty, int exceptionType);
ICalValue* getSubjectAsICalValue(JNIEnv *env, jobject surrogateValue, int exceptionType);
ICalParameter* getSubjectAsICalParameter(JNIEnv *env, jobject surrogateParameter, int exceptionType);

bool copyObjToicaltimetype(JNIEnv *env, jobject src, icaltimetype* dest);
bool copyObjToicaltriggertype(JNIEnv *env, jobject src, icaltriggertype* dest);
bool copyObjToicaldurationtype(JNIEnv *env, jobject src, icaldurationtype* dest);
bool copyObjToicalrecurrencetype(JNIEnv *env, jobject src, icalrecurrencetype* dest);
bool copyObjToicalperiodtype(JNIEnv *env, jobject src, icalperiodtype* dest);

// exception handling
void throwException( JNIEnv *env, int cpErr );

// create objects
jobject createNewVComponentSurrogate(JNIEnv *env, VComponent* subject);
jobject createNewICalPropertySurrogate(JNIEnv *env, ICalProperty* subject);
jobject createNewICalValueSurrogate(JNIEnv *env, ICalValue* subject);
jobject createNewICalParameterSurrogate(JNIEnv *env, ICalParameter* subject);

jobject createNewICalTimeType(JNIEnv *env, icaltimetype* source);
jobject createNewICalTriggerType(JNIEnv *env, icaltriggertype* source);
jobject createNewICalDurationType(JNIEnv *env, icaldurationtype* source);
jobject createNewICalRecurrenceType(JNIEnv *env, icalrecurrencetype* source);
jobject createNewICalPeriodType(JNIEnv *env, icalperiodtype* source);

jobject doCreateNewSurrogate(JNIEnv *env, jclass surrogateClass, jlong subject);

#endif /*TEST_CXX_H*/