Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / clr / src / BCL / System / Globalization / CalendarTable.cs / 1 / CalendarTable.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
namespace System.Globalization {
using System.Runtime.Remoting;
using System;
using System.Runtime.CompilerServices;
using System.Threading;
using System.Runtime.Versioning;
using System.Runtime.InteropServices;
/*==============================================================================
*
* Calendar Data table for DateTimeFormatInfo classes. Used by System.Globalization.DateTimeFormatInfo.
*
==============================================================================*/
internal class CalendarTable : BaseInfoTable {
// The default instance of calendar table. We should only create one instance per app-domain.
private static CalendarTable m_defaultInstance;
unsafe CalendarTableData* m_calendars;
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
static CalendarTable()
{
m_defaultInstance = new CalendarTable("culture.nlp", true);
}
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
internal CalendarTable(String fileName, bool fromAssembly) : base(fileName, fromAssembly) {
// Do nothing here.
}
////////////////////////////////////////////////////////////////////////
//
// Set Data Item Pointers that are unique to calendar table
//
////////////////////////////////////////////////////////////////////////
internal override unsafe void SetDataItemPointers()
{
m_itemSize = m_pCultureHeader->sizeCalendarItem;
m_numItem = m_pCultureHeader->numCalendarItems;
m_pDataPool = (ushort*)(m_pDataFileStart + m_pCultureHeader->offsetToDataPool);
// We subtract item size because calender indices start at 1 but our table doesn't have an entry for 0
m_pItemData = m_pDataFileStart + m_pCultureHeader->offsetToCalendarItemData - m_itemSize;
// Get calendar list. We subtract 1 because calender indices start at 1 but our table doesn't have an entry for 0
m_calendars = (CalendarTableData*)(m_pDataFileStart + m_pCultureHeader->offsetToCalendarItemData) - 1;
}
internal static CalendarTable Default {
get {
BCLDebug.Assert(m_defaultInstance != null, "CalendarTable.Default: default instance is not created.");
return (m_defaultInstance);
}
}
internal unsafe int ICURRENTERA(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.ICURRENTERA]id out of calendar range");
return m_calendars[id].iCurrentEra;
}
internal unsafe int IFORMATFLAGS(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.IFORMATFLAGS]id out of calendar range");
return m_calendars[id].iFormatFlags;
}
internal unsafe String[] SDAYNAMES(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SDAYNAMES]id out of calendar range");
return GetStringArray(m_calendars[id].saDayNames);
}
internal unsafe String[] SABBREVDAYNAMES(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SABBREVDAYNAMES]id out of calendar range");
return GetStringArray(m_calendars[id].saAbbrevDayNames);
}
internal unsafe String[] SSUPERSHORTDAYNAMES(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SSUPERSHORTDAYNAMES]id out of calendar range");
return GetStringArray(m_calendars[id].saSuperShortDayNames);
}
internal unsafe String[] SMONTHNAMES(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SMONTHNAMES]id out of calendar range");
return GetStringArray(m_calendars[id].saMonthNames);
}
internal unsafe String[] SABBREVMONTHNAMES(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SABBREVMONTHNAMES]id out of calendar range");
return GetStringArray(m_calendars[id].saAbbrevMonthNames);
}
internal unsafe String[] SLEAPYEARMONTHNAMES(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SLEAPYEARMONTHNAMES]id out of calendar range");
return GetStringArray(m_calendars[id].saLeapYearMonthNames);
}
internal unsafe String[] SSHORTDATE(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SSHORTDATE]id out of calendar range");
return GetStringArray(m_calendars[id].saShortDate);
}
internal unsafe String[] SLONGDATE(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SLONGDATE]id out of calendar range");
return GetStringArray(m_calendars[id].saLongDate);
}
internal unsafe String[] SYEARMONTH(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SYEARMONTH]id out of calendar range");
return GetStringArray(m_calendars[id].saYearMonth);
}
internal unsafe String SMONTHDAY(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SMONTHDAY]id out of calendar range");
return GetStringPoolString(m_calendars[id].sMonthDay);
}
internal unsafe int[][] SERARANGES(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SERARANGES]id out of calendar range");
return GetWordArrayArray(m_calendars[id].waaEraRanges);
}
internal unsafe String[] SERANAMES(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SERANAMES]id out of calendar range");
return GetStringArray(m_calendars[id].saEraNames);
}
internal unsafe String[] SABBREVERANAMES(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SABBREVERANAMES]id out of calendar range");
return GetStringArray(m_calendars[id].saAbbrevEraNames);
}
internal unsafe String[] SABBREVENGERANAMES(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SABBREVENGERANAMES]id out of calendar range");
return GetStringArray(m_calendars[id].saAbbrevEnglishEraNames);
}
[MethodImplAttribute(MethodImplOptions.InternalCall)]
internal static extern String nativeGetEraName(int culture, int calID);
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
namespace System.Globalization {
using System.Runtime.Remoting;
using System;
using System.Runtime.CompilerServices;
using System.Threading;
using System.Runtime.Versioning;
using System.Runtime.InteropServices;
/*==============================================================================
*
* Calendar Data table for DateTimeFormatInfo classes. Used by System.Globalization.DateTimeFormatInfo.
*
==============================================================================*/
internal class CalendarTable : BaseInfoTable {
// The default instance of calendar table. We should only create one instance per app-domain.
private static CalendarTable m_defaultInstance;
unsafe CalendarTableData* m_calendars;
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
static CalendarTable()
{
m_defaultInstance = new CalendarTable("culture.nlp", true);
}
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
internal CalendarTable(String fileName, bool fromAssembly) : base(fileName, fromAssembly) {
// Do nothing here.
}
////////////////////////////////////////////////////////////////////////
//
// Set Data Item Pointers that are unique to calendar table
//
////////////////////////////////////////////////////////////////////////
internal override unsafe void SetDataItemPointers()
{
m_itemSize = m_pCultureHeader->sizeCalendarItem;
m_numItem = m_pCultureHeader->numCalendarItems;
m_pDataPool = (ushort*)(m_pDataFileStart + m_pCultureHeader->offsetToDataPool);
// We subtract item size because calender indices start at 1 but our table doesn't have an entry for 0
m_pItemData = m_pDataFileStart + m_pCultureHeader->offsetToCalendarItemData - m_itemSize;
// Get calendar list. We subtract 1 because calender indices start at 1 but our table doesn't have an entry for 0
m_calendars = (CalendarTableData*)(m_pDataFileStart + m_pCultureHeader->offsetToCalendarItemData) - 1;
}
internal static CalendarTable Default {
get {
BCLDebug.Assert(m_defaultInstance != null, "CalendarTable.Default: default instance is not created.");
return (m_defaultInstance);
}
}
internal unsafe int ICURRENTERA(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.ICURRENTERA]id out of calendar range");
return m_calendars[id].iCurrentEra;
}
internal unsafe int IFORMATFLAGS(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.IFORMATFLAGS]id out of calendar range");
return m_calendars[id].iFormatFlags;
}
internal unsafe String[] SDAYNAMES(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SDAYNAMES]id out of calendar range");
return GetStringArray(m_calendars[id].saDayNames);
}
internal unsafe String[] SABBREVDAYNAMES(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SABBREVDAYNAMES]id out of calendar range");
return GetStringArray(m_calendars[id].saAbbrevDayNames);
}
internal unsafe String[] SSUPERSHORTDAYNAMES(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SSUPERSHORTDAYNAMES]id out of calendar range");
return GetStringArray(m_calendars[id].saSuperShortDayNames);
}
internal unsafe String[] SMONTHNAMES(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SMONTHNAMES]id out of calendar range");
return GetStringArray(m_calendars[id].saMonthNames);
}
internal unsafe String[] SABBREVMONTHNAMES(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SABBREVMONTHNAMES]id out of calendar range");
return GetStringArray(m_calendars[id].saAbbrevMonthNames);
}
internal unsafe String[] SLEAPYEARMONTHNAMES(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SLEAPYEARMONTHNAMES]id out of calendar range");
return GetStringArray(m_calendars[id].saLeapYearMonthNames);
}
internal unsafe String[] SSHORTDATE(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SSHORTDATE]id out of calendar range");
return GetStringArray(m_calendars[id].saShortDate);
}
internal unsafe String[] SLONGDATE(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SLONGDATE]id out of calendar range");
return GetStringArray(m_calendars[id].saLongDate);
}
internal unsafe String[] SYEARMONTH(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SYEARMONTH]id out of calendar range");
return GetStringArray(m_calendars[id].saYearMonth);
}
internal unsafe String SMONTHDAY(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SMONTHDAY]id out of calendar range");
return GetStringPoolString(m_calendars[id].sMonthDay);
}
internal unsafe int[][] SERARANGES(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SERARANGES]id out of calendar range");
return GetWordArrayArray(m_calendars[id].waaEraRanges);
}
internal unsafe String[] SERANAMES(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SERANAMES]id out of calendar range");
return GetStringArray(m_calendars[id].saEraNames);
}
internal unsafe String[] SABBREVERANAMES(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SABBREVERANAMES]id out of calendar range");
return GetStringArray(m_calendars[id].saAbbrevEraNames);
}
internal unsafe String[] SABBREVENGERANAMES(int id)
{
BCLDebug.Assert(id > 0 && id <= m_numItem,
"[CalendarTable.SABBREVENGERANAMES]id out of calendar range");
return GetStringArray(m_calendars[id].saAbbrevEnglishEraNames);
}
[MethodImplAttribute(MethodImplOptions.InternalCall)]
internal static extern String nativeGetEraName(int culture, int calID);
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ModuleConfigurationInfo.cs
- Matrix3DStack.cs
- ActivityInterfaces.cs
- TreeNodeBinding.cs
- DbConnectionInternal.cs
- EndGetFileNameFromUserRequest.cs
- StorageInfo.cs
- XmlDocumentSerializer.cs
- ReferencedType.cs
- WebPartDeleteVerb.cs
- GridPatternIdentifiers.cs
- Debug.cs
- SmtpNegotiateAuthenticationModule.cs
- HtmlTableRowCollection.cs
- DayRenderEvent.cs
- SafeNativeMethods.cs
- WebPartAuthorizationEventArgs.cs
- WSHttpBindingBase.cs
- ListViewItem.cs
- listitem.cs
- Wizard.cs
- ValidationException.cs
- RenderData.cs
- StringSource.cs
- ConfigurationLockCollection.cs
- NativeMethods.cs
- PauseStoryboard.cs
- DynamicPropertyReader.cs
- OleDbStruct.cs
- SupportingTokenParameters.cs
- HostingPreferredMapPath.cs
- ObjectHandle.cs
- XmlHierarchicalEnumerable.cs
- AssemblyNameUtility.cs
- SqlExpressionNullability.cs
- DefaultAuthorizationContext.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- EntitySqlQueryCacheKey.cs
- StringUtil.cs
- HashMembershipCondition.cs
- OleDbConnectionFactory.cs
- CanonicalXml.cs
- TableCellsCollectionEditor.cs
- ExtensionSimplifierMarkupObject.cs
- FocusTracker.cs
- Stroke.cs
- NativeStructs.cs
- ResourcesChangeInfo.cs
- PolicyStatement.cs
- QilList.cs
- oledbmetadatacollectionnames.cs
- GridProviderWrapper.cs
- RangeBaseAutomationPeer.cs
- SecurityManager.cs
- DirectionalLight.cs
- Menu.cs
- SiteMapDataSourceView.cs
- shaperfactoryquerycacheentry.cs
- NamedPermissionSet.cs
- BaseAsyncResult.cs
- ExpressionBuilderContext.cs
- ConfigXmlWhitespace.cs
- StorageMappingFragment.cs
- ApplicationHost.cs
- TextParagraphCache.cs
- SoapFormatterSinks.cs
- UriTemplatePathPartiallyEquivalentSet.cs
- ItemCheckedEvent.cs
- SiteMapSection.cs
- DataSourceNameHandler.cs
- StylusCaptureWithinProperty.cs
- ApplicationTrust.cs
- CodeConstructor.cs
- XhtmlMobileTextWriter.cs
- Options.cs
- Main.cs
- UnicastIPAddressInformationCollection.cs
- CodeDomDecompiler.cs
- ScriptRegistrationManager.cs
- UniformGrid.cs
- TreeViewBindingsEditor.cs
- CellParaClient.cs
- ComponentManagerBroker.cs
- ParameterElementCollection.cs
- DebugView.cs
- ErrorProvider.cs
- CodeActivityMetadata.cs
- AlignmentXValidation.cs
- XmlWhitespace.cs
- ExpressionParser.cs
- SqlCommandSet.cs
- DBDataPermissionAttribute.cs
- PrimitiveType.cs
- Page.cs
- AdornedElementPlaceholder.cs
- CacheChildrenQuery.cs
- CalendarButton.cs
- SplitterPanel.cs
- UiaCoreApi.cs
- ScopelessEnumAttribute.cs