/* Autogenerated by mclmcr/genAPI.pl: Mon Dec 20 17:03:32 2004. */

#ifndef mclcppExternC_h
#define mclcppExternC_h
#ifdef __cplusplus
extern "C" {
#endif

/* ref_count_obj extern "C" API */

    int ref_count_obj_addref(ref_count_obj *obj);
    int ref_count_obj_release(ref_count_obj *obj);

/* char_buffer extern "C" API */

    int char_buffer_size(char_buffer *obj);
    const char* char_buffer_get_buffer(char_buffer *obj);
    int char_buffer_set_buffer(char_buffer *obj, const char* str);
    int char_buffer_compare_to(char_buffer *obj, char_buffer* p);

/* array_ref extern "C" API */

    mxClassID array_ref_classID(array_ref *obj);
    array_ref* array_ref_deep_copy(array_ref *obj);
    array_ref* array_ref_shared_copy(array_ref *obj);
    array_ref* array_ref_serialize(array_ref *obj);
    int array_ref_element_size(array_ref *obj);
    int array_ref_number_of_elements(array_ref *obj);
    int array_ref_number_of_nonzeros(array_ref *obj);
    int array_ref_maximum_nonzeros(array_ref *obj);
    int array_ref_number_of_dimensions(array_ref *obj);
    array_ref* array_ref_get_dimensions(array_ref *obj);
    int array_ref_number_of_fields(array_ref *obj);
    char_buffer* array_ref_get_field_name(array_ref *obj, int i);
    bool array_ref_is_empty(array_ref *obj);
    bool array_ref_is_sparse(array_ref *obj);
    bool array_ref_is_numeric(array_ref *obj);
    bool array_ref_is_complex(array_ref *obj);
    int array_ref_make_complex(array_ref *obj);
    bool array_ref_equals(array_ref *obj, array_ref* p);
    int array_ref_compare_to(array_ref *obj, array_ref* p);
    int array_ref_hash_code(array_ref *obj);
    char_buffer* array_ref_to_string(array_ref *obj);
    array_ref* array_ref_row_index(array_ref *obj);
    array_ref* array_ref_column_index(array_ref *obj);
    array_ref* array_ref_get_int(array_ref *obj, int num_indices, const int* index);
    array_ref* array_ref_get_const_char(array_ref *obj, const char* name, int num_indices, const int* index);
    array_ref* array_ref_getV_int(array_ref *obj, int num_indices, va_list vargs);
    array_ref* array_ref_getV_const_char(array_ref *obj, const char* name, int num_indices, va_list vargs);
    int array_ref_set(array_ref *obj, array_ref* p);
    array_ref* array_ref_real(array_ref *obj);
    array_ref* array_ref_imag(array_ref *obj);
    int array_ref_get_numeric_mxDouble(array_ref *obj, mxDouble* x, int len);
    int array_ref_get_numeric_mxSingle(array_ref *obj, mxSingle* x, int len);
    int array_ref_get_numeric_mxInt8(array_ref *obj, mxInt8* x, int len);
    int array_ref_get_numeric_mxUint8(array_ref *obj, mxUint8* x, int len);
    int array_ref_get_numeric_mxInt16(array_ref *obj, mxInt16* x, int len);
    int array_ref_get_numeric_mxUint16(array_ref *obj, mxUint16* x, int len);
    int array_ref_get_numeric_mxInt32(array_ref *obj, mxInt32* x, int len);
    int array_ref_get_numeric_mxUint32(array_ref *obj, mxUint32* x, int len);
    int array_ref_get_numeric_mxInt64(array_ref *obj, mxInt64* x, int len);
    int array_ref_get_numeric_mxUint64(array_ref *obj, mxUint64* x, int len);
    int array_ref_get_char(array_ref *obj, mxChar* x, int len);
    int array_ref_get_logical(array_ref *obj, mxLogical* x, int len);
    int array_ref_set_numeric_mxDouble(array_ref *obj, const mxDouble* x, int len);
    int array_ref_set_numeric_mxSingle(array_ref *obj, const mxSingle* x, int len);
    int array_ref_set_numeric_mxInt8(array_ref *obj, const mxInt8* x, int len);
    int array_ref_set_numeric_mxUint8(array_ref *obj, const mxUint8* x, int len);
    int array_ref_set_numeric_mxInt16(array_ref *obj, const mxInt16* x, int len);
    int array_ref_set_numeric_mxUint16(array_ref *obj, const mxUint16* x, int len);
    int array_ref_set_numeric_mxInt32(array_ref *obj, const mxInt32* x, int len);
    int array_ref_set_numeric_mxUint32(array_ref *obj, const mxUint32* x, int len);
    int array_ref_set_numeric_mxInt64(array_ref *obj, const mxInt64* x, int len);
    int array_ref_set_numeric_mxUint64(array_ref *obj, const mxUint64* x, int len);
    int array_ref_set_char(array_ref *obj, const mxChar* x, int len);
    int array_ref_set_logical(array_ref *obj, const mxLogical* x, int len);

/* array_buffer extern "C" API */

    int array_buffer_size(array_buffer *obj);
    array_ref* array_buffer_get(array_buffer *obj, int offset);
    int array_buffer_set(array_buffer *obj, int offset, array_ref* p);
    int array_buffer_add(array_buffer *obj, array_ref* pa);
    int array_buffer_remove(array_buffer *obj, int offset);
    int array_buffer_clear(array_buffer *obj);
    array_ref* array_buffer_to_cell(array_buffer *obj, int offset, int len);

/* error_info extern "C" API */

    const char* error_info_get_message(error_info *obj);

#ifdef __cplusplus
}
#endif
/* Multiple include guard */
#endif
