OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimConnectableContainer.h
Go to the documentation of this file.
1 //*******************************************************************
2 // Copyright (C) 2000 ImageLinks Inc.
3 //
4 // License: See top level LICENSE.txt file.
5 //
6 // Author: Garrett Potts
7 //
8 //*************************************************************************
9 // $Id: ossimConnectableContainer.h 20316 2011-12-02 15:56:38Z oscarkramer $
10 
11 #ifndef ossimConnectableContainer_HEADER
12 #define ossimConnectableContainer_HEADER
13 #include <map>
14 
19 
21 
25 {
26 public:
27  typedef std::map<ossim_int64,
29 
31 
32  virtual ossimObject* getObject();
33 
34  virtual const ossimObject* getObject()const;
35 
47 
48 
60  bool recurse=true));
61 
73  bool recurse=true));
74 
86  bool recurse=true));
87 
99  bool recurse=true));
100 
112  bool recurse=true));
113 
118  bool recurse=true));
119 
125  void makeUniqueIds();
126 
131  ossim_uint32 getNumberOfObjects(bool recurse=true)const;
132 
137  virtual bool addChild(ossimConnectableObject* attachableObject);
138 
139 
140  virtual bool removeChild(ossimConnectableObject* object);
141 
142  virtual bool canConnectMyInputTo(ossim_int32 index,
143  const ossimConnectableObject* obj) const;
144 
145  virtual bool canConnectMyOutputTo(ossim_int32 index,
146  const ossimConnectableObject* obj) const;
147 
148  virtual bool loadState(const ossimKeywordlist& kwl,
149  const char* prefix=0);
150 
151  virtual bool saveState(ossimKeywordlist& kwl,
152  const char* prefix=0)const;
153 
154  //____________________PLACE ALL EVENT HANDLING STUFF HERE_____________
155 // virtual void objectDestructingEvent(ossimObjectDestructingEvent& event);
156 // virtual void propertyEvent(ossimPropertyEvent& event);
157 
158 // virtual void disconnectInputEvent(ossimConnectionEvent& event);
159 // virtual void connectInputEvent(ossimConnectionEvent& event);
160 
161 // virtual void disconnectOutputEvent(ossimConnectionEvent& event);
162 // virtual void connectOutputEvent(ossimConnectionEvent& event);
163 
164 
165  virtual void getChildren(std::vector<ossimConnectableObject*>& children,
166  bool immediateChildrenOnlyFlag);
167  void deleteAllChildren();
168 
169  virtual void accept(ossimVisitor& visitor);
170 // void propagateEventToOutputs(ossimEvent& event,
171 // ossimConnectableObject* start);
172 // void propagateEventToInputs(ossimEvent& event,
173 // ossimConnectableObject* start);
174 
182  virtual bool fillContainer(ossimConnectableContainer& container);
183 
184 protected:
185  virtual ~ossimConnectableContainer();
187 
188  void removeAllListeners();
189  bool addAllObjects(std::map<ossimId, std::vector<ossimId> >& idMapping,
190  const ossimKeywordlist& kwl,
191  const char* prefix);
192 
193  bool connectAllObjects(const std::map<ossimId, std::vector<ossimId> >& idMapping);
194 
195  void findInputConnectionIds(std::vector<ossimId>& result,
196  const ossimKeywordlist& kwl,
197  const char* prefix);
198 
208 
210 TYPE_DATA
211 };
212 
213 #endif
ossimConnectableContainerChildListener * theChildListener
#define OSSIMDLLEXPORT
virtual ossimConnectableObject * findFirstObjectOfType(const RTTItypeid &typeInfo, bool recurse=true)=0
virtual ossim_uint32 getNumberOfObjects(bool recurse=true) const =0
Represents serializable keyword/value map.
virtual ossimConnectableObject::ConnectableObjectList findAllObjectsOfType(const RTTItypeid &typeInfo, bool recurse=true)=0
virtual bool addChild(ossimConnectableObject *attachableObject)=0
virtual void getChildren(std::vector< ossimConnectableObject *> &children, bool immediateChildrenOnlyFlag)=0
#define OSSIM_DEPRECATE_METHOD(func)
WARNINGS SECTION:
std::vector< ossimRefPtr< ossimConnectableObject > > ConnectableObjectList
#define TYPE_DATA
Definition: ossimRtti.h:339
unsigned int ossim_uint32
std::map< ossim_int64, ossimRefPtr< ossimConnectableObject > > connectablObjectMapType
virtual ossimConnectableObject * findObject(const ossimId &id, bool recurse=true)=0
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
virtual bool removeChild(ossimConnectableObject *object)=0
virtual ossimConnectableObject * getConnectableObject(ossim_uint32 index)=0
long long ossim_int64
virtual void accept(ossimVisitor &visitor)
We will add a visitor interface for all connectable objects.
virtual bool canConnectMyInputTo(ossim_int32 myInputIndex, const ossimConnectableObject *object) const =0
required to be overriden by derived classes
virtual bool canConnectMyOutputTo(ossim_int32 myOutputIndex, const ossimConnectableObject *object) const
default implementation is to allow anyone to connect to us.
virtual bool fillContainer(ossimConnectableContainer &container)
Inserts this object and all of its children and inputs into the container provided.
connectablObjectMapType theObjectMap
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
int ossim_int32