From: Carlos Guzm?n ?l. <car...@us...> - 2003-05-01 14:05:17
|
Update of /cvsroot/firebird/Net-Provider/source In directory sc8-pr-cvs1:/tmp/cvs-serv4251 Modified Files: Tag: branch-release-1-1 FbDatabaseInfo.cs Log Message: Added more database information items. Index: FbDatabaseInfo.cs =================================================================== RCS file: /cvsroot/firebird/Net-Provider/source/FbDatabaseInfo.cs,v retrieving revision 1.4.2.2 retrieving revision 1.4.2.3 diff -b -U3 -r1.4.2.2 -r1.4.2.3 --- FbDatabaseInfo.cs 1 May 2003 11:05:45 -0000 1.4.2.2 +++ FbDatabaseInfo.cs 1 May 2003 14:05:12 -0000 1.4.2.3 @@ -47,7 +47,6 @@ { get { - checkConnection(); return (string)GetItemInfo(GdsCodes.isc_info_isc_version); } } @@ -57,7 +56,6 @@ { get { - checkConnection(); return (string)GetItemInfo(GdsCodes.isc_info_firebird_version); } } @@ -67,7 +65,6 @@ { get { - checkConnection(); return (string)GetItemInfo(GdsCodes.isc_info_db_class); } } @@ -77,17 +74,60 @@ { get { - checkConnection(); return (int)GetItemInfo(GdsCodes.isc_info_page_size); } } + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:AllocationPages"]/*'/> + public int AllocationPages + { + get + { + return (int)GetItemInfo(GdsCodes.isc_info_allocation); + } + } + + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:BaseLevel"]/*'/> + public string BaseLevel + { + get + { + return (string)GetItemInfo(GdsCodes.isc_info_base_level); + } + } + + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:DbId"]/*'/> + public string DbId + { + get + { + return (string)GetItemInfo(GdsCodes.isc_info_db_id); + } + } + + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:Implementation"]/*'/> + public string Implementation + { + get + { + return (string)GetItemInfo(GdsCodes.isc_info_implementation); + } + } + + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:NoReserve"]/*'/> + public bool NoReserve + { + get + { + return (bool)GetItemInfo(GdsCodes.isc_info_no_reserve); + } + } + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:OdsVersion"]/*'/> public int OdsVersion { get { - checkConnection(); return (int)GetItemInfo(GdsCodes.isc_info_ods_version); } } @@ -97,7 +137,6 @@ { get { - checkConnection(); return (int)GetItemInfo(GdsCodes.isc_info_ods_minor_version); } } @@ -107,7 +146,6 @@ { get { - checkConnection(); return (int)GetItemInfo(GdsCodes.isc_info_max_memory); } } @@ -117,31 +155,208 @@ { get { - checkConnection(); return (int)GetItemInfo(GdsCodes.isc_info_current_memory); } } + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:ForcedWrites"]/*'/> + public bool ForcedWrites + { + get + { + return (bool)GetItemInfo(GdsCodes.isc_info_forced_writes); + } + } + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:NumBuffers"]/*'/> public int NumBuffers { get { - checkConnection(); return (int)GetItemInfo(GdsCodes.isc_info_num_buffers); } } + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:SweepInterval"]/*'/> + public int SweepInterval + { + get + { + return (int)GetItemInfo(GdsCodes.isc_info_sweep_interval); + } + } + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:ReadOnly"]/*'/> public bool ReadOnly { get { - checkConnection(); return (bool)GetItemInfo(GdsCodes.isc_info_db_read_only); } } + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:Fetches"]/*'/> + public int Fetches + { + get + { + return (int)GetItemInfo(GdsCodes.isc_info_fetches); + } + } + + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:Marks"]/*'/> + public int Marks + { + get + { + return (int)GetItemInfo(GdsCodes.isc_info_marks); + } + } + + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:Reads"]/*'/> + public int Reads + { + get + { + return (int)GetItemInfo(GdsCodes.isc_info_reads); + } + } + + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:Writes"]/*'/> + public int Writes + { + get + { + return (int)GetItemInfo(GdsCodes.isc_info_writes); + } + } + + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:BackoutCount"]/*'/> + public int BackoutCount + { + get + { + return (int)GetItemInfo(GdsCodes.isc_info_backout_count); + } + } + + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:DeleteCount"]/*'/> + public int DeleteCount + { + get + { + return (int)GetItemInfo(GdsCodes.isc_info_delete_count); + } + } + + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:ExpungeCount"]/*'/> + public int ExpungeCount + { + get + { + return (int)GetItemInfo(GdsCodes.isc_info_expunge_count); + } + } + + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:InsertCount"]/*'/> + public int InsertCount + { + get + { + return (int)GetItemInfo(GdsCodes.isc_info_insert_count); + } + } + + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:PurgeCount"]/*'/> + public int PurgeCount + { + get + { + return (int)GetItemInfo(GdsCodes.isc_info_purge_count); + } + } + + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:ReadIdxCount"]/*'/> + public int ReadIdxCount + { + get + { + return (int)GetItemInfo(GdsCodes.isc_info_read_idx_count); + } + } + + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:ReadSeqCount"]/*'/> + public int ReadSeqCount + { + get + { + return (int)GetItemInfo(GdsCodes.isc_info_read_seq_count); + } + } + + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:ReadSeqCount"]/*'/> + public int UpdateCount + { + get + { + return (int)GetItemInfo(GdsCodes.isc_info_update_count); + } + } + + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:DatabaseSizeInPages"]/*'/> + public int DatabaseSizeInPages + { + get + { + return (int)GetItemInfo(GdsCodes.isc_info_db_size_in_pages); + } + } + + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:OldestTransaction"]/*'/> + public int OldestTransaction + { + get + { + return (int)GetItemInfo(GdsCodes.isc_info_oldest_transaction); + } + } + + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:OldestActiveTransaction"]/*'/> + public int OldestActiveTransaction + { + get + { + return (int)GetItemInfo(GdsCodes.isc_info_oldest_active); + } + } + + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:OldestActiveSnapshot"]/*'/> + public int OldestActiveSnapshot + { + get + { + return (int)GetItemInfo(GdsCodes.isc_info_oldest_snapshot); + } + } + + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:NextTransaction"]/*'/> + public int NextTransaction + { + get + { + return (int)GetItemInfo(GdsCodes.isc_info_next_transaction); + } + } + + /// <include file='xmldoc/fbdatabaseinfo.xml' path='doc/member[@name="P:ActiveTransactions"]/*'/> + public int ActiveTransactions + { + get + { + return (int)GetItemInfo(GdsCodes.isc_info_active_transactions); + } + } + #endregion #region CONSTRUCTORS @@ -170,6 +385,8 @@ GdsCodes.isc_info_end }; + checkConnection(); + gds.isc_database_info( connection.IscConnection.db , databaseInfo.Length , @@ -192,16 +409,17 @@ case GdsCodes.isc_info_allocation: // Number of database pages allocated - break; + return gds.isc_vax_integer(buffer, pos, length); case GdsCodes.isc_info_base_level: /* Database version (level) number: * 1 byte containing the number 1 * 1 byte containing the version number */ - break; + return buffer[pos].ToString() + "." + buffer[pos + 1].ToString(); case GdsCodes.isc_info_db_id: + { /* Database file name and site name: * ⢠1 byte containing the number 2 * ⢠1 byte containing the length, d, of the database file name in bytes @@ -209,7 +427,16 @@ * ⢠1 byte containing the length, l, of the site name in bytes * ⢠A string of l bytes, containing the site name */ - break; + string dbFile = Encoding.Default.GetString(buffer, pos + 2, buffer[pos + 1]); + int sitePos = pos + 2 + buffer[pos + 1]; + int siteLength = buffer[sitePos]; + string siteName = Encoding.Default.GetString(buffer, sitePos + 1, siteLength); + sitePos += siteLength + 1; + siteLength = buffer[sitePos]; + siteName += "." + Encoding.Default.GetString(buffer, sitePos + 1, siteLength); + + return siteName + ":" + dbFile; + } case GdsCodes.isc_info_implementation: /* Database implementation number: @@ -217,7 +444,9 @@ * ⢠1 byte containing the implementation number * ⢠1 byte containing a âclassâ number, either 1 or 12 */ - break; + return buffer[pos].ToString() + "." + + buffer[pos + 1].ToString() + "." + + buffer[pos + 2].ToString(); case GdsCodes.isc_info_no_reserve: /* 0 or 1 @@ -225,7 +454,7 @@ * backup versions of modified records [Default] * ⢠1 indicates no space is reserved for such records */ - break; + return buffer[pos] == 1 ? true : false; case GdsCodes.isc_info_ods_version: /* ODS major version number @@ -275,7 +504,7 @@ /* Number specifying the mode in which database writes are performed * (0 for asynchronous, 1 for synchronous) */ - break; + return buffer[pos] == 1 ? true : false; case GdsCodes.isc_info_max_memory: /* Maximum amount of memory (in bytes) used at one time since the first @@ -291,7 +520,7 @@ /* Number of transactions that are committed between âsweepsâ to * remove database record versions that are no longer needed */ - break; + return gds.isc_vax_integer(buffer, pos, length); // // Performance statistics @@ -299,19 +528,19 @@ case GdsCodes.isc_info_fetches: // Number of reads from the memory buffer cache - break; + return gds.isc_vax_integer(buffer, pos, length); case GdsCodes.isc_info_marks: // Number of writes to the memory buffer cache - break; + return gds.isc_vax_integer(buffer, pos, length); case GdsCodes.isc_info_reads: // Number of page reads - break; + return gds.isc_vax_integer(buffer, pos, length); case GdsCodes.isc_info_writes: // Number of page writes - break; + return gds.isc_vax_integer(buffer, pos, length); // // Database operation counts @@ -319,39 +548,39 @@ case GdsCodes.isc_info_backout_count: // Number of removals of a version of a record - break; + return gds.isc_vax_integer(buffer, pos, length); case GdsCodes.isc_info_delete_count: // Number of database deletes since the database was last attached - break; + return gds.isc_vax_integer(buffer, pos, length); case GdsCodes.isc_info_expunge_count: /* Number of removals of a record and all of its ancestors, for records * whose deletions have been committed */ - break; + return gds.isc_vax_integer(buffer, pos, length); case GdsCodes.isc_info_insert_count: // Number of inserts into the database since the database was last attached - break; + return gds.isc_vax_integer(buffer, pos, length); case GdsCodes.isc_info_purge_count: // Number of removals of old versions of fully mature records - break; + return gds.isc_vax_integer(buffer, pos, length); case GdsCodes.isc_info_read_idx_count: // Number of reads done via an index since the database was last attached - break; + return gds.isc_vax_integer(buffer, pos, length); case GdsCodes.isc_info_read_seq_count: /* Number of sequential sequential table scans (row reads) done on each * table since the database was last attached */ - break; + return gds.isc_vax_integer(buffer, pos, length); case GdsCodes.isc_info_update_count: // Number of database updates since the database was last attached - break; + return gds.isc_vax_integer(buffer, pos, length); // // Misc @@ -381,28 +610,34 @@ return buffer[pos] == 1 ? true : false; case GdsCodes.isc_info_db_size_in_pages: - break; + // Database size in pages. + return gds.isc_vax_integer(buffer, pos, length); case GdsCodes.isc_info_oldest_transaction: - break; + // Number of oldest transaction + return gds.isc_vax_integer(buffer, pos, length); case GdsCodes.isc_info_oldest_active: - break; + // Number of oldest active transaction + return gds.isc_vax_integer(buffer, pos, length); case GdsCodes.isc_info_oldest_snapshot: - break; + // Number of oldest snapshot transaction + return gds.isc_vax_integer(buffer, pos, length); case GdsCodes.isc_info_next_transaction: - break; + // Number of next transaction + return gds.isc_vax_integer(buffer, pos, length); case GdsCodes.isc_info_active_transactions: - break; + // Number of active transactions + return gds.isc_vax_integer(buffer, pos, length); } pos += length; } - return null; + return 0; } private void checkConnection() |