2004-01-19 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mono / metadata / object.h
index 1e1b97e8cf312a1c5eb699258cba2ee075d63ec5..9658233f9e9269e12a09ea0d42de6ff05256ba89 100644 (file)
@@ -112,9 +112,8 @@ typedef struct {
 
 typedef struct {
        MonoObject object;
-       gint32 capacity;
        gint32 length;
-       MonoArray *chars;
+       MonoString *str;
 } MonoStringBuilder;
 
 typedef struct {
@@ -196,6 +195,7 @@ typedef struct {
        MonoObject     object;
        MonoRealProxy *rp;      
        MonoClass     *klass; 
+       MonoBoolean    custom_type_info;
 } MonoTransparentProxy;
 
 /* This is a copy of System.Runtime.Remoting.Messaging.CallType */
@@ -233,6 +233,7 @@ typedef struct {
        MonoObject  obj;
        HANDLE      handle;
        MonoObject *culture_info;
+       MonoObject *ui_culture_info;
        MonoBoolean threadpool_thread;
        guint32     state;
        MonoException *abort_exc;
@@ -243,6 +244,7 @@ typedef struct {
        gpointer *static_data;
        gpointer jit_data;
        gpointer lock_data;
+       GSList *appdomain_refs;
 } MonoThread;
 
 typedef struct {
@@ -256,6 +258,101 @@ typedef struct {
        MonoObject *additional;
 } MonoStreamingContext;
 
+typedef struct {
+       MonoObject obj;
+       MonoBoolean readOnly;
+       MonoString *AMDesignator;
+       MonoString *PMDesignator;
+       MonoString *DateSeparator;
+       MonoString *TimeSeparator;
+       MonoString *ShortDatePattern;
+       MonoString *LongDatePattern;
+       MonoString *ShortTimePattern;
+       MonoString *LongTimePattern;
+       MonoString *MonthDayPattern;
+       MonoString *YearMonthPattern;
+       MonoString *FullDateTimePattern;
+       MonoString *RFC1123Pattern;
+       MonoString *SortableDateTimePattern;
+       MonoString *UniversalSortableDateTimePattern;
+       guint32 FirstDayOfWeek;
+       MonoObject *Calendar;
+       guint32 CalendarWeekRule;
+       MonoArray *AbbreviatedDayNames;
+       MonoArray *DayNames;
+       MonoArray *MonthNames;
+       MonoArray *AbbreviatedMonthNames;
+} MonoDateTimeFormatInfo;
+
+typedef struct 
+{
+       MonoObject obj;
+       MonoBoolean readOnly;
+       MonoString *decimalFormats;
+       MonoString *currencyFormats;
+       MonoString *percentFormats;
+       MonoString *digitPattern;
+       MonoString *zeroPattern;
+       gint32 currencyDecimalDigits;
+       MonoString *currencyDecimalSeparator;
+       MonoString *currencyGroupSeparator;
+       MonoArray *currencyGroupSizes;
+       gint32 currencyNegativePattern;
+       gint32 currencyPositivePattern;
+       MonoString *currencySymbol;
+       MonoString *naNSymbol;
+       MonoString *negativeInfinitySymbol;
+       MonoString *negativeSign;
+       guint32 numberDecimalDigits;
+       MonoString *numberDecimalSeparator;
+       MonoString *numberGroupSeparator;
+       MonoArray *numberGroupSizes;
+       gint32 numberNegativePattern;
+       gint32 percentDecimalDigits;
+       MonoString *percentDecimalSeparator;
+       MonoString *percentGroupSeparator;
+       MonoArray *percentGroupSizes;
+       gint32 percentNegativePattern;
+       gint32 percentPositivePattern;
+       MonoString *percentSymbol;
+       MonoString *perMilleSymbol;
+       MonoString *positiveInfinitySymbol;
+       MonoString *positiveSign;
+} MonoNumberFormatInfo;
+
+typedef struct {
+       MonoObject obj;
+       gint32 lcid;
+       gpointer ICU_collator;
+} MonoCompareInfo;
+
+typedef struct {
+       MonoObject obj;
+       MonoBoolean is_read_only;
+       gint32 lcid;
+       MonoBoolean use_user_override;
+       MonoNumberFormatInfo *number_format;
+       MonoDateTimeFormatInfo *datetime_format;
+       MonoObject *textinfo;
+       MonoString *name;
+       MonoString *displayname;
+       MonoString *englishname;
+       MonoString *nativename;
+       MonoString *iso3lang;
+       MonoString *iso2lang;
+       MonoString *icu_name;
+       MonoString *win3lang;
+       MonoCompareInfo *compareinfo;
+} MonoCultureInfo;
+
+typedef struct {
+       MonoObject obj;
+       MonoString *str;
+       gint32 options;
+       MonoArray *key;
+       gint32 lcid;
+} MonoSortKey;
+
 typedef MonoObject* (*MonoInvokeFunc)        (MonoMethod *method, void *obj, void **params, MonoObject **exc);
 typedef gpointer    (*MonoCompileFunc)       (MonoMethod *method);
 typedef void       (*MonoMainThreadFunc)    (gpointer user_data);
@@ -275,6 +372,7 @@ typedef void            (*MonoMainThreadFunc)    (gpointer user_data);
 
 #define mono_string_chars(s) ((gunichar2*)(s)->chars)
 #define mono_string_length(s) ((s)->length)
+#define mono_stringbuilder_capacity(sb) ((sb)->str->length)
 
 MonoObject *
 mono_object_new             (MonoDomain *domain, MonoClass *klass);
@@ -353,12 +451,18 @@ mono_object_clone           (MonoObject *obj);
 MonoObject *
 mono_object_isinst          (MonoObject *obj, MonoClass *klass);
 
+MonoObject *
+mono_object_isinst_mbyref   (MonoObject *obj, MonoClass *klass);
+
+MonoObject *
+mono_object_castclass_mbyref (MonoObject *obj, MonoClass *klass);
+
 typedef void (*MonoExceptionFunc) (MonoException *ex);
 
 void
 mono_install_handler        (MonoExceptionFunc func);
 
-G_GNUC_NORETURN void
+void
 mono_raise_exception        (MonoException *ex);
 
 void
@@ -470,6 +574,9 @@ mono_field_get_value (MonoObject *obj, MonoClassField *field, void *value);
 void
 mono_field_static_get_value (MonoVTable *vt, MonoClassField *field, void *value);
 
+MonoObject *
+mono_field_get_value_object (MonoDomain *domain, MonoClassField *field, MonoObject *obj);
+
 void
 mono_property_set_value (MonoProperty *prop, void *obj, void **params, MonoObject **exc);