OSDN Git Service

chnlib:CHNLIB_UUID(UUIDv4), メルセンヌ・ツイスターを利用した乱数生成器CHNLIB_RandomGeneratorMTを追加。
[chnosproject/CHNOSProject.git] / CHNOSProject / chn / chnlib.h
index 88d235b..c5d7b62 100755 (executable)
@@ -49,6 +49,15 @@ struct CHNLIB_STRUCTURE_HEADER {
     uint (*getHash)(const void *structure);\r
 };\r
 \r
+//@chnlib00.c\r
+typedef struct CHNLIB_UIPARRAY CHNLIB_UIPArray;\r
+//@chnlib01.c\r
+typedef struct CHNLIB_STRING CHNLIB_String;\r
+//@chnlib05.c\r
+typedef struct CHNLIB_RANDOM_GENERATOR_MT CHNLIB_RandomGeneratorMT;\r
+//@chnlib06.c\r
+typedef struct CHNLIB_UniversallyUniqueIDentifier CHNLIB_UUID;\r
+\r
 //\r
 //Define library values\r
 //\r
@@ -58,9 +67,11 @@ struct CHNLIB_STRUCTURE_HEADER {
 #define False   0\r
 #define True    1\r
 \r
-#define CHNLIB_STRUCT_ID_Null       0\r
-#define CHNLIB_STRUCT_ID_UIPArray   1\r
-#define CHNLIB_STRUCT_ID_String     2\r
+#define CHNLIB_STRUCT_ID_Null               0\r
+#define CHNLIB_STRUCT_ID_UIPArray           1\r
+#define CHNLIB_STRUCT_ID_String             2\r
+#define CHNLIB_STRUCT_ID_RandomGeneratorMT  3\r
+#define CHNLIB_STRUCT_ID_UUID               4\r
 \r
 #define CHNLIB_MAX_STRING_LENGTH       4096\r
 \r
@@ -86,8 +97,6 @@ void CHNLIB_Retain(void **structure);
 void CHNLIB_Release(void **structure);\r
 void *CHNLIB_AutoRelease(void *structure);\r
 //@chnlib00.c\r
-typedef struct CHNLIB_UIPARRAY CHNLIB_UIPArray;\r
-struct CHNLIB_UIP_ARRAY;\r
 //----配列の初期化\r
 CHNLIB_UIPArray *CHNLIB_UIPArray_Initialize(void);\r
 //----データの追加\r
@@ -117,8 +126,6 @@ CHNLIB_UIPArray *CHNLIB_UIPArray_CopyArray(const CHNLIB_UIPArray *source);
 CHNLIB_UIPArray *CHNLIB_UIPArray_GetSortedInDescendingOrderByData32(const CHNLIB_UIPArray *array);\r
 \r
 //@chnlib01.c\r
-typedef struct CHNLIB_STRING CHNLIB_String;\r
-struct CHNLIB_STRING;\r
 //----文字列の初期化\r
 CHNLIB_String *CHNLIB_String_Initialize(const char str[]);\r
 CHNLIB_String *CHNLIB_String_InitializeWithFormat(const char format[], ...);\r
@@ -159,12 +166,13 @@ int CHNLIB_String_Search_UIPArrayStringLocation(const CHNLIB_String *s, int s_st
 int CHNLIB_UIPArray_GetSeparatedStringByUIPArray(CHNLIB_UIPArray **separated, const CHNLIB_UIPArray *list, const CHNLIB_String *s);\r
 int CHNLIB_UIPArray_GetSeparatedUTF8Character(CHNLIB_UIPArray **separated, const CHNLIB_String *s);\r
 CHNLIB_String *CHNLIB_ReadLine(FILE *fp);\r
+CHNLIB_UUID *CHNLIB_GenerateUUIDVersion4WithRandomGeneratorMT(CHNLIB_RandomGeneratorMT *mt);\r
 \r
 //@chnlib03.c\r
 void CHNLIB_Environment_SetCurrentWorkingDirectory(const char apppath[]);\r
 const char *CHNLIB_Environment_GetFilenameFromPath(const char path[]);\r
 \r
-//@chnlib05.c\r
+//@chnlib04.c\r
 int CHNLIB_UTF8_GetCharacterType(char c);\r
 int CHNLIB_UTF8_GetStringLengthByCharacter(const char s[]);\r
 uint CHNLIB_UTF8_GetNextUnicodeOfCharacter(const char s[], const char **next);\r
@@ -173,4 +181,19 @@ int CHNLIB_UTF8_CompareString_LeftHand(const char s[], const char search[]);
 int CHNLIB_UTF8_GetByteSizeFromLengthByCharacter(const char s[], int start, int end);\r
 uint CHNLIB_UTF8_GetCountOfContain(const char s[], const char search[]);\r
 \r
+//@chnlib05.c\r
+CHNLIB_RandomGeneratorMT *CHNLIB_RandomGeneratorMT_Initialise(void);\r
+void CHNLIB_RandomGeneratorMT_Free(CHNLIB_RandomGeneratorMT *env);\r
+void CHNLIB_RandomGeneratorMT_SetSeed(CHNLIB_RandomGeneratorMT *env, unsigned long s);\r
+void CHNLIB_RandomGeneratorMT_SetSeedFromArray(CHNLIB_RandomGeneratorMT *env, unsigned long init_key[], int key_length);\r
+uint CHNLIB_RandomGeneratorMT_GetRandomUnsignedInteger32(CHNLIB_RandomGeneratorMT *env);\r
+\r
+//@chnlib06.c\r
+CHNLIB_UUID *CHNLIB_UUID_Initialise(void);\r
+void CHNLIB_UUID_Free(CHNLIB_UUID *uuid);\r
+void CHNLIB_UUID_Print(const CHNLIB_UUID *uuid);\r
+int CHNLIB_UUID_IsEqualToUUID(const CHNLIB_UUID *uuid1, const CHNLIB_UUID *uuid2);\r
+void CHNLIB_UUID_SetValueAsUUIDVersion4CompatibleWithRFC4122(CHNLIB_UUID *uuid, uint random1, uint random2, uint random3, uint random4);\r
+void CHNLIB_UUID_SetNullUUID(CHNLIB_UUID *uuid);\r
+CHNLIB_UUID *CHNLIB_UUID_Copy(const CHNLIB_UUID *uuidBase);\r
 #endif\r