Main Page   Namespace List   Compound List   File List   Namespace Members   Compound Members  

iNXTIterator.h

Go to the documentation of this file.
00001 
00005 /*
00006    © Copyright 2005-2006,
00007    National Instruments Corporation.
00008    All rights reserved.
00009 
00010    File:        iNXTIterator.h
00011    Originated:  17 Oct 2005
00012 */
00013  
00014 #ifndef ___fantom_iNXTIterator_h___
00015 #define ___fantom_iNXTIterator_h___
00016 
00017 
00018 // includes...
00019 
00020 #ifndef ___fantom_platform_h___
00021    #include "platform.h"
00022 #endif
00023 
00024 #ifndef ___fantom_tStatus_h___
00025    #include "tStatus.h"
00026 #endif
00027 
00028 
00029 // defines...
00030 
00031 
00032 namespace nFANTOM100
00033 {
00034    // forward declarations...
00035    class iNXT;
00036 
00037    // typedefs...
00038    
00039    // classes...
00040       
00045    class iNXTIterator
00046    {
00047       friend class iNXT;
00048       
00049       // methods
00050       protected:
00051 
00053          virtual ~iNXTIterator() = 0;
00054 
00055       public:
00056          
00058          /*
00059             \param resourceName Populated with the name of the NXT to which this iterator
00060                currently refers.  The resource name character array must have a capacity of 256
00061                bytes.
00062             \param status Status chaining object.
00063          */
00064          virtual void getName( ViChar resourceName[], tStatus& status ) const = 0;
00065          
00067 
00075          virtual void advance( tStatus& status ) = 0;
00076 
00078          /*
00079             Creates an NXT object for the NXT referenced by this iterator.  An object is not
00080                created if the specified status is fatal or if this iterator refers to the end of
00081                the list.  The returned iNXT object should be destroyed using the iNXT::destroyNXT
00082                method.
00083 
00084             \param status Status chaining object.
00085             \return A pointer to the iNXT object that was created.
00086          */
00087          virtual iNXT* getNXT( tStatus& status ) = 0;
00088    };
00089    
00090    
00091    // constants...
00092    
00093 } // namespace nFANTOM100
00094 
00095 
00096    // declarations for globally-scoped globals...
00097 
00098    // typedefs
00099    typedef ViObject nFANTOM100_iNXTIterator;
00100    
00101    // we must duplicate this typedef for the getNXT C wrapper
00102    typedef ViObject nFANTOM100_iNXT;
00103 
00104    extern "C"
00105    {
00106       nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iNXTIterator_getName(
00107             nFANTOM100_iNXTIterator iteratorPtr,
00108             ViChar resourceName[],
00109             ViStatus* status );
00110       
00111       nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iNXTIterator_advance(
00112             nFANTOM100_iNXTIterator iteratorPtr,
00113             ViStatus* status );
00114 
00115       nFANTOM100_kExport nFANTOM100_iNXT _VI_FUNCC nFANTOM100_iNXTIterator_getNXT(
00116             nFANTOM100_iNXTIterator iteratorPtr,
00117             ViStatus* status );
00118    }
00119 
00120 #endif // ___fantom_iNXTIterator_h___

© Copyright 2005-2006, National Instruments Corporation. All rights reserved.