summaryrefslogtreecommitdiffstats
path: root/qtsharp/src/bindings/static/QByteArray.cs
blob: ca9101918710f9c0941c17d372f453cf36b5ac10 (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
// TQByteArray.cs - A Qt to C# binding.
//
// Copyright (C) 2002  Adam Treat ([email protected])
//
// 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 TQByteArray : TQMemArray, IDisposable {

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

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

		internal TQByteArray (IntPtr ptr) : this (QNull.Instance)
		{
			rawObject = ptr;
			RegisterObject(this);
		}

		internal TQByteArray (QNull dummy) : base (QNull.Instance) {}

		~TQByteArray ()
		{
			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 TQByteArray (byte[] bArray)
		{
			TQByteArray qbArray = new TQByteArray (bArray.Length);
			qbArray.rawObject =
				qt_QByteArray_assign1 (qbArray.rawObject, bArray, (uint) bArray.Length);
			GC.KeepAlive (bArray);
			return qbArray;
		}	
		
		// Begin interface methods.

	}
}