Class Overview

Nano is composed of around a hundred classes, organized into a dozen or so categories of related objects.

The documentation for each class is in the header for that class. Additional notes, usually relating to specific implementation choices, are contained at the top of each source file.

Core
Nano.h Global Nano include
NanoMacros.h Global Nano macros
NanoTypes.h Global Nano types
NanoNotes.h Release notes
NanoTarget.h OS and architecture detection
NDebug Assertion macros and logging
Application
NCommandLine Command-line support
NPreferences Preferences support
NUndoManager Manages undo stacks
Database
NDBHandle Database handle (SQLite)
NDBHandlePool Database connection pool
NDBQuery Database query
NDBResult Database result
Events
NBroadcaster Message broadcaster
NListener Message listener
NTimer High-resolution timer
Files
NFile File reference
NFileIterator Directory iterator
NFileMap Memory-mapped file
NBundle Portable ".bundle" implementation
NPropertyList Portable ".plist" implementation
Graphics
NColor Color object
NTransform Transform object
NPoint Point geometry
NSize Size geometry
NRectangle Rectangle geometry
NShape Polygon geometry
NVector Vector geometry
System
NByteSwap Byte-swapping
NCache Key-value cache
NCacheKey Cache key
NCacheValue Cache value
NDataCipher Data encryption (Blowfish and DES3)
NDataCompressor Data compression (ZLib)
NDataDigest Data digest (MD5 and SHA1)
NDataEncoder Data encoding (Hex and B64)
NLocale User locale
NTask Command line tool
NUnicodeParser Unicode parser
NUTIRegistry UTI registry
NXMLEncoder XML encoder
NXMLNode XML node
NXMLParser XML parser (expat)
Threads
NAtomicInt Atomic integer
NAtomicList Atomic list
NLock Mutex, Read/Write, and Spin locks
NSemaphore Semaphore object
NThread Thread object
NThreadPool Thread pool
NThreadTask Thread pool task
Types
NArray Array type
NBitVector Bit vector type
NData Data type
NDate Date type
NDictionary Dictionary type
NNumber Number type
NRange Range type
NString String type
NVariant Variant type
NAttributes Base class for objects with attributes
NComparable Base class for comparable objects
NContainer Base class for container objects
NEncodable Base class for encodable objects
NHashable Base class for hashable objects
NRefCounted Base class for reference-counted objects
NSharedValue Base class for copy-on-write objects
NSingleton Base class for singleton objects
NUncopyable Base class for uncopyable objects
NEncoder Object encoder
NStringEncoder String encoder
NDateFormatter Date formatter
NStringFormatter String formatter
NFunctor Functor support
NPropertyStore Key-value property store
NUTI Uniform Type Identifier
Utilities
NFileUtilities File utilities
NGeometryUtilities Geometry utilities
NMathUtilities Math utilities
NSTLUtilities STL utilities
NSystemUtilities System utilities
NTextUtilities Text utilities
NThreadUtilities Thread utilities
NTimeUtilities Time utilities

Nanites

Although not part of the core library, Nano also contains a set of "Nanite" classes to improve integration with other frameworks.

Nanites always provide a "Nxxx.h" header, which defines a set of ToXX and ToNN functions for converting data to and from Nano types.

Nanites/Cocoa
NCocoa.h Cocoa integration
NNSAutoReleasePool Stack-based auto-release pool
NNSSingleton Obj-C Singleton pattern
Nanites/CoreFoundation
NCoreFoundation.h CoreFoundation integration
NCFObject RAII for CFTypeRefs
NCFArray NArray that accepts CFArrays
NCFData NData that accepts CFDatas
NCFDate NDate that accepts CFDates
NCFDictionary NDictionary that accepts CFDictionaries
NCFNumber NNumber that accepts CFNumbers
NCFString NString that accepts CFStrings
Nanites/CoreGraphics
NCoreGraphics.h CoreGraphics integration
Nanites/Qt
NQt.h Qt integration
Nanites/Skia
NSkia.h Skia integration
Nanites/UIKit
NUIKit.h UIKit integration
Nanites/Windows
NWindows.h Win32 integration
NRegistry.h Registry object