Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

Connection Class Reference

Represents a single TCP or UDP socket for input or output. More...

#include <connection.h>

Inheritance diagram for Connection:

ReferenceCount List of all members.

Public Member Functions

 Connection (ConnectionManager *manager, PRFileDesc *socket)
 Creates a connection.

 ~Connection ()
 Closes a connection.

NetAddress get_address () const
 Returns the address bound to this connection, if it is a TCP connection.

ConnectionManagerget_manager () const
 Returns a pointer to the ConnectionManager object that serves this connection.

PRFileDesc * get_socket () const
 Returns the internal NSPR pointer that defines the connection.

void set_collect_tcp (bool collect_tcp)
 Enables or disables "collect-tcp" mode.

bool get_collect_tcp () const
 Returns the current setting of "collect-tcp" mode.

void set_collect_tcp_interval (double interval)
 Specifies the interval in time, in seconds, for which to hold TCP packets before sending all of the recently received packets at once.

double get_collect_tcp_interval () const
 Returns the interval in time, in seconds, for which to hold TCP packets before sending all of the recently received packets at once.

bool consider_flush ()
 Sends the most recently queued TCP datagram(s) if enough time has elapsed.

bool flush ()
 Sends the most recently queued TCP datagram(s) now.

void set_nonblock (bool flag)
 Sets whether nonblocking I/O should be in effect.

void set_linger (bool flag, double time)
 Sets the time to linger on close if data is present.

void set_reuse_addr (bool flag)
 Sets whether local address reuse is allowed.

void set_keep_alive (bool flag)
 Sets whether the connection is periodically tested to see if it is still alive.

void set_recv_buffer_size (int size)
 Sets the size of the receive buffer, in bytes.

void set_send_buffer_size (int size)
 Sets the size of the send buffer, in bytes.

void set_ip_time_to_live (int ttl)
 Sets IP time-to-live.

void set_ip_type_of_service (int tos)
 Sets IP type-of-service and precedence.

void set_no_delay (bool flag)
 If flag is true, this disables the Nagle algorithm, and prevents delaying of send to coalesce packets.

void set_max_segment (int size)
 Sets the maximum segment size.

int get_ref_count () const
 Returns the current reference count.

int ref () const
 Explicitly increments the reference count.

int unref () const
 Explicitly decrements the reference count.

void test_ref_count_integrity () const
 Does some easy checks to make sure that the reference count isn't completely bogus.


Static Public Member Functions

TypeHandle get_class_type ()
void init_type ()

Private Member Functions

bool send_datagram (const NetDatagram &datagram)
 This method is intended only to be called by ConnectionWriter.

bool send_raw_datagram (const NetDatagram &datagram)
 This method is intended only to be called by ConnectionWriter.

bool do_flush ()
 The private implementation of flush(), this assumes the _write_mutex has already been locked on entry.

bool check_send_error (PRInt32 result, PRErrorCode errcode, PRInt32 bytes_to_send)
 Checks the return value of a PR_Send() or PR_SendTo() call.


Private Attributes

ConnectionManager_manager
PRFileDesc * _socket
PRLock * _write_mutex
bool _collect_tcp
double _collect_tcp_interval
double _queued_data_start
string _queued_data
int _queued_count

Friends

class ConnectionWriter

Detailed Description

Represents a single TCP or UDP socket for input or output.

Definition at line 45 of file connection.h.


Constructor & Destructor Documentation

Connection::Connection ConnectionManager manager,
PRFileDesc *  socket
 

Creates a connection.

Normally this constructor should not be used directly by user code; use one of the methods in ConnectionManager to make a new connection.

Definition at line 48 of file connection.cxx.

Connection::~Connection  ) 
 

Closes a connection.

Definition at line 68 of file connection.cxx.


Member Function Documentation

bool Connection::check_send_error PRInt32  result,
PRErrorCode  errcode,
PRInt32  bytes_to_send
[private]
 

Checks the return value of a PR_Send() or PR_SendTo() call.

Definition at line 635 of file connection.cxx.

bool Connection::consider_flush  ) 
 

Sends the most recently queued TCP datagram(s) if enough time has elapsed.

This only has meaning if set_collect_tcp() has been set to true.

Definition at line 249 of file connection.cxx.

bool Connection::do_flush  )  [private]
 

The private implementation of flush(), this assumes the _write_mutex has already been locked on entry.

It will be unlocked on return.

Definition at line 593 of file connection.cxx.

Referenced by set_collect_tcp().

bool Connection::flush void   ) 
 

Sends the most recently queued TCP datagram(s) now.

This only has meaning if set_collect_tcp() has been set to true.

Definition at line 274 of file connection.cxx.

References _socket.

NetAddress Connection::get_address  )  const
 

Returns the address bound to this connection, if it is a TCP connection.

Definition at line 95 of file connection.cxx.

References _manager.

TypeHandle ReferenceCount::get_class_type void   )  [inline, static, inherited]
 

Reimplemented in AnimBundle, AnimBundleNode, AnimChannel< SwitchType >, AnimChannelBase, AnimChannelFixed< SwitchType >, AnimChannelMatrixXfmTable, AnimChannelScalarTable, AnimControl, AnimGroup, MovingPart< SwitchType >, MovingPartBase, MovingPartMatrix, MovingPartScalar, PartBundle, PartBundleNode, PartGroup, Character, CharacterJoint, CharacterJointBundle, CharacterSlider, ComputedVertices, CollisionEntry, CollisionHandler, CollisionHandlerEvent, CollisionHandlerFloor, CollisionHandlerPhysical, CollisionHandlerPusher, CollisionHandlerQueue, CollisionNode, CollisionPlane, CollisionPolygon, CollisionRay, CollisionSegment, CollisionSolid, CollisionSphere, CRGraphicsStateGuardian, CRSavedFrameBuffer, AnalogNode, ButtonNode, ClientAnalogDevice, ClientBase, ClientButtonDevice, ClientDevice, ClientDialDevice, ClientTrackerDevice, DialNode, MouseAndKeyboard, TrackerNode, VirtualMouse, DataNode, GraphicsChannel, GraphicsLayer, GraphicsPipe, GraphicsStateGuardian, GraphicsWindow, HardwareChannel, SavedFrameBuffer, CylindricalLens, FisheyeLens, ProjectionScreen, PSphereLens, DXGraphicsStateGuardian7, DXSavedFrameBuffer7, wdxGraphicsPipe7, wdxGraphicsWindow7, DXGraphicsStateGuardian8, DXSavedFrameBuffer8, wdxGraphicsPipe8, wdxGraphicsWindow8, EggAnimData, EggBin, EggBinMaker, EggComment, EggCoordinateSystem, EggCurve, EggData, EggExternalReference, EggFilenameNode, EggGroup, EggGroupNode, EggGroupUniquifier, EggMaterial, EggNamedObject, EggNameUniquifier, EggNode, EggNurbsCurve, EggNurbsSurface, EggObject, EggPoint, EggPolygon, EggPoolUniquifier, EggPrimitive, EggSAnimData, EggSurface, EggSwitchCondition, EggSwitchConditionDistance, EggTable, EggTexture, EggVertex, EggVertexPool, EggXfmAnimData, EggXfmSAnim, Event, EventStoreValueBase, EventStoreValue< Type >, RefCountProxy< Base >, RefCountObj< Base >, ThatThingie, ThisThingie, WhatAThingie, Thread, TypedReferenceCount, VirtualFile, VirtualFileComposite, VirtualFileSimple, WindowFramework, GLGraphicsStateGuardian, GLSavedFrameBuffer, glxGraphicsPipe, glxGraphicsStateGuardian, glxGraphicsWindow, dDrawable, Geom, GeomLine, GeomLinestrip, GeomPoint, GeomPolygon, GeomQuad, GeomSphere, GeomSprite, GeomTri, GeomTrifan, GeomTristrip, ImageBuffer, Lens, Material, MatrixLens, OrthographicLens, PerspectiveLens, PixelBuffer, Texture, GraphicsStateGuardianBase, Lerp, AutonomousLerp, LerpBlendType, EaseInBlendType, EaseOutBlendType, EaseInOutBlendType, NoBlendType, LerpFunctor, SimpleLerpFunctor< value >, SimpleQueryLerpFunctor< value >, MultiLerpFunctor, BoundingHexahedron, BoundingLine, BoundingSphere, BoundingVolume, FiniteBoundingVolume, GeometricBoundingVolume, OmniBoundingVolume, ClassicNurbsCurve, CubicCurveseg, HermiteCurve, NurbsPPCurve, ParametricCurve, PiecewiseCurve, RopeNode, AlphaTestAttrib, AmbientLight, BillboardEffect, Camera, ClipPlaneAttrib, ColorAttrib, ColorBlendAttrib, ColorScaleAttrib, ColorWriteAttrib, CompassEffect, CullBin, CullBinAttrib, CullBinBackToFront, CullBinFixed, CullBinFrontToBack, CullBinUnsorted, CullFaceAttrib, DecalEffect, DepthOffsetAttrib, DepthTestAttrib, DepthWriteAttrib, DirectionalLight, Fog, FogAttrib, GeomNode, LensNode, Light, LightAttrib, LightLensNode, LightNode, LODNode, MaterialAttrib, ModelNode, ModelRoot, NodePathComponent, PosLerpFunctor, HprLerpFunctor, ScaleLerpFunctor, ColorLerpFunctor, PosHprLerpFunctor, HprScaleLerpFunctor, PosHprScaleLerpFunctor, ColorScaleLerpFunctor, PandaNode, PlaneNode, PointLight, RenderAttrib, RenderEffect, RenderEffects, RenderModeAttrib, RenderState, SelectiveChildNode, SequenceNode, ShowBoundsEffect, Spotlight, SwitchNode, TexMatrixAttrib, TextureApplyAttrib, TextureAttrib, TransformState, EventStoreTransform, TransparencyAttrib, PGButton, PGEntry, PGItem, PGMouseWatcherBackground, PGMouseWatcherGroup, PGMouseWatcherParameter, PGMouseWatcherRegion, PGTop, PGWaitBar, ActorNode, AngularForce, AngularVectorForce, BaseForce, ForceNode, LinearCylinderVortexForce, LinearDistanceForce, LinearForce, LinearFrictionForce, LinearJitterForce, LinearNoiseForce, LinearRandomForce, LinearSinkForce, LinearSourceForce, LinearUserDefinedForce, LinearVectorForce, Physical, PhysicalNode, PhysicsObject, BamReaderParam, ButtonEventList, FactoryParam, Person, Parent, Child, TypedWritableReferenceCount, WritableParam, RIBGraphicsWindow, RIBGraphicsStateGuardian, CasterShader, OutlineShader, PlanarReflector, ProjtexShader, ProjtexShadower, Shader, FrustumShader, SpheretexHighlighter, SpheretexReflector, SpheretexShader, SpotlightShader, TextFont, TextNode, ButtonThrower, DriveInterface, MouseWatcher, MouseWatcherGroup, MouseWatcherRegion, Trackball, Transform2SG, VrpnAnalogDevice, VrpnButtonDevice, VrpnClient, VrpnDialDevice, VrpnTrackerDevice, wcrGraphicsWindow, wglGraphicsPipe, wglGraphicsStateGuardian, wglGraphicsWindow, WinGraphicsPipe, WinGraphicsWindow, AnimChannel< ACScalarSwitchType >, AnimChannel< ACMatrixSwitchType >, MovingPart< ACScalarSwitchType >, MovingPart< ACMatrixSwitchType >, SimpleLerpFunctor< LPoint3f >, SimpleLerpFunctor< LVecBase3f >, and SimpleLerpFunctor< LVecBase4f >.

Definition at line 66 of file referenceCount.h.

bool Connection::get_collect_tcp  )  const
 

Returns the current setting of "collect-tcp" mode.

See set_collect_tcp().

Definition at line 190 of file connection.cxx.

double Connection::get_collect_tcp_interval  )  const
 

Returns the interval in time, in seconds, for which to hold TCP packets before sending all of the recently received packets at once.

This only has meaning if "collect-tcp" mode is enabled; see set_collect_tcp().

Definition at line 232 of file connection.cxx.

References _socket.

ConnectionManager * Connection::get_manager  )  const
 

Returns a pointer to the ConnectionManager object that serves this connection.

Definition at line 115 of file connection.cxx.

int ReferenceCount::get_ref_count  )  const [inline, inherited]
 

Returns the current reference count.

Definition at line 183 of file referenceCount.I.

Referenced by RenderState::determine_bin_index(), RenderEffects::determine_show_bounds(), FontPool::ns_garbage_collect(), TexturePool::ns_garbage_collect(), MaterialPool::ns_get_material(), and TexturePool::ns_release_texture().

PRFileDesc * Connection::get_socket  )  const
 

Returns the internal NSPR pointer that defines the connection.

Definition at line 130 of file connection.cxx.

References _collect_tcp, and collect_tcp.

Referenced by ConnectionWriter::send().

void ReferenceCount::init_type void   )  [inline, static, inherited]
 

Reimplemented in AnimBundle, AnimBundleNode, AnimChannel< SwitchType >, AnimChannelBase, AnimChannelFixed< SwitchType >, AnimChannelMatrixXfmTable, AnimChannelScalarTable, AnimControl, AnimGroup, MovingPart< SwitchType >, MovingPartBase, MovingPartMatrix, MovingPartScalar, PartBundle, PartBundleNode, PartGroup, Character, CharacterJoint, CharacterJointBundle, CharacterSlider, ComputedVertices, CollisionEntry, CollisionHandler, CollisionHandlerEvent, CollisionHandlerFloor, CollisionHandlerPhysical, CollisionHandlerPusher, CollisionHandlerQueue, CollisionNode, CollisionPlane, CollisionPolygon, CollisionRay, CollisionSegment, CollisionSolid, CollisionSphere, CRGraphicsStateGuardian, CRSavedFrameBuffer, AnalogNode, ButtonNode, ClientAnalogDevice, ClientBase, ClientButtonDevice, ClientDevice, ClientDialDevice, ClientTrackerDevice, DialNode, MouseAndKeyboard, TrackerNode, VirtualMouse, DataNode, GraphicsChannel, GraphicsLayer, GraphicsPipe, GraphicsStateGuardian, GraphicsWindow, HardwareChannel, SavedFrameBuffer, CylindricalLens, FisheyeLens, ProjectionScreen, PSphereLens, DXGraphicsStateGuardian7, DXSavedFrameBuffer7, wdxGraphicsPipe7, wdxGraphicsWindow7, DXGraphicsStateGuardian8, DXSavedFrameBuffer8, wdxGraphicsPipe8, wdxGraphicsWindow8, EggAnimData, EggBin, EggBinMaker, EggComment, EggCoordinateSystem, EggCurve, EggData, EggExternalReference, EggFilenameNode, EggGroup, EggGroupNode, EggGroupUniquifier, EggMaterial, EggNamedObject, EggNameUniquifier, EggNode, EggNurbsCurve, EggNurbsSurface, EggObject, EggPoint, EggPolygon, EggPoolUniquifier, EggPrimitive, EggSAnimData, EggSurface, EggSwitchCondition, EggSwitchConditionDistance, EggTable, EggTexture, EggVertex, EggVertexPool, EggXfmAnimData, EggXfmSAnim, Event, EventStoreValueBase, RefCountProxy< Base >, RefCountObj< Base >, ThatThingie, ThisThingie, WhatAThingie, Thread, TypedReferenceCount, VirtualFile, VirtualFileComposite, VirtualFileSimple, WindowFramework, GLGraphicsStateGuardian, GLSavedFrameBuffer, glxGraphicsPipe, glxGraphicsStateGuardian, glxGraphicsWindow, dDrawable, Geom, GeomLine, GeomLinestrip, GeomPoint, GeomPolygon, GeomQuad, GeomSphere, GeomSprite, GeomTri, GeomTrifan, GeomTristrip, ImageBuffer, Lens, Material, MatrixLens, OrthographicLens, PerspectiveLens, PixelBuffer, Texture, GraphicsStateGuardianBase, Lerp, AutonomousLerp, LerpBlendType, EaseInBlendType, EaseOutBlendType, EaseInOutBlendType, NoBlendType, LerpFunctor, SimpleLerpFunctor< value >, SimpleQueryLerpFunctor< value >, MultiLerpFunctor, BoundingHexahedron, BoundingLine, BoundingSphere, BoundingVolume, FiniteBoundingVolume, GeometricBoundingVolume, OmniBoundingVolume, ClassicNurbsCurve, CubicCurveseg, HermiteCurve, NurbsPPCurve, ParametricCurve, PiecewiseCurve, RopeNode, AlphaTestAttrib, AmbientLight, BillboardEffect, Camera, ClipPlaneAttrib, ColorAttrib, ColorBlendAttrib, ColorScaleAttrib, ColorWriteAttrib, CompassEffect, CullBin, CullBinAttrib, CullBinBackToFront, CullBinFixed, CullBinFrontToBack, CullBinUnsorted, CullFaceAttrib, DecalEffect, DepthOffsetAttrib, DepthTestAttrib, DepthWriteAttrib, DirectionalLight, Fog, FogAttrib, GeomNode, LensNode, Light, LightAttrib, LightLensNode, LightNode, LODNode, MaterialAttrib, ModelNode, ModelRoot, NodePathComponent, PosLerpFunctor, HprLerpFunctor, ScaleLerpFunctor, ColorLerpFunctor, PosHprLerpFunctor, HprScaleLerpFunctor, PosHprScaleLerpFunctor, ColorScaleLerpFunctor, PandaNode, PlaneNode, PointLight, RenderAttrib, RenderEffect, RenderEffects, RenderModeAttrib, RenderState, SelectiveChildNode, SequenceNode, ShowBoundsEffect, Spotlight, SwitchNode, TexMatrixAttrib, TextureApplyAttrib, TextureAttrib, TransformState, EventStoreTransform, TransparencyAttrib, PGButton, PGEntry, PGItem, PGMouseWatcherBackground, PGMouseWatcherGroup, PGMouseWatcherParameter, PGMouseWatcherRegion, PGTop, PGWaitBar, ActorNode, AngularForce, AngularVectorForce, BaseForce, ForceNode, LinearCylinderVortexForce, LinearDistanceForce, LinearForce, LinearFrictionForce, LinearJitterForce, LinearNoiseForce, LinearRandomForce, LinearSinkForce, LinearSourceForce, LinearUserDefinedForce, LinearVectorForce, Physical, PhysicalNode, PhysicsObject, BamReaderParam, ButtonEventList, FactoryParam, Person, Parent, Child, TypedWritableReferenceCount, WritableParam, RIBGraphicsWindow, RIBGraphicsStateGuardian, CasterShader, OutlineShader, PlanarReflector, ProjtexShader, ProjtexShadower, Shader, FrustumShader, SpheretexHighlighter, SpheretexReflector, SpheretexShader, SpotlightShader, TextFont, TextNode, ButtonThrower, DriveInterface, MouseWatcher, MouseWatcherGroup, MouseWatcherRegion, Trackball, Transform2SG, VrpnAnalogDevice, VrpnButtonDevice, VrpnClient, VrpnDialDevice, VrpnTrackerDevice, wcrGraphicsWindow, wglGraphicsPipe, wglGraphicsStateGuardian, wglGraphicsWindow, WinGraphicsPipe, WinGraphicsWindow, AnimChannel< ACScalarSwitchType >, AnimChannel< ACMatrixSwitchType >, MovingPart< ACScalarSwitchType >, MovingPart< ACMatrixSwitchType >, SimpleLerpFunctor< LPoint3f >, SimpleLerpFunctor< LVecBase3f >, and SimpleLerpFunctor< LVecBase4f >.

Definition at line 69 of file referenceCount.h.

References INLINE.

Referenced by ConfigureFn(), and ThatThingie::get_class_type().

int ReferenceCount::ref  )  const [inline, inherited]
 

Explicitly increments the reference count.

User code should avoid using ref() and unref() directly, which can result in missed reference counts. Instead, let a PointerTo object manage the reference counting automatically.

This function is const, even though it changes the object, because generally fiddling with an object's reference count isn't considered part of fiddling with the object. An object might be const in other ways, but we still need to accurately count the number of references to it.

The return value is the new reference count.

Definition at line 225 of file referenceCount.I.

Referenced by ClientDevice::ClientDevice(), EggGroupNode::find_textures(), EggGroupNode::r_apply_texmats(), EggGroupNode::r_flatten_transforms(), and EggGroupNode::reverse_vertex_ordering().

bool Connection::send_datagram const NetDatagram datagram  )  [private]
 

This method is intended only to be called by ConnectionWriter.

It atomically writes the given datagram to the socket, returning true on success, false on failure. If the socket seems to be closed, it notifies the ConnectionManager.

Definition at line 475 of file connection.cxx.

References _queued_count.

Referenced by ConnectionWriter::send().

bool Connection::send_raw_datagram const NetDatagram datagram  )  [private]
 

This method is intended only to be called by ConnectionWriter.

It atomically writes the given datagram to the socket, without the Datagram header.

Definition at line 537 of file connection.cxx.

Referenced by ConnectionWriter::send().

void Connection::set_collect_tcp bool  collect_tcp  ) 
 

Enables or disables "collect-tcp" mode.

In this mode, individual TCP packets are not sent immediately, but rather they are collected together and accumulated to be sent periodically as one larger TCP packet. This cuts down on overhead from the TCP/IP protocol, especially if many small packets need to be sent on the same connection, but it introduces additional latency (since packets must be held before they can be sent).

See set_collect_tcp_interval() to specify the interval of time for which to hold packets before sending them.

If you enable this mode, you may also need to periodically call consider_flush() to flush the queue if no packets have been sent recently.

Definition at line 175 of file connection.cxx.

References _collect_tcp, _collect_tcp_interval, _queued_data_start, _write_mutex, do_flush(), ClockObject::get_global_clock(), and ClockObject::get_real_time().

void Connection::set_collect_tcp_interval double  interval  ) 
 

Specifies the interval in time, in seconds, for which to hold TCP packets before sending all of the recently received packets at once.

This only has meaning if "collect-tcp" mode is enabled; see set_collect_tcp().

Definition at line 211 of file connection.cxx.

References _socket.

void Connection::set_ip_time_to_live int  ttl  ) 
 

Sets IP time-to-live.

Definition at line 401 of file connection.cxx.

void Connection::set_ip_type_of_service int  tos  ) 
 

Sets IP type-of-service and precedence.

Definition at line 417 of file connection.cxx.

References _socket, _write_mutex, and Datagram::get_message().

void Connection::set_keep_alive bool  flag  ) 
 

Sets whether the connection is periodically tested to see if it is still alive.

Definition at line 353 of file connection.cxx.

References _socket, _write_mutex, DatagramUDPHeader::get_header(), Datagram::get_message(), nassertr, and NULL.

void Connection::set_linger bool  flag,
double  time
 

Sets the time to linger on close if data is present.

If flag is false, when you close a socket with data available the system attempts to deliver the data to the peer (the default behavior). If flag is false but time is zero, the system discards any undelivered data when you close the socket. If flag is false but time is nonzero, the system waits up to time seconds to deliver the data.

Definition at line 318 of file connection.cxx.

void Connection::set_max_segment int  size  ) 
 

Sets the maximum segment size.

Definition at line 451 of file connection.cxx.

void Connection::set_no_delay bool  flag  ) 
 

If flag is true, this disables the Nagle algorithm, and prevents delaying of send to coalesce packets.

Definition at line 435 of file connection.cxx.

void Connection::set_nonblock bool  flag  ) 
 

Sets whether nonblocking I/O should be in effect.

Definition at line 288 of file connection.cxx.

References _socket.

void Connection::set_recv_buffer_size int  size  ) 
 

Sets the size of the receive buffer, in bytes.

Definition at line 369 of file connection.cxx.

void Connection::set_reuse_addr bool  flag  ) 
 

Sets whether local address reuse is allowed.

Definition at line 335 of file connection.cxx.

References _socket.

void Connection::set_send_buffer_size int  size  ) 
 

Sets the size of the send buffer, in bytes.

Definition at line 385 of file connection.cxx.

References _queued_count, and _queued_data.

void ReferenceCount::test_ref_count_integrity  )  const [inline, inherited]
 

Does some easy checks to make sure that the reference count isn't completely bogus.

Definition at line 328 of file referenceCount.I.

References INLINE.

Referenced by EggNode::determine_bin(), and ReferenceCount::~ReferenceCount().

int ReferenceCount::unref  )  const [inline, inherited]
 

Explicitly decrements the reference count.

Note that the object will not be implicitly deleted by unref() simply because the reference count drops to zero. (Having a member function delete itself is problematic; plus, we don't have a virtual destructor anyway.) However, see the helper function unref_delete().

User code should avoid using ref() and unref() directly, which can result in missed reference counts. Instead, let a PointerTo object manage the reference counting automatically.

This function is const, even though it changes the object, because generally fiddling with an object's reference count isn't considered part of fiddling with the object. An object might be const in other ways, but we still need to accurately count the number of references to it.

The return value is the new reference count.

Definition at line 293 of file referenceCount.I.

References INLINE.

Referenced by RenderState::determine_bin_index(), and RenderEffects::determine_show_bounds().


Friends And Related Function Documentation

friend class ConnectionWriter [friend]
 

Definition at line 91 of file connection.h.


Member Data Documentation

bool Connection::_collect_tcp [private]
 

Definition at line 85 of file connection.h.

Referenced by get_socket(), and set_collect_tcp().

double Connection::_collect_tcp_interval [private]
 

Definition at line 86 of file connection.h.

Referenced by set_collect_tcp().

ConnectionManager* Connection::_manager [private]
 

Definition at line 81 of file connection.h.

Referenced by get_address().

int Connection::_queued_count [private]
 

Definition at line 89 of file connection.h.

Referenced by send_datagram(), and set_send_buffer_size().

string Connection::_queued_data [private]
 

Definition at line 88 of file connection.h.

Referenced by set_send_buffer_size().

double Connection::_queued_data_start [private]
 

Definition at line 87 of file connection.h.

Referenced by set_collect_tcp().

PRFileDesc* Connection::_socket [private]
 

Definition at line 82 of file connection.h.

Referenced by flush(), get_collect_tcp_interval(), set_collect_tcp_interval(), set_ip_type_of_service(), set_keep_alive(), set_nonblock(), and set_reuse_addr().

PRLock* Connection::_write_mutex [private]
 

Definition at line 83 of file connection.h.

Referenced by set_collect_tcp(), set_ip_type_of_service(), and set_keep_alive().


The documentation for this class was generated from the following files:
Generated on Fri May 2 00:48:47 2003 for Panda by doxygen1.3