INodeMonitor.h

Go to the documentation of this file.
00001 //**************************************************************************/
00002 // Copyright (c) 1998-2005 Autodesk, Inc.
00003 // All rights reserved.
00004 // 
00005 // These coded instructions, statements, and computer programs contain
00006 // unpublished proprietary information written by Autodesk, Inc., and are
00007 // protected by Federal copyright law. They may not be disclosed to third
00008 // parties or copied or duplicated in any form, in whole or in part, without
00009 // the prior written consent of Autodesk, Inc.
00010 //**************************************************************************/
00011 // DESCRIPTION: Defines an interface that uses the RefTargMonitorRefMaker class to monitor a node for 
00012 // deletion. If the NodeMonitor instance is saved as part of a partial save, or loaded as a partial load, 
00013 // the node pointed to by the NodeMonitor is not forced to be saved or loaded.
00014 // AUTHOR: Larry.Minton - created Jan.11.2006
00015 //***************************************************************************/
00016 
00017 #pragma once
00018 
00019 #include "iFnPub.h"
00020 #include "IRefTargMonitor.h"
00021 
00023 #define NODEMONITOR_CLASS_ID            Class_ID(0x18f81903, 0x19033fd2)
00024 
00026 #define IID_NODEMONITOR             Interface_ID(0x18f81903, 0x19033fd2)
00027 
00030 #define REFMSG_NODEMONITOR_TARGET_DELETED               REFMSG_USER + 0x18f81903
00031 
00033 #define REFMSG_NODEMONITOR_TARGET_SET REFMSG_REFTARGMONITOR_TARGET_SET 
00034 
00036 
00042 class INodeMonitor : public FPMixinInterface  {
00043 public:
00045 
00047     virtual INode* GetNode() = 0;
00049 
00051     virtual void SetNode(INode *theNode) = 0;
00052 
00053     // --- Function publishing
00054     FPInterfaceDesc* GetDesc();    // <-- must implement 
00055     virtual Interface_ID GetID() { return IID_NODEMONITOR; }
00056 
00057     enum {  
00058         kfpGetnode, kfpSetnode,
00059     };
00060 
00061     BEGIN_FUNCTION_MAP
00062         PROP_FNS(kfpGetnode, GetNode, kfpSetnode, SetNode, TYPE_INODE);
00063     END_FUNCTION_MAP
00064 
00065 };
00066