VR-Forces 4.0.4 Class Documentation
include/vrfobjcore/aggregateNode.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2006 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: aggregateNode.h,v $ $Revision: 1.5 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00014 
00015 #ifndef DtAggregateNode_H_
00016 #define DtAggregateNode_H_
00017 
00018 #include "vrfobjcore/vrfobjcoreDefines.h"
00019 #include <vlpi/entityIdentifier.h>
00020 #include <vlutil/vlSmartPointers.h>
00021 #include <list>
00022 #include "vrfobjcore/orgViewManagedObjList.h"
00023 
00024 class DtAggregateNode;
00025 class DtAggregateData;
00026 class DtOrganizationManager;
00027 
00028 typedef DtBoost::shared_ptr<DtAggregateNode> DtAggregateNodePtr;
00029 typedef DtBoost::shared_ptr<const DtAggregateNode> DtAggregateNodeConstPtr;
00030 typedef std::list<DtAggregateNodePtr> DtAggregateNodeList;
00031 typedef DtBoost::shared_ptr<DtAggregateData> DtAggregateDataPtr;
00032 typedef DtBoost::shared_ptr<const DtAggregateData> DtAggregateDataConstPtr;
00033 
00037 class DT_DLL_vrfobjcore DtAggregateNode
00038 {
00039 public:
00040 
00042    typedef DtAggregateData* (*DtAggregateDataCreator)();
00043 
00044 public:
00045 
00047    DtAggregateNode(const DtEntityIdentifier& objectId,
00048       DtOrganizationManager& organizationManager);
00049 
00051    virtual ~DtAggregateNode();
00052 
00054    virtual void addChild(DtAggregateNodePtr child);
00055 
00057    const DtAggregateNodeList& childList() const;
00058 
00060    virtual const DtEntityIdentifier& objectId() const;
00061 
00064    virtual DtAggregateDataPtr data();
00065    virtual DtAggregateDataConstPtr data() const;
00067 
00069    virtual void print() const;
00070 
00071 public:
00072 
00077    static void setAggregateDataCreator(DtAggregateDataCreator creator);
00078    static DtAggregateDataCreator aggregateDataCreator(void);
00080 
00083    virtual DtOrgViewManagedObjectListConstPtr taskableSubordinates() const;
00084    virtual DtOrgViewManagedObjectListConstPtr ableToMoveSubordinates() const;
00085    virtual DtOrgViewManagedObjectListConstPtr allSubordinates() const;
00087 
00088 private:
00089 
00091    DtAggregateNode(const DtAggregateNode& orig);
00092 
00094    DtAggregateNode& operator=(const DtAggregateNode& orig);
00095 
00096 protected:
00097 
00099    DtEntityIdentifier myObjectId;
00100 
00102    DtAggregateDataPtr myData;
00103    
00106    DtAggregateNodeList myChildNodes;
00107 
00108 protected:
00109 
00112    static DtAggregateDataCreator theAggregateDataCreator;
00113 
00114    DtOrganizationManager& myOrganizationManager;
00115    DtOrgViewManagedObjectListConstPtr myTaskableSubordinates;
00116    DtOrgViewManagedObjectListConstPtr myAbleToMoveSubordinates;
00117    DtOrgViewManagedObjectListConstPtr myAllSubordinates;
00118 };
00119 
00120 #endif

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)