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: ossimConnectionEvent.cpp 15833 2009-10-29 01:41:53Z eshirschorn $
10
11 #include <ossim/base/ossimConnectionEvent.h>
12
13 RTTI_DEF1(ossimConnectionEvent, "ossimConnectionEvent", ossimEvent);
14
ossimConnectionEvent(ossimObject * object,long id)15 ossimConnectionEvent::ossimConnectionEvent(ossimObject* object, long id)
16 :ossimEvent(object, id),
17 theDirectionType(OSSIM_DIRECTION_UNKNOWN)
18 {
19 }
20
ossimConnectionEvent(ossimObject * object,long id,const ossimConnectableObject::ConnectableObjectList & newList,const ossimConnectableObject::ConnectableObjectList & oldList,ossimConnectionDirectionType whichDirection)21 ossimConnectionEvent::ossimConnectionEvent(
22 ossimObject* object,
23 long id,
24 const ossimConnectableObject::ConnectableObjectList& newList,
25 const ossimConnectableObject::ConnectableObjectList& oldList,
26 ossimConnectionDirectionType whichDirection)
27 : ossimEvent(object, id),
28 theNewObjectList(newList),
29 theOldObjectList(oldList),
30 theDirectionType(whichDirection)
31 {
32 }
33
ossimConnectionEvent(ossimObject * object,long id,ossimConnectableObject * newConnectableObject,ossimConnectableObject * oldConnectableObject,ossimConnectionDirectionType whichDirection)34 ossimConnectionEvent::ossimConnectionEvent(
35 ossimObject* object,
36 long id,
37 ossimConnectableObject* newConnectableObject,
38 ossimConnectableObject* oldConnectableObject,
39 ossimConnectionDirectionType whichDirection)
40 : ossimEvent(object, id),
41 theDirectionType(whichDirection)
42 {
43 if(newConnectableObject)
44 {
45 theNewObjectList.push_back(newConnectableObject);
46 }
47 if(oldConnectableObject)
48 {
49 theOldObjectList.push_back(oldConnectableObject);
50 }
51 }
52
ossimConnectionEvent(const ossimConnectionEvent & rhs)53 ossimConnectionEvent::ossimConnectionEvent(const ossimConnectionEvent& rhs)
54 : ossimEvent(rhs),
55 theNewObjectList(rhs.theNewObjectList),
56 theOldObjectList(rhs.theOldObjectList),
57 theDirectionType(rhs.theDirectionType)
58 {
59 }
60
dup() const61 ossimObject* ossimConnectionEvent::dup()const
62 {
63 return new ossimConnectionEvent(*this);
64 }
65
setDirection(ossimConnectionDirectionType direction)66 void ossimConnectionEvent::setDirection(
67 ossimConnectionDirectionType direction)
68 {
69 theDirectionType = direction;
70 }
71
getDirection() const72 ossimConnectionEvent::ossimConnectionDirectionType ossimConnectionEvent::getDirection()const
73 {
74 return theDirectionType;
75 }
76
getNumberOfNewObjects() const77 ossim_uint32 ossimConnectionEvent::getNumberOfNewObjects()const
78 {
79 return (ossim_uint32)theNewObjectList.size();
80 }
81
getNumberOfOldObjects() const82 ossim_uint32 ossimConnectionEvent::getNumberOfOldObjects()const
83 {
84 return (ossim_uint32)theOldObjectList.size();
85 }
86
getOldObject(ossim_uint32 i)87 ossimConnectableObject* ossimConnectionEvent::getOldObject(ossim_uint32 i)
88 {
89 if(i < getNumberOfOldObjects())
90 {
91 return theOldObjectList[i].get();
92 }
93
94 return (ossimConnectableObject*)NULL;
95 }
96
getNewObject(ossim_uint32 i)97 ossimConnectableObject* ossimConnectionEvent::getNewObject(ossim_uint32 i)
98 {
99 if(i < getNumberOfNewObjects())
100 {
101 return theNewObjectList[i].get();
102 }
103
104 return (ossimConnectableObject*)NULL;
105 }
106
isDisconnect() const107 bool ossimConnectionEvent::isDisconnect()const
108 {
109 return (getId()==OSSIM_EVENT_CONNECTION_DISCONNECT_ID);
110 }
111
isConnect() const112 bool ossimConnectionEvent::isConnect()const
113 {
114 return (getId()==OSSIM_EVENT_CONNECTION_CONNECT_ID);
115 }
116
isInputDirection() const117 bool ossimConnectionEvent::isInputDirection()const
118 {
119 return ((long)theDirectionType & (long)OSSIM_INPUT_DIRECTION);
120 }
121
isOutputDirection() const122 bool ossimConnectionEvent::isOutputDirection()const
123 {
124 return ((long)theDirectionType & OSSIM_OUTPUT_DIRECTION);
125 }
126