Changes in / [20:30]

Show
Ignore:
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • /trunk/AprSharp/test/src/AprArrayTest.cs

    r17 r29  
    9999         
    100100        [Test] 
     101        public void PushPopObject() 
     102        { 
     103            AprPool p = AprPool.Create(); 
     104            Assert.IsFalse(p.IsNull,"#B01"); 
     105         
     106            AprArray a = AprArray.Make(p,5,typeof(int)); 
     107            Assert.IsFalse(a.IsNull,"#B02"); 
     108             
     109            a.Push(1); 
     110            a.Push(2); 
     111            a.Push(3); 
     112            a.Push(4); 
     113            a.Push(5); 
     114             
     115            Assert.AreEqual(5,a.PopObject(),"#B05"); 
     116            Assert.AreEqual(4,a.PopObject(),"#BO6"); 
     117            Assert.AreEqual(3,a.PopObject(),"#BO7"); 
     118            Assert.AreEqual(2,a.PopObject(),"#BO8"); 
     119            Assert.AreEqual(1,a.PopObject(),"#BO9"); 
     120 
     121            a = AprArray.Make(p,5,typeof(AprString)); 
     122             
     123            a.Push(new AprString(p,"This")); 
     124            a.Push(new AprString(p,"is")); 
     125            a.Push(new AprString(p,"a")); 
     126            a.Push(new AprString(p,"test.")); 
     127 
     128            Assert.AreEqual("test.",a.PopObject().ToString(),"#B10"); 
     129            Assert.AreEqual("a",a.PopObject().ToString(),"#B11"); 
     130            Assert.AreEqual("is",a.PopObject().ToString(),"#B12"); 
     131            Assert.AreEqual("This",a.PopObject().ToString(),"#B13"); 
     132 
     133            p.Destroy(); 
     134            Assert.IsTrue(p.IsNull,"#B14"); 
     135        } 
     136         
     137        [Test] 
    101138        public void Copy() 
    102139        { 
     
    205242            p.Destroy(); 
    206243            Assert.IsTrue(p.IsNull,"#C04"); 
    207         }        
     244        } 
     245         
     246        [Test] 
     247        public void CopyTo() 
     248        { 
     249            AprPool p = AprPool.Create(); 
     250            Assert.IsFalse(p.IsNull,"#C01"); 
     251         
     252            AprArray a = AprArray.Make(p,5,typeof(AprString)); 
     253            Assert.IsFalse(a.IsNull,"#C02"); 
     254             
     255            Marshal.WriteIntPtr(a.Push(),new AprString(p,"1")); 
     256            Marshal.WriteIntPtr(a.Push(),new AprString(p,"2")); 
     257            Marshal.WriteIntPtr(a.Push(),new AprString(p,"3")); 
     258            Marshal.WriteIntPtr(a.Push(),new AprString(p,"4")); 
     259            Marshal.WriteIntPtr(a.Push(),new AprString(p,"5")); 
     260             
     261            AprString[] arr = new AprString[5];  
     262            a.CopyTo(arr,0); 
     263             
     264            Assert.AreEqual("1",arr[0].ToString(),"#C03"); 
     265            Assert.AreEqual("2",arr[1].ToString(),"#C04"); 
     266            Assert.AreEqual("3",arr[2].ToString(),"#C05"); 
     267            Assert.AreEqual("4",arr[3].ToString(),"#C06"); 
     268            Assert.AreEqual("5",arr[4].ToString(),"#C07"); 
     269             
     270            p.Destroy(); 
     271            Assert.IsTrue(p.IsNull,"#C08"); 
     272        } 
    208273    } 
    209274} 
  • /trunk/AprSharp/dev/src/AprNullReferenceException.cs

    r1 r29  
    1212using System; 
    1313using System.Runtime.Serialization; 
    14 using Softec; 
    1514 
    1615namespace Softec.AprSharp 
  • /trunk/AprSharp/dev/src/AprTimeExp.cs

    r16 r22  
    4545        { 
    4646            handle = GCHandle.Alloc(new apr_time_exp_t(),GCHandleType.Pinned); 
    47             mTimeExp = handle.AddrOfPinnedObject().ToPointer(); 
     47            mTimeExp = (apr_time_exp_t *)handle.AddrOfPinnedObject().ToPointer(); 
    4848        } 
    4949 
    5050        public AprTimeExp(IntPtr ptr) 
    5151        { 
    52             mTimeExp = ptr.ToPointer(); 
     52            mTimeExp = (apr_time_exp_t *)ptr.ToPointer(); 
    5353        } 
    5454         
  • /trunk/AprSharp/dev/src/AprArray.cs

    r9 r29  
    1111using System; 
    1212using System.Diagnostics; 
     13using System.Reflection; 
    1314using System.Runtime.InteropServices; 
    1415using System.Collections; 
     
    1617namespace Softec.AprSharp 
    1718{ 
    18     public unsafe struct AprArray 
     19    public unsafe struct AprArray : IEnumerable 
    1920    { 
    2021        private apr_array_header_t *mArray; 
     22        private Type mEltsType; 
    2123 
    2224        [StructLayout( LayoutKind.Sequential )] 
     
    2729            public int nelts; 
    2830            public int nalloc; 
    29             public byte *elts; 
     31            public IntPtr elts; 
    3032        } 
    3133 
     
    3436        { 
    3537            mArray = ptr; 
     38            mEltsType = null; 
    3639        } 
    3740 
    3841        public AprArray(IntPtr ptr) 
    3942        { 
    40             mArray = ptr.ToPointer(); 
     43            mArray = (apr_array_header_t *)ptr.ToPointer(); 
     44            mEltsType = null; 
     45        } 
     46 
     47        public AprArray(IntPtr ptr, Type eltsType) 
     48        { 
     49            mArray = (apr_array_header_t *)ptr.ToPointer(); 
     50            mEltsType = null; 
     51            if( eltsType != null ) 
     52                ElementType = eltsType; 
    4153        } 
    4254         
     
    5870        { 
    5971            mArray = null; 
     72            mEltsType = null; 
    6073        } 
    6174 
     
    7487            return("[apr_array_header_t:"+(new IntPtr(mArray)).ToInt32().ToString("X")+"]"); 
    7588        } 
     89         
     90        public Type ElementType 
     91        { 
     92            get 
     93            { 
     94                return(mEltsType); 
     95            } 
     96            set 
     97            { 
     98                if( (value.IsPrimitive && Marshal.SizeOf(value) != mArray->elt_size) 
     99                  ||(!value.IsPrimitive && Marshal.SizeOf(typeof(IntPtr)) != mArray->elt_size) ) 
     100                        throw new AprArgumentException("Type does not match element size."); 
     101                         
     102                if( value.IsPrimitive ) 
     103                    mEltsType = value; 
     104                else { 
     105                    if( value.GetConstructor(new Type[] {typeof(IntPtr)}) == null ) 
     106                        throw new AprInvalidOperationException("Type is not primitive and cannot be constructed from an IntPtr."); 
     107                    mEltsType = value; 
     108                } 
     109            } 
     110        } 
    76111        #endregion 
    77112         
    78113        #region Methods wrappers 
     114        public static AprArray Make(AprPool pool, int nElts, Type eltsType ) 
     115        { 
     116            if(eltsType.IsPrimitive) 
     117                return(new AprArray(Make(pool, nElts, Marshal.SizeOf(eltsType)),eltsType)); 
     118            else 
     119                return(new AprArray(Make(pool, nElts, Marshal.SizeOf(typeof(IntPtr))),eltsType)); 
     120        } 
     121 
    79122        public static AprArray Make(AprPool pool, int nElts, int eltSize ) 
    80123        { 
     
    101144            Debug.WriteLine(String.Format("Done({0:X})",((Int32)ptr))); 
    102145 
    103             return(ptr); 
     146            return(new AprArray(ptr,mEltsType)); 
    104147        } 
    105148 
     
    115158            Debug.WriteLine(String.Format("Done({0:X})",((Int32)ptr))); 
    116159 
    117             return(ptr); 
     160            return(new AprArray(ptr,mEltsType)); 
    118161        } 
    119162 
     
    121164        { 
    122165            IntPtr ptr; 
    123              
    124             CheckPtr(); 
     166            Type arrType; 
     167             
     168            CheckPtr(); 
     169            if (mEltsType != null && array.mEltsType != null && mEltsType != array.mEltsType) 
     170                throw new AprInvalidOperationException("Array type mismatch."); 
     171             
     172            if(mEltsType == null && array.mEltsType != null) 
     173                arrType = array.mEltsType; 
     174            arrType = mEltsType; 
     175                 
    125176            Debug.Write(String.Format("apr_array_append({0},{1},{2})...",pool,array,this)); 
    126177            ptr = Apr.apr_array_append(pool,(IntPtr)mArray,array); 
     
    129180            Debug.WriteLine(String.Format("Done({0:X})",((Int32)ptr))); 
    130181 
    131             return(ptr); 
     182            return(new AprArray(ptr,arrType)); 
    132183        } 
    133184 
    134185        public void Cat(AprArray array) 
    135186        { 
    136             CheckPtr(); 
     187            Type arrType; 
     188             
     189            CheckPtr(); 
     190            if (mEltsType != null && array.mEltsType != null && mEltsType != array.mEltsType) 
     191                throw new AprInvalidOperationException("Array type mismatch."); 
     192             
     193            if(mEltsType == null && array.mEltsType != null) 
     194                mEltsType = array.mEltsType; 
     195                 
    137196            Debug.WriteLine(String.Format("apr_array_cat({0},{1})",this,array)); 
    138197            Apr.apr_array_cat((IntPtr)mArray,array); 
     
    149208             
    150209            CheckPtr(); 
     210            if(mEltsType != null && mEltsType != typeof(AprString)) 
     211                throw new AprInvalidOperationException("Not an AprString array."); 
     212                 
    151213            Debug.Write(String.Format("apr_array_pstrcat({0},{1},{2})...",pool,this,sep)); 
    152214            ptr = Apr.apr_array_pstrcat(pool,new IntPtr(mArray),sep); 
     
    158220        }         
    159221 
     222        public void Push(byte o) 
     223        { 
     224            CheckPtr(); 
     225            Marshal.WriteByte(Push(),o); 
     226        } 
     227 
     228        public void Push(short o) 
     229        { 
     230            CheckPtr(); 
     231            Marshal.WriteInt16(Push(),o); 
     232        } 
     233         
     234        public void Push(int o) 
     235        { 
     236            CheckPtr(); 
     237            Marshal.WriteInt32(Push(),o); 
     238        } 
     239 
     240        public void Push(long o) 
     241        { 
     242            CheckPtr(); 
     243            Marshal.WriteInt64(Push(),o); 
     244        } 
     245         
     246        public void Push(IntPtr ptr) 
     247        { 
     248            CheckPtr(); 
     249            Marshal.WriteIntPtr(Push(),ptr); 
     250        } 
     251         
    160252        public IntPtr Push() 
    161253        { 
     
    170262 
    171263            return(ptr); 
    172         }         
     264        } 
     265         
     266        public object PopObject() 
     267        { 
     268            if(mEltsType == null)         
     269                throw new AprInvalidOperationException("Array not typed."); 
     270                 
     271            if(mEltsType.IsPrimitive) 
     272            { 
     273                object val; 
     274                switch(ElementSize) 
     275                { 
     276                    case 1: 
     277                        val = Marshal.ReadByte(Pop()); 
     278                        break; 
     279                    case 2: 
     280                        val = Marshal.ReadInt16(Pop()); 
     281                        break; 
     282                    case 4: 
     283                        val = Marshal.ReadInt32(Pop()); 
     284                        break; 
     285                    case 8: 
     286                        val = Marshal.ReadInt64(Pop()); 
     287                        break; 
     288                    default: 
     289                        throw new AprInvalidOperationException("Invalid element size."); 
     290                } 
     291                return(Convert.ChangeType(val,mEltsType)); 
     292            } 
     293             
     294            ConstructorInfo ctor = mEltsType.GetConstructor(new Type[] {typeof(IntPtr)}); 
     295            if( ctor == null ) 
     296                throw new AprInvalidOperationException("Type is not primitive and cannot be constructed from an IntPtr."); 
     297             
     298            IntPtr ptr = Marshal.ReadIntPtr(Pop()); 
     299            return(ctor.Invoke(new Object[] { ptr })); 
     300        }         
    173301         
    174302        public IntPtr Pop() 
     
    203331        }         
    204332 
     333        public int AllocatedCount 
     334        { 
     335            get { 
     336                return(mArray->nalloc); 
     337            } 
     338        } 
     339         
     340        public int ElementSize 
     341        { 
     342            get { 
     343                return(mArray->elt_size); 
     344            } 
     345        } 
     346         
     347        public IntPtr Data 
     348        { 
     349            get { 
     350                return(mArray->elts); 
     351            } 
     352        } 
     353        #endregion 
     354         
     355        #region ICollection 
     356        public void CopyTo(Array array, int arrayIndex) 
     357        { 
     358            if(null == array) 
     359                throw new AprArgumentNullException("array"); 
     360            if(arrayIndex < 0 || arrayIndex > array.Length) 
     361                throw new AprArgumentOutOfRangeException("arrayIndex"); 
     362            if(array.Rank > 1) 
     363                throw new AprArgumentException("array is multidimensional"); 
     364            if((array.Length - arrayIndex) < Count) 
     365                throw new AprArgumentException("Not enough room from arrayIndex to end of array for this AprArray"); 
     366             
     367            int i = arrayIndex; 
     368            IEnumerator it = GetEnumerator(); 
     369            while(it.MoveNext()) { 
     370                array.SetValue(it.Current, i++); 
     371            } 
     372        } 
     373         
     374        public bool IsSynchronized  
     375        { 
     376            get 
     377            { 
     378                return false; 
     379            } 
     380        } 
     381 
     382        public object SyncRoot  
     383        { 
     384            get 
     385            { 
     386                return this; 
     387            } 
     388        } 
     389 
    205390        public int Count 
    206391        { 
     
    209394            } 
    210395        } 
    211  
    212         public int AllocatedCount 
    213         { 
    214             get { 
    215                 return(mArray->nalloc); 
    216             } 
    217         } 
    218          
    219         public int ElementSize 
    220         { 
    221             get { 
    222                 return(mArray->elt_size); 
    223             } 
    224         } 
    225          
    226         public IntPtr Data 
    227         { 
    228             get { 
    229                 return(new IntPtr(mArray->elts)); 
    230             } 
    231         } 
    232  
    233         [CLSCompliant(false)] 
    234         public byte *NativeData 
    235         { 
    236             get { 
    237                 return(mArray->elts); 
    238             } 
     396        #endregion        
     397         
     398        #region IEnumerable 
     399        public IEnumerator GetEnumerator() 
     400        { 
     401            return (IEnumerator) new AprArrayEnumerator(this); 
    239402        } 
    240403        #endregion 
     404 
     405    } 
     406     
     407    public class AprArrayEnumerator : IEnumerator 
     408    { 
     409        AprArray mArray; 
     410        int mIndex; 
     411     
     412        public AprArrayEnumerator(AprArray array) 
     413        { 
     414            mArray = array; 
     415            mIndex = -1; 
     416        } 
     417         
     418        #region IEnumerator 
     419        public bool MoveNext() 
     420        { 
     421            if (++mIndex >= mArray.Count) { 
     422                mIndex = mArray.Count; 
     423                return(false); 
     424            } 
     425            return(true); 
     426        } 
     427         
     428        public void Reset() 
     429        { 
     430            mIndex = -1; 
     431        } 
     432                 
     433        public object Current 
     434        { 
     435            get 
     436            { 
     437                if (mIndex < 0 || mIndex >= mArray.Count) 
     438                    throw new AprInvalidOperationException("No current item."); 
     439                 
     440                if(mArray.ElementType == null) 
     441                    throw new AprInvalidOperationException("Array not typed."); 
     442                                 
     443                if(mArray.ElementType.IsPrimitive) 
     444                { 
     445                    object val; 
     446                    switch(mArray.ElementSize) 
     447                    { 
     448                        case 1: 
     449                            val = Marshal.ReadByte(mArray.Data,mIndex); 
     450                            break; 
     451                        case 2: 
     452                            val = Marshal.ReadInt16(mArray.Data,mIndex*2); 
     453                            break; 
     454                        case 4: 
     455                            val = Marshal.ReadInt32(mArray.Data,mIndex*4); 
     456                            break; 
     457                        case 8: 
     458                            val = Marshal.ReadInt64(mArray.Data,mIndex*8); 
     459                            break; 
     460                        default: 
     461                            throw new AprInvalidOperationException("Invalid element size."); 
     462                    } 
     463                    return(Convert.ChangeType(val,mArray.ElementType)); 
     464                } 
     465                 
     466                ConstructorInfo ctor = mArray.ElementType.GetConstructor(new Type[] {typeof(IntPtr)}); 
     467                if( ctor == null ) 
     468                    throw new AprInvalidOperationException("Type is not primitive and cannot be constructed from an IntPtr."); 
     469                 
     470                IntPtr ptr = Marshal.ReadIntPtr(mArray.Data,mIndex*mArray.ElementSize); 
     471                return(ctor.Invoke(new Object[] { ptr })); 
     472            } 
     473        } 
     474        #endregion 
     475 
    241476    } 
    242477} 
  • /trunk/AprSharp/dev/src/Apr.cs

    r20 r30  
    1919    ///<summary>Embeds all APR external calls</summary> 
    2020    ///<remark>Take care to call apr_initialize</remark> 
    21     public class Apr 
     21    public sealed class Apr 
    2222    { 
    2323        // no instance constructor ! 
  • /trunk/AprSharp/dev/src/AprMemNode.cs

    r9 r22  
    3838        public AprMemNode(IntPtr ptr) 
    3939        { 
    40             mMemNode = ptr.ToPointer(); 
     40            mMemNode = (apr_memnode_t *)ptr.ToPointer(); 
    4141        } 
    4242         
     
    113113            { 
    114114                CheckPtr(); 
    115                 mMemNode->selfref=value.ToPointer();  
     115                mMemNode->selfref=(apr_memnode_t **)value.ToPointer();  
    116116            } 
    117117        } 
     
    165165            { 
    166166                CheckPtr(); 
    167                 mMemNode->first_avail=value.ToPointer(); 
     167                mMemNode->first_avail=(byte *)value.ToPointer(); 
    168168            } 
    169169        } 
  • /trunk/AprSharp/dev/src/AprSharp.prjx

    r6 r29  
    2020    <File name="./AprHashIndex.cs" subtype="Code" buildaction="Compile" dependson="" data="" /> 
    2121    <File name="./AprArray.cs" subtype="Code" buildaction="Compile" dependson="" data="" /> 
     22    <File name="./AprInvalidOperationException.cs" subtype="Code" buildaction="Compile" dependson="" data="" /> 
    2223  </Contents> 
    2324  <References /> 
  • /trunk/AprSharp/dev/src/AprArgumentOutOfRangeException.cs

    r1 r29  
    1212using System; 
    1313using System.Runtime.Serialization; 
    14 using Softec; 
    1514 
    1615namespace Softec.AprSharp 
  • /trunk/AprSharp/dev/src/AprArgumentNullException.cs

    r1 r29  
    1212using System; 
    1313using System.Runtime.Serialization; 
    14 using Softec; 
    1514 
    1615namespace Softec.AprSharp 
     
    2120        const int Result = unchecked ((int)0xA0654003); 
    2221 
    23         private string mParamName; 
    24          
    2522        public AprArgumentNullException()  
    2623               : base ("Argument cannot be null.") 
  • /trunk/AprSharp/dev/src/AprArgumentException.cs

    r1 r29  
    1212using System; 
    1313using System.Runtime.Serialization; 
    14 using Softec; 
    1514 
    1615namespace Softec.AprSharp 
  • /trunk/AprSharp/dev/src/AprString.cs

    r17 r28  
    8888        public override string ToString() 
    8989        { 
    90             return(Marshal.PtrToStringAnsi(mString)); 
     90            if( IsNull ) 
     91                return("[apr_string:NULL]"); 
     92            else 
     93                return(Marshal.PtrToStringAnsi(mString)); 
    9194        } 
    9295        #endregion 
  • /trunk/SubversionSharp/test/src/Main.cs

    r7 r21  
    22using System; 
    33using System.Diagnostics; 
     4using System.Collections; 
    45using Softec.AprSharp; 
    56using Softec.SubversionSharp; 
     
    1516        SvnClientContext ctx = SvnClientContext.Create(pool); 
    1617        ctx.Config = SvnConfig.GetConfig(pool); 
    17         AprHash ctxcfg = ctx.Config; 
    18         foreach(AprHashEntry cfg in ctxcfg) 
    19         { 
    20             Console.WriteLine("{0}\t{1:X}",cfg.KeyAsString,cfg.Value.ToInt32()); 
    21         } 
     18         
     19        ArrayList authObj = new ArrayList(); 
     20        authObj.Add(SvnAuthProviderObject.GetSimpleProvider(pool)); 
     21        authObj.Add(SvnAuthProviderObject.GetUsernameProvider(pool)); 
     22        authObj.Add(SvnAuthProviderObject.GetSslServerTrustFileProvider(pool)); 
     23        authObj.Add(SvnAuthProviderObject.GetSslClientCertFileProvider(pool)); 
     24        authObj.Add(SvnAuthProviderObject.GetSslClientCertPwFileProvider(pool)); 
     25        authObj.Add(SvnAuthProviderObject.GetPromptProvider( 
     26                        new SvnAuthProviderObject.SimplePrompt(SimpleAuth), 
     27                        IntPtr.Zero, 2, pool)); 
     28        authObj.Add(SvnAuthProviderObject.GetPromptProvider( 
     29                        new SvnAuthProviderObject.UsernamePrompt(UsernameAuth), 
     30                        IntPtr.Zero, 2, pool)); 
     31         
     32         
    2233        pool.Destroy(); 
    2334    } 
     35     
     36    public static SvnError SimpleAuth(out SvnAuthCredSimple cred, IntPtr baton,  
     37                           AprString realm, AprString username,  
     38                           bool maySave, AprPool pool) 
     39    { 
     40        Console.WriteLine("Simple Authentication"); 
     41        Console.WriteLine("---------------------"); 
     42        Console.WriteLine("Realm: {0}", realm); 
     43        Console.WriteLine(""); 
     44         
     45        bool valid = false; 
     46        string line; 
     47         
     48        while(!valid) 
     49        { 
     50            if (!username.IsNull) 
     51                Console.Write("Enter Username ({0}): ", username); 
     52            else 
     53                Console.Write("Enter Username: "); 
     54 
     55            line = Console.ReadLine(); 
     56 
     57            if (line.Trim().Length == 0 && !username.IsNull) 
     58            { 
     59                line = username.ToString(); 
     60                valid = true; 
     61            } 
     62            else if (line.Trim().Length > 0) 
     63            { 
     64                valid = true; 
     65            } 
     66        } 
     67         
     68        cred = SvnAuthCredSimple.Alloc(pool); 
     69        cred.Username = new AprString(pool, line); 
     70        Console.Write("Enter Password: "); 
     71        cred.Password = new AprString(pool, Console.ReadLine()); 
     72        cred.MaySave = maySave; 
     73        return(SvnError.NoError); 
     74    } 
     75     
     76    public static SvnError UsernameAuth(out SvnAuthCredUsername cred, IntPtr baton,  
     77                                        AprString realm, bool maySave, AprPool pool) 
     78    { 
     79        Console.WriteLine("Username Authentication:"); 
     80        Console.WriteLine("------------------------"); 
     81        Console.WriteLine("Realm: {0}", realm); 
     82        Console.WriteLine(""); 
     83 
     84        bool valid = false; 
     85        string line; 
     86         
     87        while(!valid) 
     88        { 
     89            Console.Write("Enter Username: "); 
     90 
     91            line = Console.ReadLine(); 
     92 
     93            if (line.Trim().Length > 0) 
     94            { 
     95                valid = true; 
     96            } 
     97        } 
     98         
     99        cred = SvnAuthCredUsername.Alloc(pool); 
     100        cred.Username = new AprString(pool, line); 
     101        cred.MaySave = maySave; 
     102        return(SvnError.NoError); 
     103    } 
    24104} 
  • /trunk/SubversionSharp/dev/src/SubversionSharp.prjx

    r19 r21  
    1111    <File name="./SvnAuthCred.cs" subtype="Code" buildaction="Compile" dependson="" data="" /> 
    1212    <File name="./SvnAuthSslServerCertInfo.cs" subtype="Code" buildaction="Compile" dependson="" data="" /> 
     13    <File name="./SvnAuthBaton.cs" subtype="Code" buildaction="Compile" dependson="" data="" /> 
    1314  </Contents> 
    1415  <References> 
  • /trunk/SubversionSharp/dev/src/SvnAuthSslServerCertInfo.cs

    r19 r27  
    4040        public SvnAuthSslServerCertInfo(IntPtr ptr) 
    4141        { 
    42             mSslServerCertInfo = ptr.ToPointer(); 
     42            mSslServerCertInfo = (svn_auth_ssl_server_cert_info *) ptr.ToPointer(); 
    4343        } 
    4444         
  • /trunk/SubversionSharp/dev/src/SvnError.cs

    r18 r27  
    3939        public SvnError(IntPtr ptr) 
    4040        { 
    41             mError = ptr.ToPointer(); 
     41            mError = (svn_error_t *) ptr.ToPointer(); 
    4242        } 
    4343         
  • /trunk/SubversionSharp/dev/src/SvnAuthProvider.cs

    r19 r21  
    1717    public struct SvnAuthProviderObject 
    1818    { 
    19         IntPtr mAuthProviderObject; 
     19        private IntPtr mAuthProviderObject; 
     20        internal SvnAuthProvider mAuthProvider; 
    2021 
    2122        #region Generic embedding functions of an IntPtr 
     
    2324        { 
    2425            mAuthProviderObject = ptr; 
     26            mAuthProvider = null; 
     27        } 
     28 
     29        private SvnAuthProviderObject(IntPtr ptr, SvnAuthProvider authProvider) 
     30        { 
     31            mAuthProviderObject = ptr; 
     32            mAuthProvider = authProvider; 
    2533        } 
    2634         
     
    8593 
    8694        #region Wrapper client method 
    87         public static SvnAuthProviderObject GetSimplePromptProvider(  
     95        public static SvnAuthProviderObject GetPromptProvider(  
    8896                                                    SimplePrompt promptFunc,  
    8997                                                    IntPtr promptBaton, int retryLimit, AprPool pool) 
    9098        { 
    9199            IntPtr authObj; 
    92             throw new NotImplementedException();  
    93             //return(new SvnAuthProviderObject()); 
     100            SvnAuthProvider auth = new SvnAuthProvider(promptFunc); 
     101            Svn.svn_client_get_simple_prompt_provider(out authObj,  
     102                                            (Svn.svn_auth_simple_prompt_func_t) auth.Wrapper,  
     103                                            promptBaton, retryLimit, pool); 
     104            return(new SvnAuthProviderObject(authObj,auth)); 
    94105        } 
    95106                                                     
    96         public static SvnAuthProviderObject GetUsernamePromptProvider( 
     107        public static SvnAuthProviderObject GetPromptProvider( 
    97108                                                UsernamePrompt promptFunc, 
    98109                                                IntPtr promptBaton, int retryLimit, AprPool pool) 
    99110        { 
    100111            IntPtr authObj;  
    101             throw new NotImplementedException();  
    102             //return(new SvnAuthProviderObject()); 
     112            SvnAuthProvider auth = new SvnAuthProvider(promptFunc); 
     113            Svn.svn_client_get_username_prompt_provider(out authObj,  
     114                                            (Svn.svn_auth_username_prompt_func_t) auth.Wrapper,  
     115                                            promptBaton, retryLimit, pool); 
     116            return(new SvnAuthProviderObject(authObj,auth)); 
    103117        } 
    104118                                                 
     
    138152        } 
    139153         
    140         public static SvnAuthProviderObject GetSslServerTrustPromptProvider( 
     154        public static SvnAuthProviderObject GetPromptProvider( 
    141155                                                SslServerTrustPrompt promptFunc, 
    142156                                                IntPtr promptBaton, AprPool pool) 
    143157        { 
    144158            IntPtr authObj;  
    145             throw new NotImplementedException();  
    146             //return(new SvnAuthProviderObject()); 
    147         } 
    148          
    149         public static SvnAuthProviderObject GetSslClientCertPromptProvider( 
     159            SvnAuthProvider auth = new SvnAuthProvider(promptFunc); 
     160            Svn.svn_client_get_ssl_server_trust_prompt_provider(out authObj,  
     161                                        (Svn.svn_auth_ssl_server_trust_prompt_func_t) auth.Wrapper,  
     162                                        promptBaton, pool); 
     163            return(new SvnAuthProviderObject(authObj,auth)); 
     164        } 
     165         
     166        public static SvnAuthProviderObject GetPromptProvider( 
    150167                                                SslClientCertPrompt promptFunc, 
    151168                                                IntPtr promptBaton, int retryLimit, AprPool pool) 
    152169        { 
    153170            IntPtr authObj;  
    154             throw new NotImplementedException();  
    155             //return(new SvnAuthProviderObject()); 
    156         } 
    157          
    158         public static SvnAuthProviderObject GetSslClientCertPwPromptProvider( 
     171            SvnAuthProvider auth = new SvnAuthProvider(promptFunc); 
     172            Svn.svn_client_get_ssl_client_cert_prompt_provider(out authObj,  
     173                                        (Svn.svn_auth_ssl_client_cert_prompt_func_t) auth.Wrapper,  
     174                                        promptBaton, retryLimit, pool); 
     175            return(new SvnAuthProviderObject(authObj,auth)); 
     176        } 
     177         
     178        public static SvnAuthProviderObject GetPromptProvider( 
    159179                                                SslClientCertPwPrompt promptFunc, 
    160180                                                IntPtr promptBaton, int retryLimit, AprPool pool) 
    161181        { 
    162182            IntPtr authObj;  
    163             throw new NotImplementedException();  
    164             //return(new SvnAuthProviderObject()); 
     183            SvnAuthProvider auth = new SvnAuthProvider(promptFunc); 
     184            Svn.svn_client_get_ssl_client_cert_pw_prompt_provider(out authObj,  
     185                                        (Svn.svn_auth_ssl_client_cert_pw_prompt_func_t) auth.Wrapper,  
     186                                        promptBaton, retryLimit, pool); 
     187            return(new SvnAuthProviderObject(authObj,auth)); 
    165188        } 
    166189        #endregion 
    167190    } 
    168191     
    169     public class SvnAuthProvider 
     192    internal class SvnAuthProvider 
    170193    { 
    171194        object mFunc; 
     195        object mWrapperFunc; 
     196         
     197        public SvnAuthProvider(SvnAuthProviderObject.SimplePrompt func) 
     198        { 
     199            mFunc = func; 
     200            mWrapperFunc = new Svn.svn_auth_simple_prompt_func_t(SvnAuthSimplePrompt); 
     201        } 
     202         
     203        public SvnAuthProvider(SvnAuthProviderObject.UsernamePrompt func) 
     204        { 
     205            mFunc = func; 
     206            mWrapperFunc = new Svn.svn_auth_username_prompt_func_t(SvnAuthUsernamePrompt); 
     207        } 
     208 
     209        public SvnAuthProvider(SvnAuthProviderObject.SslServerTrustPrompt func) 
     210        { 
     211            mFunc = func; 
     212            mWrapperFunc = new Svn.svn_auth_ssl_server_trust_prompt_func_t(SvnAuthSslServerTrustPrompt); 
     213        } 
     214 
     215        public SvnAuthProvider(SvnAuthProviderObject.SslClientCertPrompt func) 
     216        { 
     217            mFunc = func; 
     218            mWrapperFunc = new Svn.svn_auth_ssl_client_cert_prompt_func_t(SvnAuthSslClientCertPrompt); 
     219        } 
     220 
     221        public SvnAuthProvider(SvnAuthProviderObject.SslClientCertPwPrompt func) 
     222        { 
     223            mFunc = func; 
     224            mWrapperFunc = new Svn.svn_auth_ssl_client_cert_pw_prompt_func_t(SvnAuthSslClientCertPwPrompt); 
     225        } 
     226         
     227        public object Wrapper 
     228        { 
     229            get 
     230            { 
     231                return(mWrapperFunc); 
     232            } 
     233        } 
    172234         
    173235        private IntPtr SvnAuthSimplePrompt(out IntPtr cred, IntPtr baton,  
     
    227289        } 
    228290                                                                
    229         [CLSCompliant(false)] 
     291        //[CLSCompliant(false)] 
    230292        private  IntPtr SvnAuthSslServerTrustPrompt(out IntPtr cred, IntPtr baton,  
    231293                                                    IntPtr realm, uint failures,  
  • /trunk/SubversionSharp/dev/src/Svn.cs

    r19 r21  
    142142                                                svn_auth_ssl_client_cert_pw_prompt_func_t prompt_func, 
    143143                                                IntPtr prompt_baton, int retry_limit, IntPtr pool); 
     144        #endregion 
     145         
     146        #region AuthBaton 
     147        [DllImport("svn_client-1")] static extern 
     148        internal void svn_auth_open(out IntPtr auth_baton, IntPtr providers, IntPtr pool); 
     149         
     150        [DllImport("svn_client-1")] static extern 
     151        internal void svn_auth_set_parameter(IntPtr auth_baton, IntPtr name, IntPtr value); 
     152         
     153        [DllImport("svn_client-1")] static extern 
     154        internal IntPtr svn_auth_get_parameter(IntPtr auth_baton, IntPtr name); 
    144155        #endregion 
    145156    } 
  • /trunk/SubversionSharp/dev/src/SvnAuthCred.cs

    r19 r27  
    3636        public SvnAuthCredSimple(IntPtr ptr) 
    3737        { 
    38             mCred = ptr.ToPointer(); 
     38            mCred = (svn_auth_cred_simple_t *)ptr.ToPointer(); 
    3939        } 
    4040         
     
    141141        public SvnAuthCredUsername(IntPtr ptr) 
    142142        { 
    143             mCred = ptr.ToPointer(); 
     143            mCred = (svn_auth_cred_username_t *)ptr.ToPointer(); 
    144144        } 
    145145         
     
    233233        public SvnAuthCredSslServerTrust(IntPtr ptr) 
    234234        { 
    235             mCred = ptr.ToPointer(); 
     235            mCred = (svn_auth_cred_ssl_server_trust_t *) ptr.ToPointer(); 
    236236        } 
    237237         
     
    338338        public SvnAuthCredSslClientCert(IntPtr ptr) 
    339339        { 
    340             mCred = ptr.ToPointer(); 
     340            mCred = (svn_auth_cred_ssl_client_cert_t *) ptr.ToPointer(); 
    341341        } 
    342342         
     
    431431        public SvnAuthCredSslClientCertPw(IntPtr ptr) 
    432432        { 
    433             mCred = ptr.ToPointer(); 
     433            mCred = (svn_auth_cred_ssl_client_cert_pw_t *) ptr.ToPointer(); 
    434434        } 
    435435         
  • /trunk/SubversionSharp/dev/src/SvnClientContext.cs

    r8 r27  
    4242        public SvnClientContext(IntPtr ptr) 
    4343        { 
    44             mClientContext = ptr.ToPointer(); 
     44            mClientContext = (svn_client_ctx_t *) ptr.ToPointer(); 
    4545        } 
    4646