Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages | Examples

ArHybridForwarderVideo Class Reference

This class takes video another source and serves it back up. More...

#include <ArHybridForwarderVideo.h>

Inheritance diagram for ArHybridForwarderVideo:

ArCameraCollectionItem List of all members.

Public Member Functions

virtual void addToCameraCollection (ArCameraCollection &collection)
 Adds this item to the given camera collection.
 ArHybridForwarderVideo (ArServerBase *server, const char *hostname="localhost", int port=7070)
 Constructor that just takes a host and port and makes its own client.
 ArHybridForwarderVideo (ArServerBase *server, ArClientBase *client)
 Constructor that takes a client.
void clientCycleCallback (void)
 Our callback that requests more video.
virtual const char * getCameraName ()
 Returns the name of the camera handled by this item.
bool isForwardingVideo (void) const
 Returns if we're forwarding video or not.
void receiveVideo (ArNetPacket *packet)
 Receives the video (and sets a timer to wait a bit and get it again).
void receiveVideoSize (ArNetPacket *packet)
 Receives the video size (just gets this once).
void sendVideo (ArServerClient *client, ArNetPacket *packet)
 Sends the last received video.
void sendVideoSize (ArServerClient *client, ArNetPacket *packet)
 Sends the last received video size (just gets this once).
virtual void setCameraName (const char *cameraName)
 This method must be called before addToCameraCollection().
int setVideoRequestTime (void) const
 Gets how often after getting video we ask for it again.
void setVideoRequestTime (int ms)
 Sets how often after getting video we ask for it again.
virtual ~ArHybridForwarderVideo ()
 Destructor.

Protected Member Functions

void finishConstructor (void)

Protected Attributes

std::string myCameraName
ArClientBasemyClient
ArFunctorC< ArHybridForwarderVideo > * myClientCycleCB
bool myForwardingVideo
bool myIsSendVideoAvailable
ArTime myLastReceivedVideo
ArTime myLastReqSent
ArMutex myMutex
ArNetPacket myReceivedVideo
ArNetPacket myReceivedVideoSize
ArFunctor1C< ArHybridForwarderVideo,
ArNetPacket * > * 
myReceiveVideoCB
ArFunctor1C< ArHybridForwarderVideo,
ArNetPacket * > * 
myReceiveVideoSizeCB
bool myReqSent
ArNetPacket mySendVideoArgument
ArFunctor2C< ArHybridForwarderVideo,
ArServerClient *, ArNetPacket * > * 
mySendVideoCB
ArFunctor2C< ArHybridForwarderVideo,
ArServerClient *, ArNetPacket * > * 
mySendVideoSizeCB
ArServerBasemyServer
int myVideoRequestTime

Detailed Description

This class takes video another source and serves it back up.
Examples:

serverDemo.cpp.

Definition at line 34 of file ArHybridForwarderVideo.h.


Constructor & Destructor Documentation

ArHybridForwarderVideo::ArHybridForwarderVideo ArServerBase server,
ArClientBase client
 

Constructor that takes a client.

Parameters:
server this class will addData the video data to the server
client IF the client is connected to something this class will get video data from the client and send it out when requested

Definition at line 36 of file ArHybridForwarderVideo.cpp.

References client, finishConstructor(), myClient, and myServer.

ArHybridForwarderVideo::ArHybridForwarderVideo ArServerBase server,
const char *  hostname = "localhost",
int  port = 7070
 

Constructor that just takes a host and port and makes its own client.

Parameters:
server a base server object
hostname the host to connect a client to
port the port to connect a client to

Definition at line 53 of file ArHybridForwarderVideo.cpp.

References ArClientBase::blockingConnect(), finishConstructor(), myClient, myServer, ArClientBase::runAsync(), and ArClientBase::setConnectTimeoutTime().

ArHybridForwarderVideo::~ArHybridForwarderVideo  )  [virtual]
 

Destructor.

Definition at line 65 of file ArHybridForwarderVideo.cpp.


Member Function Documentation

void ArHybridForwarderVideo::addToCameraCollection ArCameraCollection collection  )  [virtual]
 

Adds this item to the given camera collection.

Implements ArCameraCollectionItem.

Definition at line 144 of file ArHybridForwarderVideo.cpp.

References ArLog::log().

void ArHybridForwarderVideo::clientCycleCallback void   ) 
 

Our callback that requests more video.

Definition at line 247 of file ArHybridForwarderVideo.cpp.

References ArMutex::lock(), ArTime::mSecSince(), myClient, myLastReceivedVideo, myLastReqSent, myMutex, myReqSent, mySendVideoArgument, myVideoRequestTime, ArClientBase::requestOnce(), ArTime::setToNow(), and ArMutex::unlock().

Referenced by finishConstructor().

void ArHybridForwarderVideo::finishConstructor void   )  [protected]
 

Definition at line 70 of file ArHybridForwarderVideo.cpp.

References ArClientBase::addCycleCallback(), ArServerBase::addData(), ArClientBase::addHandler(), clientCycleCallback(), ArClientBase::dataExists(), ArClientBase::isConnected(), ArThread::lock(), ArLog::log(), myClient, myClientCycleCB, myForwardingVideo, myIsSendVideoAvailable, myLastReceivedVideo, myLastReqSent, myReceiveVideoCB, myReceiveVideoSizeCB, myReqSent, mySendVideoCB, mySendVideoSizeCB, myServer, myVideoRequestTime, receiveVideo(), receiveVideoSize(), ArClientBase::requestOnce(), sendVideo(), sendVideoSize(), ArTime::setToNow(), ArBasePacket::uByteToBuf(), and ArThread::unlock().

Referenced by ArHybridForwarderVideo().

const char * ArHybridForwarderVideo::getCameraName  )  [virtual]
 

Returns the name of the camera handled by this item.

Implements ArCameraCollectionItem.

Definition at line 126 of file ArHybridForwarderVideo.cpp.

References myCameraName.

bool ArHybridForwarderVideo::isForwardingVideo void   )  const
 

Returns if we're forwarding video or not.

Definition at line 261 of file ArHybridForwarderVideo.cpp.

References myForwardingVideo.

Referenced by main().

void ArHybridForwarderVideo::receiveVideo ArNetPacket packet  ) 
 

Receives the video (and sets a timer to wait a bit and get it again).

Definition at line 236 of file ArHybridForwarderVideo.cpp.

References ArNetPacket::duplicatePacket(), ArMutex::lock(), myLastReceivedVideo, myMutex, myReceivedVideo, myReqSent, ArNetPacket::resetRead(), ArTime::setToNow(), and ArMutex::unlock().

Referenced by finishConstructor().

void ArHybridForwarderVideo::receiveVideoSize ArNetPacket packet  ) 
 

Receives the video size (just gets this once).

Definition at line 227 of file ArHybridForwarderVideo.cpp.

References ArNetPacket::duplicatePacket(), ArMutex::lock(), myMutex, myReceivedVideoSize, mySendVideoArgument, ArNetPacket::resetRead(), and ArMutex::unlock().

Referenced by finishConstructor().

void ArHybridForwarderVideo::sendVideo ArServerClient client,
ArNetPacket packet
 

Sends the last received video.

Definition at line 210 of file ArHybridForwarderVideo.cpp.

References client, ArNetPacket::duplicatePacket(), ArMutex::lock(), myMutex, myReceivedVideo, mySendVideoArgument, ArNetPacket::resetRead(), ArClientBase::sendPacketUdp(), ArNetPacket::setCommand(), and ArMutex::unlock().

Referenced by finishConstructor().

void ArHybridForwarderVideo::sendVideoSize ArServerClient client,
ArNetPacket packet
 

Sends the last received video size (just gets this once).

Definition at line 201 of file ArHybridForwarderVideo.cpp.

References client, ArMutex::lock(), myMutex, myReceivedVideoSize, ArClientBase::sendPacketTcp(), ArNetPacket::setCommand(), and ArMutex::unlock().

Referenced by finishConstructor().

void ArHybridForwarderVideo::setCameraName const char *  cameraName  )  [virtual]
 

This method must be called before addToCameraCollection().

Definition at line 131 of file ArHybridForwarderVideo.cpp.

References myCameraName.

int ArHybridForwarderVideo::setVideoRequestTime void   )  const [inline]
 

Gets how often after getting video we ask for it again.

Definition at line 84 of file ArHybridForwarderVideo.h.

References myVideoRequestTime.

void ArHybridForwarderVideo::setVideoRequestTime int  ms  )  [inline]
 

Sets how often after getting video we ask for it again.

Definition at line 82 of file ArHybridForwarderVideo.h.

References myVideoRequestTime.


Member Data Documentation

std::string ArHybridForwarderVideo::myCameraName [protected]
 

Definition at line 88 of file ArHybridForwarderVideo.h.

Referenced by getCameraName(), and setCameraName().

ArClientBase* ArHybridForwarderVideo::myClient [protected]
 

Definition at line 100 of file ArHybridForwarderVideo.h.

Referenced by ArHybridForwarderVideo(), clientCycleCallback(), and finishConstructor().

ArFunctorC<ArHybridForwarderVideo>* ArHybridForwarderVideo::myClientCycleCB [protected]
 

Definition at line 107 of file ArHybridForwarderVideo.h.

Referenced by finishConstructor().

bool ArHybridForwarderVideo::myForwardingVideo [protected]
 

Definition at line 91 of file ArHybridForwarderVideo.h.

Referenced by finishConstructor(), and isForwardingVideo().

bool ArHybridForwarderVideo::myIsSendVideoAvailable [protected]
 

Definition at line 109 of file ArHybridForwarderVideo.h.

Referenced by finishConstructor().

ArTime ArHybridForwarderVideo::myLastReceivedVideo [protected]
 

Definition at line 95 of file ArHybridForwarderVideo.h.

Referenced by clientCycleCallback(), finishConstructor(), and receiveVideo().

ArTime ArHybridForwarderVideo::myLastReqSent [protected]
 

Definition at line 96 of file ArHybridForwarderVideo.h.

Referenced by clientCycleCallback(), and finishConstructor().

ArMutex ArHybridForwarderVideo::myMutex [protected]
 

Definition at line 90 of file ArHybridForwarderVideo.h.

Referenced by clientCycleCallback(), receiveVideo(), receiveVideoSize(), sendVideo(), and sendVideoSize().

ArNetPacket ArHybridForwarderVideo::myReceivedVideo [protected]
 

Definition at line 93 of file ArHybridForwarderVideo.h.

Referenced by receiveVideo(), and sendVideo().

ArNetPacket ArHybridForwarderVideo::myReceivedVideoSize [protected]
 

Definition at line 92 of file ArHybridForwarderVideo.h.

Referenced by receiveVideoSize(), and sendVideoSize().

ArFunctor1C<ArHybridForwarderVideo, ArNetPacket *>* ArHybridForwarderVideo::myReceiveVideoCB [protected]
 

Definition at line 106 of file ArHybridForwarderVideo.h.

Referenced by finishConstructor().

ArFunctor1C<ArHybridForwarderVideo, ArNetPacket *>* ArHybridForwarderVideo::myReceiveVideoSizeCB [protected]
 

Definition at line 105 of file ArHybridForwarderVideo.h.

Referenced by finishConstructor().

bool ArHybridForwarderVideo::myReqSent [protected]
 

Definition at line 97 of file ArHybridForwarderVideo.h.

Referenced by clientCycleCallback(), finishConstructor(), and receiveVideo().

ArNetPacket ArHybridForwarderVideo::mySendVideoArgument [protected]
 

Definition at line 94 of file ArHybridForwarderVideo.h.

Referenced by clientCycleCallback(), receiveVideoSize(), and sendVideo().

ArFunctor2C<ArHybridForwarderVideo, ArServerClient*, ArNetPacket *>* ArHybridForwarderVideo::mySendVideoCB [protected]
 

Definition at line 104 of file ArHybridForwarderVideo.h.

Referenced by finishConstructor().

ArFunctor2C<ArHybridForwarderVideo, ArServerClient*, ArNetPacket *>* ArHybridForwarderVideo::mySendVideoSizeCB [protected]
 

Definition at line 102 of file ArHybridForwarderVideo.h.

Referenced by finishConstructor().

ArServerBase* ArHybridForwarderVideo::myServer [protected]
 

Definition at line 99 of file ArHybridForwarderVideo.h.

Referenced by ArHybridForwarderVideo(), and finishConstructor().

int ArHybridForwarderVideo::myVideoRequestTime [protected]
 

Definition at line 98 of file ArHybridForwarderVideo.h.

Referenced by clientCycleCallback(), finishConstructor(), and setVideoRequestTime().


The documentation for this class was generated from the following files:
Generated on Tue Feb 20 10:51:51 2007 for ArNetworking by  doxygen 1.4.0