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