root/trunk/AprSharp/test/src/Main.cs

Revision 1, 4.2 kB (checked in by DenisG, 3 years ago)

Initial import

  • Property svn:eol-style set to native
Line 
1 // project created on 4/28/04 at 9:26 a
2 using System;
3 using Softec.AprSharp;
4 using System.Diagnostics;
5 using System.Runtime.InteropServices;
6
7 public class MainClass
8 {
9         public static void Main(string[] args)
10         {
11             Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));
12         Console.WriteLine("Hello World!");
13        
14         AprAllocator a = AprAllocator.Create();
15         AprPool p = AprPool.Create(a);
16         Debug.WriteLine("apr_pool_allocator_get("+p+")=" + p.Allocator);
17         Debug.WriteLine("apr_allocator_owner_get("+a+")=" + a.Owner);
18         a.Owner = p;
19         Debug.WriteLine("apr_allocator_owner_get("+a+")=" + a.Owner);
20         AprPool.Create(p).Destroy();
21         AprPool.Create(p,a).Destroy();
22         AprThreadMutex l=AprThreadMutex.Create(p);
23         Debug.WriteLine("apr_thread_mutex_pool_get("+l+")=" + l.Pool);       
24         l.Lock();
25         Debug.WriteLine("apr_thread_mutex_trylock("+l+")=" + l.TryLock());       
26         l.Unlock();
27         Debug.WriteLine("apr_thread_mutex_trylock("+l+")=" + l.TryLock());       
28         l.Unlock();
29         Debug.WriteLine("apr_allocator_mutex_get("+a+")=" + a.Mutex);       
30         a.Mutex=l;
31         Debug.WriteLine("apr_allocator_mutex_get("+a+")=" + a.Mutex);       
32         a.Free(a.Alloc(128));
33        
34         GCHandle mt;
35         AprTimeExp t = AprTimeExp.ManagedAlloc(out mt);
36         long now = AprTimeExp.Now();
37         Debug.WriteLine("apr_time_now()="+now);
38         t.Time = now;
39         Debug.WriteLine("apr_rfc822_date=" + AprTimeExp.Rfc822Date(now));
40         Debug.WriteLine("apr_ctime=" + AprTimeExp.CTime(now));
41         Debug.WriteLine("apr_time_exp_____get=" + t.Time + DumpAprTimeExp(t));
42         Debug.WriteLine("apr_time_exp_gmt_get=" + t.GmtTime + DumpAprTimeExp(t));
43         Debug.WriteLine("apr_strftime=" + t.ToString("%Y%m%d%H%M%S"));
44         t.Time = t.Time;
45         Debug.WriteLine("apr_time_exp_____get=" + t.Time + DumpAprTimeExp(t));
46         Debug.WriteLine("apr_time_exp_gmt_get=" + t.GmtTime + DumpAprTimeExp(t));
47         Debug.WriteLine("apr_strftime=" + t.ToString("%Y%m%d%H%M%S"));
48         t.GmtTime = now;
49         Debug.WriteLine("apr_time_exp_____get=" + t.Time + DumpAprTimeExp(t));
50         Debug.WriteLine("apr_time_exp_gmt_get=" + t.GmtTime + DumpAprTimeExp(t));
51         Debug.WriteLine("apr_strftime=" + t.ToString("%Y%m%d%H%M%S"));
52         t.GmtTime = t.GmtTime;
53         Debug.WriteLine("apr_time_exp_____get=" + t.Time + DumpAprTimeExp(t));
54         Debug.WriteLine("apr_time_exp_gmt_get=" + t.GmtTime + DumpAprTimeExp(t));
55         Debug.WriteLine("apr_strftime=" + t.ToString("%Y%m%d%H%M%S"));
56         t.SetTimeTZ(now, 7200);
57         Debug.WriteLine("apr_time_exp_____get=" + t.Time + DumpAprTimeExp(t));
58         Debug.WriteLine("apr_time_exp_gmt_get=" + t.GmtTime + DumpAprTimeExp(t));
59         Debug.WriteLine("apr_strftime=" + t.ToString("%Y%m%d%H%M%S"));
60         mt.Free();
61         p.Destroy();
62
63 /*
64         a = AprAllocator.Create();
65         AprMemNode m = a.Alloc(16384);
66         PrintMemNode("m", m, true);
67         AprMemNode m1 = a.Alloc(32767);
68         PrintMemNode("m", m, true);
69         PrintMemNode("m1", m1, true);
70         a.Free(m1);
71         PrintMemNode("m", m, true);
72         a.Destroy();
73 */
74     }
75    
76     public unsafe static void PrintMemNode(string name, AprMemNode m, bool r)
77     {
78         if (name != null) Debug.WriteLine("Dump "+name+"="+m.ToString());
79         Debug.Indent();
80         Debug.WriteLine("m.Next=" + m.Next.ToString());
81         if (!m.Next.IsNull() && r) PrintMemNode(name, m.Next, false);
82         Debug.WriteLine("m.NativeRef=" + ((Int32)(m.NativeRef)).ToString("X"));
83         //Debug.WriteLine("m.Ref=" + m.Ref.ToString());
84         //if (!m.Ref.IsNull() && r) PrintMemNode(name, m.Ref, false);
85         Debug.WriteLine("m.Index=" + m.Index);
86         Debug.WriteLine("m.FreeIndex=" + m.FreeIndex);
87         Debug.WriteLine("m.FirstAvail=" + ((Int32)(m.FirstAvail)).ToString("X"));
88         Debug.WriteLine("m.EndP=" + ((Int32)(m.EndP)).ToString("X"));
89         Debug.Unindent();
90     }
91    
92     public static string DumpAprTimeExp(AprTimeExp t)
93     {
94         return("{"+t.Day+"/"+t.Month+"/"+t.Year+" "+t.Hours+":"+t.Minutes+":"+t.Seconds+"."+t.MicroSeconds+" off"+t.TimeZone+" W"+t.WeekDay+" Y"+t.YearDay+"}");
95     }
96 }
Note: See TracBrowser for help on using the browser.