Class Overview

Nano is composed of around a hundred classes, organized into a dozen 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
NanoNotes.h Release notes
NanoMacros.h Global Nano macros
NanoTypes.h Global Nano types
NanoTarget.h OS and architecture detection
NDebug Assertion macros and logging
Application
NCommandLine Command-line support
NPreferences Preferences support
NUndoManager Manages undo stacks
NUndoSource Base class for objects with undo
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
Network
NMessageClient Message-based client
NMessageEntity Message-based entity
NMessageServer Message-based server
NNetworkMessage Key-value network message
NNetworkBrowser Bonjour browser
NNetworkService Bonjour advertiser
NNetworkManager Network manager
NSocket Socket object
NSocketRequest Socket request
NURLRequest URL request
NURLResponse URL downloader
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)
NJSONEncoder JSON encoder
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
NProgressable Base class for objects with progress
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
NURL Uniform Resource Locator
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
NCFURL NURL that accepts CFURLs
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