summaryrefslogtreecommitdiffstats
path: root/qtsharp/src/bindings/static/QByteArray.cs
blob: 05f55be0f6f32cfc50096e87d37717503de70c27 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// TTQByteArray.cs - A Qt to C# binding.
//
// Copyright (C) 2002  Adam Treat (manyoso@yahoo.com)
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
//
// Generated File.  Do Not Modify.

namespace Qt {

	using Qt;
	using System;
	using System.Runtime.InteropServices;

	public class TTQByteArray : TTQMemArray, IDisposable {

		[DllImport("libqtc", CharSet=CharSet.Ansi)]
		private static extern IntPtr qt_new_QByteArray ();
		public TTQByteArray () : this (TQNull.Instance)
		{
			rawObject = qt_new_QByteArray ();
			RegisterObject (this);
		}

		[DllImport("libqtc", CharSet=CharSet.Ansi)]
		private static extern IntPtr qt_new_QByteArray1 (int size);
		public TTQByteArray (int size) : this (TQNull.Instance)
		{
			rawObject = qt_new_QByteArray1 (size);
			RegisterObject (this);
		}

		internal TTQByteArray (IntPtr ptr) : this (TQNull.Instance)
		{
			rawObject = ptr;
			RegisterObject(this);
		}

		internal TTQByteArray (TQNull dummy) : base (TQNull.Instance) {}

		~TTQByteArray ()
		{
			Dispose (false);
		}

		internal override void Delete ()
		{
			if (deleted) return;

			// libqtc lacks a qt_del_QByteArray function
			deleted = true;
		}

		
		[DllImport("libqtc", CharSet=CharSet.Ansi)]
		private static extern IntPtr qt_QByteArray_assign1
			(IntPtr rawObject, [MarshalAs(UnmanagedType.LPArray)] byte[] b,
			uint length );
		
		public static implicit operator TTQByteArray (byte[] bArray)
		{
			TTQByteArray qbArray = new TTQByteArray (bArray.Length);
			qbArray.rawObject =
				qt_QByteArray_assign1 (qbArray.rawObject, bArray, (uint) bArray.Length);
			GC.KeepAlive (bArray);
			return qbArray;
		}	
		
		// Begin interface methods.

	}
}