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
- WindowsFormsHostPropertyMap.cs
- CornerRadius.cs
- EditingScopeUndoUnit.cs
- CollectionsUtil.cs
- SimplePropertyEntry.cs
- BindingMemberInfo.cs
- Pair.cs
- MailMessage.cs
- IndexedString.cs
- WebDisplayNameAttribute.cs
- ObjectAnimationUsingKeyFrames.cs
- Model3DCollection.cs
- Metafile.cs
- DataException.cs
- StorageMappingItemCollection.cs
- XhtmlBasicCalendarAdapter.cs
- EventLogPermissionEntry.cs
- GlyphShapingProperties.cs
- UserInitiatedNavigationPermission.cs
- ManagementPath.cs
- InputProcessorProfiles.cs
- SchemaNamespaceManager.cs
- RangeContentEnumerator.cs
- MainMenu.cs
- ASCIIEncoding.cs
- InternalPermissions.cs
- ThreadExceptionDialog.cs
- Utils.cs
- MailWriter.cs
- ClientSponsor.cs
- PanelDesigner.cs
- documentsequencetextpointer.cs
- StyleModeStack.cs
- SiteMembershipCondition.cs
- GuidTagList.cs
- UrlMapping.cs
- WindowsAuthenticationEventArgs.cs
- SafeNativeMethods.cs
- ArrayList.cs
- relpropertyhelper.cs
- QueryServiceConfigHandle.cs
- TriggerBase.cs
- Point3DAnimationBase.cs
- HttpConfigurationSystem.cs
- PointHitTestParameters.cs
- DesignTimeXamlWriter.cs
- DataGridTextBoxColumn.cs
- SqlDelegatedTransaction.cs
- ElementUtil.cs
- RuleSettings.cs
- DesignerDataStoredProcedure.cs
- ObservableCollection.cs
- Parser.cs
- TrustManagerPromptUI.cs
- ProfileEventArgs.cs
- InputLanguage.cs
- EmptyCollection.cs
- PointHitTestResult.cs
- SiteMapProvider.cs
- MdImport.cs
- Style.cs
- PathGeometry.cs
- cookiecollection.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- XmlNodeChangedEventManager.cs
- ResourceAssociationSet.cs
- UserUseLicenseDictionaryLoader.cs
- ExtractorMetadata.cs
- DescendentsWalkerBase.cs
- ProgressiveCrcCalculatingStream.cs
- Operators.cs
- RemoteDebugger.cs
- IsolatedStorage.cs
- SchemaNotation.cs
- relpropertyhelper.cs
- FunctionImportMapping.cs
- Int64KeyFrameCollection.cs
- ContainerUIElement3D.cs
- ImageCodecInfoPrivate.cs
- brushes.cs
- HtmlContainerControl.cs
- Guid.cs
- TableRow.cs
- TreeNodeMouseHoverEvent.cs
- TrimSurroundingWhitespaceAttribute.cs
- AuthenticationServiceManager.cs
- ObjectManager.cs
- FileDialogPermission.cs
- DefaultAsyncDataDispatcher.cs
- WebPartTransformer.cs
- FlowDocumentReader.cs
- ProxyElement.cs
- JpegBitmapDecoder.cs
- DisplayMemberTemplateSelector.cs
- InsufficientExecutionStackException.cs
- Inline.cs
- SqlConnectionString.cs
- DisposableCollectionWrapper.cs
- DbConnectionPoolIdentity.cs
- SmtpMail.cs