Sirikata
libspace/include/sirikata/space/ObjectHostConnectionID.hpp
Go to the documentation of this file.
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_