Sirikata
|
00001 // Copyright (c) 2011 Sirikata Authors. All rights reserved. 00002 // Use of this source code is governed by a BSD-style license that can 00003 // be found in the LICENSE file. 00004 00005 #ifndef _SIRIKATA_LIBSPACE_OBJECT_HOST_CONNECTION_ID_HPP_ 00006 #define _SIRIKATA_LIBSPACE_OBJECT_HOST_CONNECTION_ID_HPP_ 00007 00008 #include <sirikata/space/Platform.hpp> 00009 00010 namespace Sirikata { 00011 00012 class ObjectHostConnection; 00013 class ObjectHostConnectionManager; 00014 00015 // Short version of ObjectHostConnectionID. This requires a map lookup to 00016 // actually send data, but is useful as a non-opaque integral type for use as an 00017 // enpoint identifier in protocols. 00018 typedef uint32 ShortObjectHostConnectionID; 00019 00029 class SIRIKATA_SPACE_EXPORT ObjectHostConnectionID { 00030 public: 00031 ObjectHostConnectionID(); 00032 ObjectHostConnectionID(const ObjectHostConnectionID& rhs); 00033 ObjectHostConnectionID& operator=(const ObjectHostConnectionID& rhs); 00034 00035 bool operator==(const ObjectHostConnectionID& rhs) const; 00036 bool operator!=(const ObjectHostConnectionID& rhs) const; 00037 00038 // Implementation in ObjectHostConnectionManager.cpp 00039 ShortObjectHostConnectionID shortID() const; 00040 private: 00041 friend class ObjectHostConnectionManager; 00042 00043 ObjectHostConnectionID(ObjectHostConnection* _conn); 00044 00045 ObjectHostConnection* conn; 00046 }; 00047 00048 } // namespace Sirikata 00049 00050 #endif //_SIRIKATA_LIBSPACE_OBJECT_HOST_CONNECTION_ID_HPP_