OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimConnectableObject.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 // Description:
9 //
10 // Contains class declaration for ossimConnectableObject the base class for
11 // all connectable objects.
12 //
13 //*************************************************************************
14 // $Id$
15 
16 #ifndef ossimConnectableObject_HEADER
17 #define ossimConnectableObject_HEADER 1
18 
20 #include <ossim/base/ossimObject.h>
21 #include <ossim/base/ossimId.h>
24 #include <ossim/base/ossimRefPtr.h>
25 #include <vector>
26 
27 class ossimVisitor;
29 
31  public ossimListenerManager,
33 {
34 public:
35  typedef std::vector<ossimRefPtr<ossimConnectableObject> > ConnectableObjectList;
37  {
38  CONNECTABLE_DIRECTION_NONE = 0,
39  CONNECTABLE_DIRECTION_INPUT = 1,
40  CONNECTABLE_DIRECTION_OUTPUT = 2
41  };
47  ossim_int32 inputListSize,
48  ossim_int32 outputListSize,
49  bool inputListIsFixedFlag=true,
50  bool outputListIsFixedFlag=true);
51 
52  virtual ~ossimConnectableObject();
57  void setId(const ossimId& id);
58 
62  const ossimId& getId()const;
63 
67  const ossimObject* getOwner() const;
68 
72  virtual void changeOwner(ossimObject* owner);
73 
74  virtual void setDescription(const ossimString& description);
75  virtual ossimString getDescription()const;
76 
85  virtual bool isConnected(
86  ossimConnectableObjectDirectionType direction = CONNECTABLE_DIRECTION_INPUT)const;
87 
88 
102  OSSIM_DEPRECATE_METHOD(virtual ossimConnectableObject* findConnectableObject(
103  const ossimId& id));
104 
118  OSSIM_DEPRECATE_METHOD(virtual ossimConnectableObject* findObjectOfType(
119  RTTItypeid typeId,
120  ossimConnectableObjectDirectionType directionType,
121  bool recurse = true));
122 
136  OSSIM_DEPRECATE_METHOD(virtual ossimConnectableObject* findObjectOfType(
137  const ossimString& obj,
138  ossimConnectableObjectDirectionType directionType,
139  bool recurse = true));
140 
154  OSSIM_DEPRECATE_METHOD(virtual ossimConnectableObject* findInputObjectOfType(
155  const ossimString& className));
156 
161  virtual ossim_int32 findInputIndex(const ossimConnectableObject* object);
162 
167  virtual ossim_int32 findInputIndex(const ossimId& id);
168 
173  virtual ossim_int32 findOutputIndex(const ossimConnectableObject* object);
174 
179  virtual ossim_int32 findOutputIndex(const ossimId& id);
180 
189  virtual ossim_int32 getMyInputIndexToConnectTo(
190  ossimConnectableObject* object)const;
191 
192 
201  virtual ossim_int32 getMyOutputIndexToConnectTo(
202  ossimConnectableObject* object)const;
203 
207  virtual bool canConnectMyInputTo(
208  ossim_int32 myInputIndex, const ossimConnectableObject* object)const=0;
209 
213  virtual bool canConnectMyOutputTo(ossim_int32 myOutputIndex,
214  const ossimConnectableObject* object)const;
215 
219  virtual void disconnect(ossimConnectableObject* object=0);
220 
224  virtual void disconnect(const ossimId& id);
225 
230  virtual ossimRefPtr<ossimConnectableObject> disconnectMyInput(
231  ossim_int32 inputIndex,
232  bool disconnectOutputFlag=true,
233  bool createEventFlag = true);
234 
239  virtual void disconnectMyInput(ossimConnectableObject* input,
240  bool disconnectOutputFlag=true,
241  bool createEventFlag = true);
245  virtual void disconnectMyInputs(
246  ConnectableObjectList& inputList,
247  bool disconnectOutputFlag=true,
248  bool createEventFlag=true);
249 
257  virtual ossimRefPtr<ossimConnectableObject> disconnectMyOutput(
258  ossim_int32 outputIndex,
259  bool disconnectInputFlag=true,
260  bool createEventFlag = true);
261 
266  virtual void disconnectMyOutput(ossimConnectableObject* output,
267  bool disconnectInputFlag=true,
268  bool createEventFlag=true);
269 
270  virtual void disconnectMyOutputs(
271  ConnectableObjectList& outputList,
272  bool disconnectOutputFlag=true,
273  bool createEventFlag=true);
274 
278  virtual void disconnectAllInputs();
279 
283  virtual void disconnectAllOutputs();
284 
290  virtual ossim_int32 connectMyInputTo(ossimConnectableObject* inputObject,
291  bool makeOutputConnection=true,
292  bool createEventFlag=true);
293 
297  virtual ossim_int32 connectMyInputTo(ossim_int32 inputIndex,
298  ossimConnectableObject* inputObject,
299  bool makeOutputConnection=true,
300  bool createEventFlag=true);
301 
302  virtual bool connectMyInputTo(
303  ConnectableObjectList& inputList,
304  bool makeOutputConnection=true,
305  bool createEventFlag = true);
306 
315  virtual ossim_int32 connectMyOutputTo(ossimConnectableObject* outputObject,
316  bool makeInputConnection=true,
317  bool createEventFlag=true);
318 
319  virtual bool connectMyOutputTo(
320  ConnectableObjectList& outputList,
321  bool makeInputConnection=true,
322  bool createEventFlag=true);
323 
329  virtual bool connectInputList(
330  ConnectableObjectList& inputList);
331 
337  virtual bool connectOutputList(
338  ConnectableObjectList& outputList);
339 
343  virtual ossim_uint32 getNumberOfInputs()const;
344 
348  virtual ossim_uint32 getNumberOfOutputs()const;
349 
355  ossimConnectableObject* getInput(ossim_uint32 index=0);
356 
362  const ossimConnectableObject* getInput(ossim_uint32 index=0)const;
363 
369  ossimConnectableObject* getOutput(ossim_uint32 index=0);
370 
376  const ossimConnectableObject* getOutput(ossim_uint32 index=0)const;
377 
384  virtual void setNumberOfInputs(ossim_int32 numberOfInputs);
385 
386  virtual bool getInputListIsFixedFlag()const;
387 
388  virtual bool getOutputListIsFixedFlag()const;
389 
396  virtual void setNumberOfOutputs(ossim_int32 numberOfInputs);
397 
398  const ConnectableObjectList& getInputList()const;
399 
400  const ConnectableObjectList& getOutputList()const;
401 
402  ConnectableObjectList& getInputList();
403 
404  ConnectableObjectList& getOutputList();
405 
419  OSSIM_DEPRECATE_METHOD(virtual void findAllObjectsOfType(
420  ConnectableObjectList& result,
421  const RTTItypeid& typeInfo, bool recurse=true) );
422 
436  OSSIM_DEPRECATE_METHOD(virtual void findAllObjectsOfType(
437  ConnectableObjectList& result,
438  const ossimString& className,
439  bool recurse=true));
440 
441 #if 0 /* Deprecated code. Left here until thoroughly debugged. (drb) */
442 
455  OSSIM_DEPRECATE_METHOD(virtual void findAllInputsOfType(
456  ConnectableObjectList& result,
457  const RTTItypeid& typeInfo,
458  bool propagateToInputs=true,
459  bool recurseChildren=false));
460 
475  OSSIM_DEPRECATE_METHOD(virtual void findAllInputsOfType(
476  ConnectableObjectList& result,
477  const ossimString& className,
478  bool propagateToInputs=true,
479  bool recurseChildren=false));
480 #endif /* deprecated code. (drb) */
481 
482  virtual void propagateEventToOutputs(ossimEvent& event);
483  virtual void propagateEventToInputs(ossimEvent& event);
484 
485  /* ------------------- PROPERTY INTERFACE -------------------- */
486  virtual void setProperty(ossimRefPtr<ossimProperty> property);
487  virtual void setProperty(const ossimString& name, const ossimString& value);
488  virtual ossimRefPtr<ossimProperty> getProperty(const ossimString& name)const;
489  virtual void getPropertyNames(std::vector<ossimString>& propertyNames)const;
490  /* ------------------ PROPERTY INTERFACE END ------------------- */
491 
492 
493  virtual bool loadState(const ossimKeywordlist& kwl,
494  const char* prefix = 0);
495 
496  virtual bool saveState(ossimKeywordlist& kwl,
497  const char* prefix = 0)const;
498 
520  virtual ossim_uint32 saveStateOfAllInputs(ossimKeywordlist& kwl,
521  bool saveThisStateFlag=true,
522  ossim_uint32 objectIndex=1,
523  const char* prefix=0) const;
524 
530  virtual bool fillContainer(ossimConnectableContainer& container);
531 
537  bool moveInputUp(const ossimId& id);
538 
544  bool moveInputDown(const ossimId& id);
545 
551  bool moveInputToTop(const ossimId& id);
552 
559  bool moveInputToBottom(const ossimId& id);
560 
564  virtual void accept(ossimVisitor& visitor);
565 
566 protected:
567 
568  ossimConnectableObject* findObjectOfType(
569  ConnectableObjectList* connectableList,
570  ossimVisitor& visitor );
571 
575 
580 
585 
590 
595 
596 private:
597 TYPE_DATA
598 };
599 
600 #endif /* #ifndef ossimConnectableObject_HEADER */
#define OSSIMDLLEXPORT
Represents serializable keyword/value map.
virtual void accept(ossimVisitor &visitor)
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Definition: ossimObject.cpp:95
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
#define OSSIM_DEPRECATE_METHOD(func)
WARNINGS SECTION:
std::vector< ossimRefPtr< ossimConnectableObject > > ConnectableObjectList
#define TYPE_DATA
Definition: ossimRtti.h:339
unsigned int ossim_uint32
ConnectableObjectList theInputObjectList
Holds a list of input objects.
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
virtual void setProperty(const ossimString &name, const ossimString &value)
bool theInputListIsFixedFlag
Indicates whether the theInputObjectList is fixed.
ConnectableObjectList theOutputObjectList
Holds a list of output objects.
bool theOutputListIsFixedFlag
Indicates whether the theOutputObjectList is fixed.
int ossim_int32
const char * getDescription()