private static void testGetTable(ISuperLoggingConnection conn)
        {
            conn.enable();
            ISuperLogEntryList list = conn.getAllEntries();
            SuperLogTableColumnSet colSet = new SuperLogTableColumnSet();
            colSet[SuperLogTableColumn.LOGIN_DN] = true;
            colSet[SuperLogTableColumn.OPERATION] = true;
            colSet[SuperLogTableColumn.STRING] = true;
            colSet[SuperLogTableColumn.ERROR_CODE] = true;
            colSet[SuperLogTableColumn.AVG_TIME] = true;
            ISuperLogTable table = conn.aggregate(list, colSet);

            foreach (ISuperLogTableRow r in table)
            {
                Console.WriteLine(r.ToString());
            }
            return;
        }
 private IntPtr convertColumnSetToIntPtr(SuperLogTableColumnSet colSet)
 {
     VMDIR_SUPERLOG_TABLE_COLUMN_SET colSetStruct = colSet.ToStruct();
     IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(VMDIR_SUPERLOG_TABLE_COLUMN_SET)));
     Marshal.StructureToPtr(colSetStruct, ptr, false);
     return ptr;
 }
 public ISuperLogTable aggregate(ISuperLogEntryList entries, SuperLogTableColumnSet colSet)
 {
     IntPtr table = IntPtr.Zero;
     uint error = SuperLoggingClientLibrary.VmDirSuperLogGetTable(
         ((SuperLogEntryList)entries).getIntPtr(),
         convertColumnSetToIntPtr(colSet),
         out table
         );
     validate("aggregate", error);
     return new SuperLogTable(table);
 }