Milán Major

netscape-revival

1 branch
Code

dist/Linux2.6_OPT.OBJ/include/jmc.h

/* -*- Mode: C; tab-width: 4; -*- */
/*******************************************************************************
 * Java Module Compiler -- Standard Include File
 * Copyright (c) 1996 Netscape Communications Corporation. All rights reserved.
 ******************************************************************************/

#ifndef JMC_H
#define JMC_H

#include "jritypes.h"

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

/*******************************************************************************
 * JMCModule
 ******************************************************************************/

typedef struct JMCModule {
    void*	vtable;
    jint	refcount;
} JMCModule;

extern void*
JMCModule_GetInterface(JMCModule* self, jint op, JRIInterfaceID* iid);

extern void
JMCModule_AddRef(JMCModule* self, jint op);

extern void
JMCModule_Release(JMCModule* self, jint op);

/*******************************************************************************
 * JMCJavaObject
 ******************************************************************************/

typedef void	JMCException;

typedef struct JMCJavaObject {
    JMCModule		super;
    jref			obj;
    JRIMethodID*	methodIDs;
	const char**	description;
} JMCJavaObject;

#define JMCJavaObject_GetInterface		JMCModule_GetInterface

#define JMCJavaObject_AddRef			JMCModule_AddRef

#define JMCJavaObject_Release			JMCModule_Release

extern JRI_PUBLIC_API(const char**)
JMCJavaObject_Description(JMCJavaObject* self, jint op);

extern JRI_PUBLIC_API(jref)
JMCJavaObject_CallMethod(JMCJavaObject* self, jint op, ...);

extern JRI_PUBLIC_API(jbool)
JMCJavaObject_CallMethodBoolean(JMCJavaObject* self, jint op, ...);

extern JRI_PUBLIC_API(jbyte)
JMCJavaObject_CallMethodByte(JMCJavaObject* self, jint op, ...);

extern JRI_PUBLIC_API(jchar)
JMCJavaObject_CallMethodChar(JMCJavaObject* self, jint op, ...);

extern JRI_PUBLIC_API(jshort)
JMCJavaObject_CallMethodShort(JMCJavaObject* self, jint op, ...);

extern JRI_PUBLIC_API(jint)
JMCJavaObject_CallMethodInt(JMCJavaObject* self, jint op, ...);

extern JRI_PUBLIC_API(jlong)
JMCJavaObject_CallMethodLong(JMCJavaObject* self, jint op, ...);

extern JRI_PUBLIC_API(jfloat)
JMCJavaObject_CallMethodFloat(JMCJavaObject* self, jint op, ...);

extern JRI_PUBLIC_API(jdouble)
JMCJavaObject_CallMethodDouble(JMCJavaObject* self, jint op, ...);

/******************************************************************************/

#ifdef __cplusplus
} /* extern "C" */
#endif /* __cplusplus */

#endif /* JMC_H */
/******************************************************************************/