Advertisement
fakuivan

Untitled

Jan 29th, 2017
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.58 KB | None | 0 0
  1. enum DBScanner_ObjectDataStruct {
  2.     DBScanner_ObjectDataStruct_Type = 0,
  3.     DBScanner_ObjectDataStruct_Name,
  4.     DBScanner_ObjectDataStruct_SizeOfName,
  5.     DBScanner_ObjectDataStruct_SQL,
  6.     DBScanner_ObjectDataStruct_SizeOfSQL,
  7.     DBScanner_ObjectDataStruct_Table,
  8.     DBScanner_ObjectDataStruct_SQLResultType,
  9.     DBScanner_ObjectDataStruct_RootPage,
  10. }
  11.  
  12. enum DBScanner_TableDataStruct {
  13.         //as we "inherit" data from DBObject, we need to make space for the already existing objects
  14.     DBScanner_TableDataStruct_Columns = DBScanner_ObjectDataStruct,
  15. }
  16.  
  17. methodmap DBTable < DBObject {
  18.     public DBTable(DBObject h_object, ArrayList h_colums)
  19.     {
  20.         ResizeArray(h_object, DBScanner_TableDataStruct);
  21.         SetArrayCell(h_object, DBScanner_TableDataStruct_Columns, h_columns);
  22.         return h_object;
  23.     }
  24.    
  25.     property int m_iNOfColumns
  26.     {
  27.         public get() { return GetArraySize(GetArrayCell(this, DBScanner_TableDataStruct_Columns)); }
  28.     }
  29.    
  30.     property int m_hColumns
  31.     {
  32.         public get() { return GetArrayCell(this, DBScanner_TableDataStruct_Columns); }
  33.     }
  34. }
  35.  
  36. methodmap DBObject < ArrayList {
  37.     public DBObject(DBScanner_ObjectType i_type,
  38.                     const char[] s_name,
  39.                     int   i_sizeof_name,
  40.                     DBTable h_table,
  41.                     const char[] s_sql,
  42.                     int   i_sizeof_sql,
  43.                     DBResult i_sql_field_fetch_result,
  44.                     int i_rootpage)
  45.     {
  46.         int i_size = i_sizeof_name >= i_sizeof_sql ? i_sizeof_name : i_sizeof_sql;
  47.         Handle h_props = CreateArray(ByteCountToCells(i_size), view_as<int>(DBScanner_ObjectDataStruct))); // :TODO: check if this is really ``size + 1``
  48.         SetArrayCell(   h_props, DBScanner_ObjectDataStruct_Type,               i_type                  );
  49.         SetArrayString( h_props, DBScanner_ObjectDataStruct_Name,               s_name                  );
  50.         SetArrayCell(   h_props, DBScanner_ObjectDataStruct_SizeOfName,         i_sizeof_name           );
  51.         SetArrayCell(   h_props, DBScanner_ObjectDataStruct_Table,              h_table                 );
  52.         SetArrayString( h_props, DBScanner_ObjectDataStruct_SQL,                s_sql                   );
  53.         SetArrayCell(   h_props, DBScanner_ObjectDataStruct_SizeOfSQL,          i_sizeof_sql            );
  54.         SetArrayCell(   h_props, DBScanner_ObjectDataStruct_RootPage,           i_rootpage              );
  55.         SetArrayCell(   h_props, DBScanner_ObjectDataStruct_SQLResultType,      i_sql_field_fetch_result);
  56.         return view_as<DBObject>(h_props);
  57.     }
  58.    
  59.     property DBScanner_ObjectType m_iType
  60.     {
  61.         public get() { return GetArrayCell(this, DBScanner_ObjectDataStruct_Type); }
  62.     }
  63.    
  64.     property int m_iSizeOfName
  65.     {
  66.         public get() { GetArrayCell(this, DBScanner_ObjectDataStruct_SizeOfName); }
  67.     }
  68.    
  69.     public int GetName(char[] s_buffer, int i_sizeof_buffer)
  70.     {
  71.         return GetArrayString(this, DBScanner_ObjectDataStruct_Name, i_sizeof_buffer);
  72.     }
  73.    
  74.     property int m_iSizeOfTableName
  75.     {
  76.         public get()
  77.         {
  78.             DBTable h_table = GetArrayCell(this, DBScanner_ObjectDataStruct_Table);
  79.             return GetArrayCell(h_table, DBScanner_ObjectDataStruct_SizeOfName);
  80.         }
  81.     }
  82.    
  83.     public int GetTableName(char[] s_buffer, int i_sizeof_buffer)
  84.     {
  85.         DBTable h_table = GetArrayCell(this, DBScanner_ObjectDataStruct_Table);
  86.         return GetArrayString(h_table, DBScanner_ObjectDataStruct_Name, i_sizeof_buffer);
  87.     }
  88.    
  89.     property DBTable m_hTable
  90.     {
  91.         public get() { return GetArrayCell(this, DBScanner_ObjectDataStruct_Table); }
  92.     }
  93.    
  94.     property int m_iSizeOfSQL
  95.     {
  96.         public get() { GetArrayCell(this, DBScanner_ObjectDataStruct_SizeOfSQL); }
  97.     }
  98.    
  99.     public int GetSQL(char[] s_buffer, int i_sizeof_buffer)
  100.     {
  101.         return GetArrayString(this, DBScanner_ObjectDataStruct_SQL, i_sizeof_buffer);
  102.     }
  103.    
  104.     property DBResult m_iSQLFieldFetchResult
  105.     {
  106.         public get() { return GetArrayCell(this, DBScanner_ObjectDataStruct_SQLResultType); }
  107.     }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement