Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- GlyphElement.cs
- PageCache.cs
- GZipDecoder.cs
- TreeNodeBindingCollection.cs
- MediaCommands.cs
- MediaElementAutomationPeer.cs
- SAPICategories.cs
- BamlResourceDeserializer.cs
- AsyncResult.cs
- OptionalColumn.cs
- SharedPerformanceCounter.cs
- _DisconnectOverlappedAsyncResult.cs
- GridItemProviderWrapper.cs
- RewritingPass.cs
- DescriptionCreator.cs
- FixedSOMElement.cs
- Hyperlink.cs
- GridItemProviderWrapper.cs
- UrlPath.cs
- AsyncDataRequest.cs
- SharedHttpTransportManager.cs
- PersistenceException.cs
- PropertyDescriptorCollection.cs
- CodeVariableReferenceExpression.cs
- DataRelationCollection.cs
- MaskPropertyEditor.cs
- HMACSHA512.cs
- XmlSchemaCollection.cs
- DataTablePropertyDescriptor.cs
- WS2007HttpBindingElement.cs
- AppSettingsReader.cs
- WebFaultException.cs
- ASCIIEncoding.cs
- TextFormatterContext.cs
- IgnoreSectionHandler.cs
- DBBindings.cs
- TokenBasedSet.cs
- ConfigurationConverterBase.cs
- Int64KeyFrameCollection.cs
- FloaterBaseParaClient.cs
- OracleDateTime.cs
- TokenCreationException.cs
- ListGeneralPage.cs
- TextWriter.cs
- ClassicBorderDecorator.cs
- MailMessage.cs
- StringDictionary.cs
- ToggleButtonAutomationPeer.cs
- MessageQueueInstaller.cs
- FigureParagraph.cs
- LongAverageAggregationOperator.cs
- MobileResource.cs
- Freezable.cs
- SamlSerializer.cs
- DataGridColumn.cs
- EFColumnProvider.cs
- Terminate.cs
- Scene3D.cs
- ValidatorCollection.cs
- DataSourceHelper.cs
- XmlIncludeAttribute.cs
- HttpChannelBindingToken.cs
- SQLMoney.cs
- TraceHandler.cs
- Parameter.cs
- EdmFunction.cs
- TextTreeFixupNode.cs
- ProcessProtocolHandler.cs
- UnauthorizedWebPart.cs
- TimeSpan.cs
- XPathMultyIterator.cs
- SchemaCompiler.cs
- BreakRecordTable.cs
- BCryptNative.cs
- BooleanStorage.cs
- TrustExchangeException.cs
- FrameworkObject.cs
- ObservableCollection.cs
- AssemblySettingAttributes.cs
- NameScope.cs
- MexNamedPipeBindingElement.cs
- ExpressionSelection.cs
- ToolBarPanel.cs
- SystemIPInterfaceStatistics.cs
- MemberHolder.cs
- X509Certificate2Collection.cs
- X509CertificateStore.cs
- RemotingException.cs
- DataGridRelationshipRow.cs
- Icon.cs
- InvalidateEvent.cs
- OdbcReferenceCollection.cs
- FileStream.cs
- RoutedEvent.cs
- CriticalHandle.cs
- WebReferencesBuildProvider.cs
- _TLSstream.cs
- DataTemplate.cs
- TreeNodeSelectionProcessor.cs
- AttachmentService.cs