File: ArrayDescMarshal.cs

package info (click to toggle)
mono 1.2.2.1-1etch1
  • links: PTS
  • area: main
  • in suites: etch
  • size: 142,720 kB
  • ctags: 256,408
  • sloc: cs: 1,495,736; ansic: 249,442; sh: 18,327; xml: 12,463; makefile: 5,046; perl: 1,248; asm: 635; yacc: 285; sql: 7
file content (59 lines) | stat: -rw-r--r-- 1,548 bytes parent folder | download | duplicates (5)
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
/*
 *	Firebird ADO.NET Data provider for .NET and Mono 
 * 
 *	   The contents of this file are subject to the Initial 
 *	   Developer's Public License Version 1.0 (the "License"); 
 *	   you may not use this file except in compliance with the 
 *	   License. You may obtain a copy of the License at 
 *	   http://www.firebirdsql.org/index.php?op=doc&id=idpl
 *
 *	   Software distributed under the License is distributed on 
 *	   an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either 
 *	   express or implied. See the License for the specific 
 *	   language governing rights and limitations under the License.
 * 
 *	Copyright (c) 2002, 2005 Carlos Guzman Alvarez
 *	All Rights Reserved.
 */

using System;
using System.Runtime.InteropServices;

using FirebirdSql.Data.Common;

namespace FirebirdSql.Data.Embedded
{
	#region Structures

	[StructLayout(LayoutKind.Sequential)]
	internal struct ArrayDescMarshal
	{
		public byte DataType;
		public byte Scale;
		public short Length;
		[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
		public string FieldName;
		[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
		public string RelationName;
		public short Dimensions;
		public short Flags;

		#region Static Methods

		public static int ComputeLength(int n)
		{
			return (Marshal.SizeOf(typeof(ArrayDescMarshal)) + n * Marshal.SizeOf(typeof(ArrayBoundMarshal)));
		}

		#endregion
	}

	[StructLayout(LayoutKind.Sequential)]
	internal struct ArrayBoundMarshal
	{
		public short LowerBound;
		public short UpperBound;
	}

	#endregion
}