blob: 03b93a660bf4b25471d4d958a6047c359a6f2b07 [file] [log] [blame]
/* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef H_CFCTYPE
#define H_CFCTYPE
#ifdef __cplusplus
extern "C" {
#endif
typedef struct CFCType CFCType;
struct CFCParcel;
#define CFCTYPE_CONST 0x00000001
#define CFCTYPE_NULLABLE 0x00000002
#define CFCTYPE_VOID 0x00000004
#define CFCTYPE_INCREMENTED 0x00000008
#define CFCTYPE_DECREMENTED 0x00000010
#define CFCTYPE_OBJECT 0x00000020
#define CFCTYPE_PRIMITIVE 0x00000040
#define CFCTYPE_INTEGER 0x00000080
#define CFCTYPE_FLOATING 0x00000100
#define CFCTYPE_STRING_TYPE 0x00000200
#define CFCTYPE_VA_LIST 0x00000400
#define CFCTYPE_ARBITRARY 0x00000800
#define CFCTYPE_COMPOSITE 0x00001000
CFCType*
CFCType_new(int flags, struct CFCParcel *parcel, const char *specifier,
int indirection, const char *c_string);
CFCType*
CFCType_init(CFCType *self, int flags, struct CFCParcel *parcel,
const char *specifier, int indirection, const char *c_string);
CFCType*
CFCType_new_integer(int flags, const char *specifier);
CFCType*
CFCType_new_float(int flags, const char *specifier);
CFCType*
CFCType_new_object(int flags, struct CFCParcel *parcel, const char *specifier,
int indirection);
CFCType*
CFCType_new_composite(int flags, CFCType *child, int indirection,
const char *array);
CFCType*
CFCType_new_void(int is_const);
CFCType*
CFCType_new_va_list(void);
CFCType*
CFCType_new_arbitrary(struct CFCParcel *parcel, const char *specifier);
void
CFCType_destroy(CFCType *self);
int
CFCType_equals(CFCType *self, CFCType *other);
int
CFCType_similar(CFCType *self, CFCType *other);
void
CFCType_set_specifier(CFCType *self, const char *specifier);
const char*
CFCType_get_specifier(CFCType *self);
int
CFCType_get_indirection(CFCType *self);
struct CFCParcel*
CFCType_get_parcel(CFCType *self);
void
CFCType_set_c_string(CFCType *self, const char *c_string);
const char*
CFCType_to_c(CFCType *self);
size_t
CFCType_get_width(CFCType *self);
const char*
CFCType_get_array(CFCType *self);
int
CFCType_const(CFCType *self);
void
CFCType_set_nullable(CFCType *self, int nullable);
int
CFCType_nullable(CFCType *self);
int
CFCType_incremented(CFCType *self);
int
CFCType_decremented(CFCType *self);
int
CFCType_is_void(CFCType *self);
int
CFCType_is_object(CFCType *self);
int
CFCType_is_primitive(CFCType *self);
int
CFCType_is_integer(CFCType *self);
int
CFCType_is_floating(CFCType *self);
int
CFCType_is_string_type(CFCType *self);
int
CFCType_is_va_list(CFCType *self);
int
CFCType_is_arbitrary(CFCType *self);
int
CFCType_is_composite(CFCType *self);
#ifdef __cplusplus
}
#endif
#endif /* H_CFCTYPE */