Compare commits
11 Commits
libnode-2_
...
libnode-2_
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6a6ae07870 | ||
|
|
b477d4b154 | ||
|
|
334f0cbeb1 | ||
|
|
676814b6cf | ||
|
|
f7c1f8bc5f | ||
|
|
652ab987a4 | ||
|
|
0431691352 | ||
|
|
3ad6e01702 | ||
|
|
4bf44a1fff | ||
|
|
aa69e7e7b1 | ||
|
|
29f7064ed0 |
@@ -1,14 +1,14 @@
|
||||
# $RCSfile: ReadMe.txt,v $
|
||||
# $Revision: 2.7 $
|
||||
# $Revision: 2.8 $
|
||||
# $Name: $
|
||||
# $Date: 2005/01/19 22:32:05 $
|
||||
# $Date: 2005/01/24 01:19:50 $
|
||||
# $Author: agibert $
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Welcome to LibNode 2.0.x !
|
||||
Welcome to LibNode 2.1.x !
|
||||
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ This release of LibNode supports the following OS:
|
||||
|
||||
The support of LibVer is now optional (To enable it, use: make _LIBVER_SUPPORT=1 all).
|
||||
|
||||
LibShm and LibDataStr are no more supported.
|
||||
LibNode support LibShMem 2.0.0 and LibDataStr 2.0.0 !
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,13 +1,26 @@
|
||||
# $RCSfile: ReleaseNotes.txt,v $
|
||||
# $Revision: 2.18 $
|
||||
# $Revision: 2.20 $
|
||||
# $Name: $
|
||||
# $Date: 2005/01/19 23:40:40 $
|
||||
# $Date: 2005/01/24 00:50:55 $
|
||||
# $Author: agibert $
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
LibNode V 2.1.0-1 - A. Gibert - 24/01/05
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
All: This new LibNode branch (2.1.x) should support the forthcoming new LibShMem branch (2.0.x),
|
||||
LibNode: Add symbol lookup support for manager, allocator and desallocator functions call,
|
||||
New Allocator and desallocator API interace,
|
||||
Code cleanup,
|
||||
NDBench: DS_Open now support an arg in order to use or not symbol lookup,
|
||||
Add test-*-s.ndb batch files witch use symbol lookup.
|
||||
|
||||
|
||||
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
LibNode V 2.0.7-1 - A. Gibert - 20/01/05
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
6
ToDo.txt
6
ToDo.txt
@@ -1,14 +1,14 @@
|
||||
# $RCSfile: ToDo.txt,v $
|
||||
# $Revision: 2.4 $
|
||||
# $Revision: 2.5 $
|
||||
# $Name: $
|
||||
# $Date: 2005/01/19 22:37:44 $
|
||||
# $Date: 2005/01/24 01:19:50 $
|
||||
# $Author: agibert $
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- Re-enable LibShM/LibDataStr support (via symbol lookup support),
|
||||
- Check LibShMem/LibDataStr support (via symbol lookup support),
|
||||
- Add Cache Value option,
|
||||
- New English documentation (man/tex),
|
||||
- Improve API consitency.
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/*---------------------------------------------------------------------------------*/
|
||||
/* $RCSfile: node.h,v $ */
|
||||
/*---------------------------------------------------------------------------------*/
|
||||
/* $Revision: 2.11 $ */
|
||||
/* $Revision: 2.12 $ */
|
||||
/* $Name: $ */
|
||||
/* $Date: 2005/01/11 20:57:04 $ */
|
||||
/* $Date: 2005/01/20 00:00:25 $ */
|
||||
/* $Author: agibert $ */
|
||||
/*---------------------------------------------------------------------------------*/
|
||||
|
||||
@@ -436,7 +436,7 @@ typedef int NDT_Recursive_Offset;
|
||||
|
||||
/*------------------------------------------------------------------------------*/
|
||||
|
||||
# if defined(_MSC_VER) && !defined(LIBNODE_STATIC)
|
||||
# if defined(_WIN32) && !defined(LIBNODE_STATIC)
|
||||
# ifndef _LIBNODE_C_
|
||||
# define NDD_DLL_API __declspec(dllimport)
|
||||
# else
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/*---------------------------------------------------------------------------------*/
|
||||
/* $RCSfile: libnode.c,v $ */
|
||||
/*---------------------------------------------------------------------------------*/
|
||||
/* $Revision: 2.14 $ */
|
||||
/* $Revision: 2.15 $ */
|
||||
/* $Name: $ */
|
||||
/* $Date: 2005/01/11 20:57:04 $ */
|
||||
/* $Date: 2005/01/19 23:59:41 $ */
|
||||
/* $Author: agibert $ */
|
||||
/*---------------------------------------------------------------------------------*/
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
#include <libnode.h>
|
||||
|
||||
#ifdef _LIBVER_SUPPORT
|
||||
VER_INFO_EXPORT( libnode, "$Revision: 2.14 $", "$Name: $", __FILE__, "$Author: agibert $")
|
||||
VER_INFO_EXPORT( libnode, "$Revision: 2.15 $", "$Name: $", __FILE__, "$Author: agibert $")
|
||||
#endif
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ NDT_Status ND_Default_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT
|
||||
|
||||
Command_Name = "NDD_CMD_MANAGER_VERSION";
|
||||
|
||||
*Version_Name_Ptr = "$Revision: 2.14 $ $Name: $ $Date: 2005/01/11 20:57:04 $ $Author: agibert $";
|
||||
*Version_Name_Ptr = "$Revision: 2.15 $ $Name: $ $Date: 2005/01/19 23:59:41 $ $Author: agibert $";
|
||||
|
||||
return( NDS_OK);
|
||||
}
|
||||
@@ -369,7 +369,7 @@ NDT_Status ND_OpenStruct_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id,
|
||||
|
||||
Command_Name = "NDD_CMD_MANAGER_VERSION";
|
||||
|
||||
*Version_Name_Ptr = "$Revision: 2.14 $ $Name: $ $Date: 2005/01/11 20:57:04 $ $Author: agibert $";
|
||||
*Version_Name_Ptr = "$Revision: 2.15 $ $Name: $ $Date: 2005/01/19 23:59:41 $ $Author: agibert $";
|
||||
|
||||
return( NDS_OK);
|
||||
}
|
||||
@@ -604,6 +604,7 @@ NDT_Status ND_Library_Open_I( int Debug_Mode)
|
||||
ND_Library_StdErr_Set_I( stderr);
|
||||
}
|
||||
|
||||
#if !defined(_WIN32)
|
||||
if( ( NDG_Base.DL_Ptr = dlopen( NULL, ( RTLD_NOW | RTLD_GLOBAL))) == NULL)
|
||||
{
|
||||
sprintf( NDG_Base.Err_String, "Error ND_Library_Open: can't dlopen [%s]", dlerror());
|
||||
@@ -611,6 +612,7 @@ NDT_Status ND_Library_Open_I( int Debug_Mode)
|
||||
|
||||
return( NDS_KO);
|
||||
}
|
||||
#endif
|
||||
|
||||
return( NDS_OK);
|
||||
}
|
||||
@@ -679,6 +681,7 @@ NDT_Status ND_Library_Close_I( void)
|
||||
|
||||
NDG_Base.Symbol_First_Ptr = (NDT_Symbol *)NULL;
|
||||
|
||||
#if !defined(_WIN32)
|
||||
if( dlclose( NDG_Base.DL_Ptr) != 0)
|
||||
{
|
||||
sprintf( NDG_Base.Err_String, "Error ND_Library_Open: can't dlclose [%s]", dlerror());
|
||||
@@ -686,6 +689,7 @@ NDT_Status ND_Library_Close_I( void)
|
||||
|
||||
return( NDS_KO);
|
||||
}
|
||||
#endif
|
||||
|
||||
NDG_Base.Open_Status = NDD_FALSE;
|
||||
|
||||
@@ -928,6 +932,16 @@ NDT_Status ND_DataStruct_Open_I( NDT_Root **Root_Ptr_Ptr, NDT_Index_Nb Index_N
|
||||
|
||||
/* Valeurs par défaut des fonctions d'allocation et de désallocation */
|
||||
|
||||
#if defined(_WIN32)
|
||||
if( ( Manager_Name != NULL) && ( Manager_Ptr == NULL))
|
||||
{
|
||||
sprintf( NDG_Base.Err_String, "Error ND_DataStruct_Open_I: no symbol lookup support, Manager_Ptr shouldn't be NULL");
|
||||
ND_Error_Print();
|
||||
|
||||
return( NDS_ERRAPI);
|
||||
}
|
||||
#endif
|
||||
|
||||
if( ( Manager_Name != NULL) || ( Manager_Ptr != NULL))
|
||||
{
|
||||
Real_Manager_Name = Manager_Name;
|
||||
@@ -939,6 +953,16 @@ NDT_Status ND_DataStruct_Open_I( NDT_Root **Root_Ptr_Ptr, NDT_Index_Nb Index_N
|
||||
Real_Manager_Ptr = ND_Default_Manager;
|
||||
}
|
||||
|
||||
#if defined(_WIN32)
|
||||
if( ( Allocator_Name != NULL) && ( Allocator_Ptr == NULL))
|
||||
{
|
||||
sprintf( NDG_Base.Err_String, "Error ND_DataStruct_Open_I: no symbol lookup support, Allocator_Ptr shouldn't be NULL");
|
||||
ND_Error_Print();
|
||||
|
||||
return( NDS_ERRAPI);
|
||||
}
|
||||
#endif
|
||||
|
||||
if( ( Allocator_Name != NULL) || ( Allocator_Ptr != NULL))
|
||||
{
|
||||
Real_Allocator_Name = Allocator_Name;
|
||||
@@ -950,6 +974,16 @@ NDT_Status ND_DataStruct_Open_I( NDT_Root **Root_Ptr_Ptr, NDT_Index_Nb Index_N
|
||||
Real_Allocator_Ptr = ND_Default_Allocator;
|
||||
}
|
||||
|
||||
#if defined(_WIN32)
|
||||
if( ( Desallocator_Name != NULL) && ( Desallocator_Ptr == NULL))
|
||||
{
|
||||
sprintf( NDG_Base.Err_String, "Error ND_DataStruct_Open_I: no symbol lookup support, Desallocator_Ptr shouldn't be NULL");
|
||||
ND_Error_Print();
|
||||
|
||||
return( NDS_ERRAPI);
|
||||
}
|
||||
#endif
|
||||
|
||||
if( ( Desallocator_Name != NULL) || ( Desallocator_Ptr != NULL))
|
||||
{
|
||||
Real_Desallocator_Name = Desallocator_Name;
|
||||
@@ -4119,6 +4153,7 @@ NDT_Status ND_Desallocator_Exec_C( void *Ptr, NDT_Desallocator_Name Desallocat
|
||||
|
||||
NDT_Status ND_Symbol_Find( void **Ptr_Ptr, const char *Symbol_Name)
|
||||
{
|
||||
#if !defined(_WIN32)
|
||||
NDT_Symbol *Symbol_Ptr;
|
||||
|
||||
|
||||
@@ -4166,6 +4201,7 @@ NDT_Status ND_Symbol_Find( void **Ptr_Ptr, const char *Symbol_Name)
|
||||
|
||||
NDG_Base.Symbol_First_Ptr = Symbol_Ptr;
|
||||
}
|
||||
#endif
|
||||
|
||||
return( NDS_OK);
|
||||
}
|
||||
@@ -5619,7 +5655,7 @@ void ND_Tree_Link_Recursive_Check( NDT_Node *Node_Ptr, int *Nb_Detected_Ptr,
|
||||
|
||||
NDT_Status ND_Address_Check( void *Address)
|
||||
{
|
||||
#if !defined(_MSC_VER)
|
||||
#if !defined(_WIN32)
|
||||
NDT_Status status;
|
||||
int rc;
|
||||
int test;
|
||||
@@ -5748,7 +5784,7 @@ void ND_Signal_Trap( int Sig_Num)
|
||||
{
|
||||
NDG_Base.Sig_Trapped = Sig_Num;
|
||||
|
||||
#if !defined(_MSC_VER)
|
||||
#if !defined(_WIN32)
|
||||
siglongjmp( NDG_Base.SigLongJmp_Env, 1);
|
||||
#else
|
||||
longjmp( NDG_Base.SigLongJmp_Env, 1);
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/*---------------------------------------------------------------------------------*/
|
||||
/* $RCSfile: libnode.h,v $ */
|
||||
/*---------------------------------------------------------------------------------*/
|
||||
/* $Revision: 2.8 $ */
|
||||
/* $Revision: 2.9 $ */
|
||||
/* $Name: $ */
|
||||
/* $Date: 2005/01/11 20:57:04 $ */
|
||||
/* $Date: 2005/01/19 23:59:42 $ */
|
||||
/* $Author: agibert $ */
|
||||
/*---------------------------------------------------------------------------------*/
|
||||
|
||||
@@ -87,7 +87,7 @@ typedef struct NDT_Base
|
||||
char Err_String[512];
|
||||
FILE *Err_Stream;
|
||||
int Sig_Trapped;
|
||||
#if !defined(_MSC_VER)
|
||||
#if !defined(_WIN32)
|
||||
sigjmp_buf SigLongJmp_Env;
|
||||
#else
|
||||
jmp_buf SigLongJmp_Env;
|
||||
|
||||
42
libnode.spec
42
libnode.spec
@@ -1,21 +1,30 @@
|
||||
Name: libnode
|
||||
Version: 2.0.7
|
||||
Release: 1
|
||||
Name: libnode
|
||||
Version: 2.1.0
|
||||
|
||||
%define libnode_name %{name}-%{version}-%{release}
|
||||
%define release_nb 1
|
||||
|
||||
Release: %{release_nb}rx3
|
||||
|
||||
|
||||
|
||||
%define libnode_name %{name}-%{version}-%{release_nb}
|
||||
%define source %{libnode_name}.src.tgz
|
||||
|
||||
Summary: Manages generic list and/or tree node structures
|
||||
Copyright: GPL
|
||||
Group: Application/Utilitaires
|
||||
Distribution: Rx3 OpenSource
|
||||
Vendor: Rx3
|
||||
Packager: Arnaud G. Gibert <arnaud@rx3.net>
|
||||
|
||||
Source: ftp://ftp.rx3.org/pub/%{source}
|
||||
Url: http://www.rx3.org/dvp/libnode/download/
|
||||
BuildRoot: %{_tmppath}/%{libnode_name}-buildroot
|
||||
AutoReqProv: no
|
||||
|
||||
Summary: Manages generic list and/or tree node structures
|
||||
Copyright: GPL/LGPL
|
||||
Group: Application/Utilitaires
|
||||
Distribution: Rx3 OpenSource
|
||||
Vendor: Rx3
|
||||
Packager: Arnaud G. Gibert <arnaud@rx3.net>
|
||||
|
||||
Source: ftp://ftp.rx3.org/pub/%{source}
|
||||
Url: http://www.rx3.org/dvp/libnode/download/
|
||||
BuildRoot: %{_tmppath}/%{libnode_name}-buildroot
|
||||
AutoReqProv: no
|
||||
|
||||
|
||||
|
||||
%description
|
||||
Manages generic list and/or tree node structures.
|
||||
@@ -49,6 +58,11 @@ rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jan 24 2005 Arnaud G. Gibert <arnaud@rx3.net> 2.1.0-1rx3
|
||||
- Update to 2.1.0 release,
|
||||
- Now use "rx3" as release suffix,
|
||||
- Fix copyright entry.
|
||||
|
||||
* Wed Jan 19 2005 Arnaud G. Gibert <arnaud@rx3.net> 2.0.7-1
|
||||
- Update to 2.0.7 release.
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/*---------------------------------------------------------------------------------*/
|
||||
/* $RCSfile: ndbench.c,v $ */
|
||||
/*---------------------------------------------------------------------------------*/
|
||||
/* $Revision: 2.8 $ */
|
||||
/* $Name: $ */
|
||||
/* $Date: 2004/08/24 20:31:28 $ */
|
||||
/* $Revision: 2.9 $ */
|
||||
/* $Name: $ */
|
||||
/* $Date: 2005/01/20 00:07:27 $ */
|
||||
/* $Author: agibert $ */
|
||||
/*---------------------------------------------------------------------------------*/
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
/*---------------------------------------------------------------------------------*/
|
||||
|
||||
#ifdef _LIBVER_SUPPORT
|
||||
VER_INFO_EXPORT( ndbench, "$Revision: 2.8 $", "$Name: $", __FILE__, "$Author: agibert $");
|
||||
VER_INFO_EXPORT( ndbench, "$Revision: 2.9 $", "$Name: $", __FILE__, "$Author: agibert $");
|
||||
# define USAGE "Usage : %s [ --help | --version [-v] | --batch_run <batch_file_name>]\n"
|
||||
#else
|
||||
# define USAGE "Usage : %s [ --help | --batch_run <batch_file_name>]\n"
|
||||
@@ -271,7 +271,7 @@ NDT_Status Module_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Nod
|
||||
|
||||
Command_Name = "NDD_CMD_MANAGER_VERSION";
|
||||
|
||||
*Version_Name_Ptr = "$Revision: 2.8 $ $Name: $ $Date: 2004/08/24 20:31:28 $ $Author: agibert $";
|
||||
*Version_Name_Ptr = "$Revision: 2.9 $ $Name: $ $Date: 2005/01/20 00:07:27 $ $Author: agibert $";
|
||||
|
||||
return( NDS_OK);
|
||||
}
|
||||
@@ -762,13 +762,30 @@ void Command_Exec( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, int Choice, cha
|
||||
{
|
||||
Command_Exec_Begin_Print( File_Output, Choice);
|
||||
|
||||
if( Arg1 == NULL)
|
||||
{
|
||||
fprintf( File_Output, "DataStruct_Open: Symbol Lookup ( 0:OFF | 1:ON) ? ");
|
||||
fgets( buf, BUF_LEN, File_Input);
|
||||
|
||||
Arg1 = buf;
|
||||
}
|
||||
|
||||
Choice = atoi( Arg1);
|
||||
|
||||
for( i = 0; i < INDEX_NB; i++)
|
||||
{
|
||||
idx_type_tab[i] = NDD_INDEX_STATUS_CLOSED;
|
||||
}
|
||||
|
||||
t_start( t_exec);
|
||||
ND_DataStruct_Open( DS_Ptr_Ptr, INDEX_NB, idx_type_tab, "Module_Manager", Module_Manager, NULL, NULL, NULL, NULL, NDD_TRUE, NULL);
|
||||
if( Choice == 0)
|
||||
{
|
||||
ND_DataStruct_Open( DS_Ptr_Ptr, INDEX_NB, idx_type_tab, "Module_Manager", Module_Manager, NULL, NULL, NULL, NULL, NDD_TRUE, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
ND_DataStruct_Open( DS_Ptr_Ptr, INDEX_NB, idx_type_tab, "Module_Manager", NULL, NULL, NULL, NULL, NULL, NDD_TRUE, NULL);
|
||||
}
|
||||
t_stop( t_exec);
|
||||
|
||||
Command_Exec_End_Print( File_Output, Choice, t_exec, 1);
|
||||
|
||||
10
util/test-10-s.ndb
Normal file
10
util/test-10-s.ndb
Normal file
@@ -0,0 +1,10 @@
|
||||
Lib_Open 0
|
||||
DS_Open 1
|
||||
Index_List_Open 0-0
|
||||
DS_Value_Add 1-10 0
|
||||
DS_Value_Find 1-10
|
||||
Index_List_To_Tree 0-0
|
||||
DS_Value_Find 1-10
|
||||
DS_Check
|
||||
DS_Close
|
||||
Lib_Close
|
||||
@@ -1,5 +1,5 @@
|
||||
Lib_Open 0
|
||||
DS_Open
|
||||
DS_Open 0
|
||||
Index_List_Open 0-0
|
||||
DS_Value_Add 1-10 0
|
||||
DS_Value_Find 1-10
|
||||
|
||||
10
util/test-100K-s.ndb
Normal file
10
util/test-100K-s.ndb
Normal file
@@ -0,0 +1,10 @@
|
||||
Lib_Open 0
|
||||
DS_Open 1
|
||||
Index_List_Open 0-0
|
||||
DS_Value_Add 1-100000 0
|
||||
DS_Value_Find 49900-50100
|
||||
Index_List_To_Tree 0-0
|
||||
DS_Value_Find 1-100000
|
||||
DS_Check
|
||||
DS_Close
|
||||
Lib_Close
|
||||
@@ -1,5 +1,5 @@
|
||||
Lib_Open 0
|
||||
DS_Open
|
||||
DS_Open 0
|
||||
Index_List_Open 0-0
|
||||
DS_Value_Add 1-100000 0
|
||||
DS_Value_Find 49900-50100
|
||||
|
||||
10
util/test-10K-s.ndb
Normal file
10
util/test-10K-s.ndb
Normal file
@@ -0,0 +1,10 @@
|
||||
Lib_Open 0
|
||||
DS_Open 1
|
||||
Index_List_Open 0-0
|
||||
DS_Value_Add 1-10000 0
|
||||
DS_Value_Find 4000-6000
|
||||
Index_List_To_Tree 0-0
|
||||
DS_Value_Find 1-10000
|
||||
DS_Check
|
||||
DS_Close
|
||||
Lib_Close
|
||||
@@ -1,5 +1,5 @@
|
||||
Lib_Open 0
|
||||
DS_Open
|
||||
DS_Open 0
|
||||
Index_List_Open 0-0
|
||||
DS_Value_Add 1-10000 0
|
||||
DS_Value_Find 4000-6000
|
||||
|
||||
10
util/test-1M-s.ndb
Normal file
10
util/test-1M-s.ndb
Normal file
@@ -0,0 +1,10 @@
|
||||
Lib_Open 0
|
||||
DS_Open 1
|
||||
Index_List_Open 0-0
|
||||
DS_Value_Add 1-1000000 0
|
||||
DS_Value_Find 499990-500010
|
||||
Index_List_To_Tree 0-0
|
||||
DS_Value_Find 1-1000000
|
||||
DS_Check
|
||||
DS_Close
|
||||
Lib_Close
|
||||
@@ -1,5 +1,5 @@
|
||||
Lib_Open 0
|
||||
DS_Open
|
||||
DS_Open 0
|
||||
Index_List_Open 0-0
|
||||
DS_Value_Add 1-1000000 0
|
||||
DS_Value_Find 499990-500010
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
Batch_Run test-error.ndb
|
||||
Batch_Run test-10.ndb
|
||||
Batch_Run test-10-s.ndb
|
||||
Batch_Run test-10K.ndb
|
||||
Batch_Run test-10K-s.ndb
|
||||
Batch_Run test-100K.ndb
|
||||
Batch_Run test-100K-s.ndb
|
||||
Batch_Run test-1M.ndb
|
||||
Batch_Run test-1M-s.ndb
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
DS_Open
|
||||
DS_Open 0
|
||||
Lib_Open 0
|
||||
DS_Open
|
||||
DS_Open 0
|
||||
Index_List_Open 0-0
|
||||
DS_Value_Add 1-10 0
|
||||
Lib_Close
|
||||
Lib_Open 1
|
||||
DS_Open
|
||||
DS_Open 0
|
||||
Index_List_Open 0-0
|
||||
DS_Value_Add 1-10 0
|
||||
Index_Value_Break 0-0 0
|
||||
|
||||
Reference in New Issue
Block a user