VR-Forces 4.0.4 Class Documentation
include/vrfobjcore/orgViewManagedObjList.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2005 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: orgViewManagedObjList.h,v $ $Revision: 1.3 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00014 
00015 #ifndef DtOrgViewManagedObjectList_H_
00016 #define DtOrgViewManagedObjectList_H_
00017 
00018 #include <vlutil/vlTime.h>
00019 #include <vlpi/entityIdentifier.h>
00020 #include <list>
00021 #include <vlutil/vlSmartPointers.h>
00022 
00023 class DtVrfObject;
00024 class DtOrganizationView;
00025 class DtOrganizationManagerNode;
00026 class DtVrfObjectManager;
00027 class DtVrfObjectPredicate;
00028 class DtVrfObjectPredicateEvaluator;
00029 class DtOrgViewManagedObjectList;
00030 
00033 typedef DtBoost::shared_ptr<DtOrgViewManagedObjectList> DtOrgViewManagedObjectListPtr;
00036 typedef DtBoost::shared_ptr<const DtOrgViewManagedObjectList> DtOrgViewManagedObjectListConstPtr;
00037 
00043 #include "vrfobjcore/vrfobjcoreDefines.h"
00044 class DT_DLL_vrfobjcore DtOrgViewManagedObjectList
00045 {
00046 private:
00049    DtOrgViewManagedObjectList();
00050    DtOrgViewManagedObjectList(DtOrgViewManagedObjectList& orig);
00051    DtOrgViewManagedObjectList& operator=(DtOrgViewManagedObjectList& orig);
00053 
00054 protected:
00058    DtOrgViewManagedObjectList(DtOrganizationView& organizationView,
00059       const DtEntityIdentifier& aggregateId,
00060       const DtVrfObjectPredicate& predicate,
00061       bool reevaluatePeriodically = false, DtTime evaluationPeriod = 0.0);
00062 
00064    virtual void init();
00065 
00066 public:
00069    static DtOrgViewManagedObjectListPtr create(
00070       DtOrganizationView& organizationView,
00071       const DtEntityIdentifier& aggregateId,
00072       const DtVrfObjectPredicate& predicate,
00073       bool reevaluatePeriodically = false, DtTime evaluationPeriod = 0.0);
00074 
00076    virtual ~DtOrgViewManagedObjectList();
00077 
00080    virtual const DtEntityIdentifier& aggregateId() const;
00081 
00083    virtual const DtVrfObjectPredicate& predicate() const;
00084 
00086    virtual bool reevaluatePeriodically() const;
00087 
00089    virtual DtTime evaluationPeriod() const;
00090 
00091    typedef std::list<DtVrfObject*>::iterator iterator;
00092    typedef std::list<DtVrfObject*>::const_iterator const_iterator;
00093 
00097    virtual iterator begin();
00098    virtual const_iterator begin() const;
00099    virtual iterator end();
00100    virtual const_iterator end() const;
00101    virtual size_t size() const;
00103 
00104 protected:
00107    virtual void add(DtVrfObject* obj);
00108    virtual void remove(DtVrfObject* obj);
00110 
00113    static void childAddedCallback(DtEntityIdentifier eid, void* userData);
00114 
00117    static void childRemovedCallback(DtEntityIdentifier eid, void* userData);
00118 
00119    virtual void processChildAdded(DtEntityIdentifier eid);
00120    virtual void processChildRemoved(DtEntityIdentifier eid);
00121 
00123    static void predicateCallback(DtVrfObject* vrfObject, 
00124       DtVrfObjectPredicateEvaluator* predicateEval, void* userData);
00125    virtual void processPredicateCallback(DtVrfObject* vrfObject, 
00126       DtVrfObjectPredicateEvaluator* predicateEval);
00127 
00130    static void nodeAddedCallback(DtEntityIdentifier eid, void* userData);
00131 
00134    static void nodeRemovedCallback(DtEntityIdentifier eid, void* userData);
00135 
00136    virtual void processNodeAdded(DtEntityIdentifier eid);
00137    virtual void processNodeRemoved(DtEntityIdentifier eid);
00138 
00139    static void objectRemovedCallback(DtVrfObject * vrfObject, void * usr);
00140    virtual void processObjectRemoved(DtVrfObject * vrfObject);
00141 
00142    virtual void registerAggregateNodeCallbacks();
00143    virtual void registerOrgViewCallbacks();
00144    virtual void registerObjectManagerCallbacks();
00147    void unregisterAggregateNodeCallbacks();
00148    void unregisterOrgViewCallbacks();
00149    void unregisterPredicateCallbacksForAllChildren();
00150    void unregisterPredicateCallbacks(DtVrfObject& object); 
00151    void unregisterObjectManagerCallbacks();
00153   
00154    virtual void populateList();
00155 
00156 protected:
00157    DtOrganizationView& myOrganizationView;
00158    DtEntityIdentifier myAggregateId;
00159    DtOrganizationManagerNode* myAggregateNode;
00160    DtVrfObjectManager* myObjectManager;   
00161    DtVrfObjectPredicate* myPredicate;
00162    DtVrfObjectPredicate* myNegatedPredicate;
00163    bool myReevaluatePeriodicallyFlag;
00164    DtTime myEvaluationPeriod;
00165    std::list<DtVrfObject*> myManagedObjectList;
00166 };
00167 
00168 
00169 
00170 #endif
00171 

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)