//-------------------------------------------------------------------------------------------------------+ // Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd. // = FileName : TArchDbReactor 类 // = Version : ver2.0 // = Author : wlw // = CreateDate : 2002-09-09 // = Description: TArchDbReactor 声明 // = Maintainers: // //-------------------------------------------------------------------------------------------------------+ #ifndef _TARCHDBREACTOR_H_ #define _TARCHDBREACTOR_H_ class TArchPerDocData; class TDbWall; class TDbColumn; class TAssocMsgContainer; class TARCH_EXP TArchDbReactor : public AcDbDatabaseReactor { public: TArchDbReactor(TArchPerDocData*pDD); ~TArchDbReactor(); static void Attach(); static void Detach(); virtual void objectErased(const AcDbDatabase* dwg,const AcDbObject* dbObj,Adesk::Boolean pErased = Adesk::kTrue); virtual void objectAppended(const AcDbDatabase* dwg,const AcDbObject* dbObj); virtual void objectOpenedForModify(const AcDbDatabase* dwg,const AcDbObject* dbObj); virtual void objectModified(const AcDbDatabase* dwg,const AcDbObject* dbObj); virtual void objectUnAppended (const AcDbDatabase* dwg, const AcDbObject* dbObj); virtual void objectReAppended (const AcDbDatabase* dwg, const AcDbObject* dbObj); virtual void headerSysVarChanged (const AcDbDatabase* dwg, const TCHAR* name,Adesk::Boolean bSuccess); TArchPerDocData* GetDocData()const; BOOL IsDocLocked()const; void AddWallCorners(class TDbWall *pWall); void AddChangedColumn(class TDbColumn *pColumn); void AddModifiedOpening(const AcDbObjectId &id); void AddModifiedWall(const AcDbObjectId &id); void AddModifiedClip(const AcDbObjectId &id); void AddModifiedClipped(const AcDbObjectId&id); void AddModifiedRegion(const AcDbObjectId&id); void ObjectChanged(const AcDbObject *dbObj, int nChgFlag); TAssocMsgContainer* m_pAssocMsgContainer; //消息容器 protected: TArchPerDocData *m_pDocData;//永远不为NULL }; #endif