Table of contents
Classes
acquisition_application
BasicException
generic exception
broadcast_target
capturing thread must dump data to TCP sockets - usually to nearests push servers, from where it will be pushed by UDP to clients
comport
hide all comport I/O complexity
ComportException
subclass of basic exceptions
mpegator
mutex
defines the abstract Unix/Windoze interface to mutexes through two classes: one to create the mutex, another to lock it
MutexErrorException
subclass of basic exceptions
MutexTimeoutException
subclass of basic exceptions
NetworkException
subclass of basic exceptions
protocol_cmd
protocol_thread
ProtocolException
subclass of basic exceptions
ShutdownException
subclass of basic exceptions
SyntaxException
subclass of basic exceptions
text_thread
thread class to work with closed captions grabber
video_thread
video_thread is (maybe virtual) base class that hide actual implementation of video input
VideoException
subclass of basic exceptions
wait_for_mutex
WIN32
subclass if iostream, hide from user the communication details
Functions, Macros
acquisition_application
add_broadcast_target
get a broadcast target from outside thread and place into queue
append_messages
BasicException
broadcast_target
do not connect immediately
buffer_is_empty
check_for_add_drop_targets
check for adding/dropping targets
check_for_new_data :
in
mpegator
in
video_thread
load data from video card and dump it to all broadcast targets
check_new_text
acquisition server do not knows whether this channel is recorded now or not
cleanup_connection
deallocate data associated with connection - but not to shutdown! only to reconnect later
cleanup
close sockets, etc
compare_addr
compare
comport
arg is com1 or com2
ComportException
connect
create_instance
select proper derived class based on argv parameters
describe_itself
get the channel description when needed for debug reasons
dump_log
take log from old input stream messages
eof
get_data
fill given structures with data
get_pointer
get_push_serv_id
get_text
get_time
getline
getText
get
handshake
handshake with server
init :
in
BasicException
in
comport
init only there
in
mpegator
in
text_thread
in
video_thread
raise exception if something wrong
is_command
test if s is equal to the word 'command'
is_shutdown_performed :
in
mpegator
in
video_thread
the video hardware is sensetive to proper clean-up
log
log this message
lookup_cmd_stack
look in command queue for commands from others threads
loop :
in
protocol_thread
never exit, work until some exception
in
text_thread
in
video_thread
this call loops forever until some exception, which must indicate what to do next
mpegator
MutexErrorException
mutex
MutexTimeoutException
NetworkException
new_text_data :
in
protocol_thread
pass new text data to protocol thread
in
video_thread
pass new text data to video thread
open_connection
this may be called several times after timeout
operator <<
operator >>
assume that there are nothing on that string except this integer, this is simplification of protocol, be warned
peek
returns -1 if no input, or the next char
process_unknown_input
we have something on input
protocol_cmd
protocol_stream
at the beginning set the everything_read to false, because we have prompt
protocol_thread_entry_func
static thread - entry function
protocol_thread
only set-up initial values
ProtocolException
release
report_push_serv_ok
report to db server that push server id is operating fine
request_broadcast_parameters
reschedule_broadcast_target
remove this target from the active queue and put it back into the queue
send
Send to TCP stream the ready-to-resend by UDP "packet"
shutdown_requested :
in
protocol_thread
call from outside thread
in
video_thread
call from outside: all that calls must be sinchronized with mutexes
shutdown
ShutdownException
shutdown :
in
mpegator
in
text_thread
in
video_thread
skip_to_prompt
before reading, check for everything_read flag
sleep
sleep for spec num of seconds
start_capture :
in
mpegator
in
video_thread
start
stop_capture :
in
mpegator
stop
in
video_thread
stop
SyntaxException
test_for_any_pending_input
test not only socket, but the buffer as well
test_for_input
text_data
text_thread_entry_func
text_thread
should take the comport number from args
video_thread_entry_func
this is thread start function - single (of course) for all derived classes
video_thread
VideoException
wait_comport_event
this is a blocking call which does not returns until some activity on port happens
wait_for_mutex
wait_input
we know that input is available
wait
~broadcast_target
~comport
~mpegator
~mutex
~text_thread
~video_thread
clean-up; actually do nothing - child class must perform actual work
~wait_for_mutex
Variables
acquisition_server_id
received from handshake
add_drop_target_mutex
lock the add/drop target operation
add_target_queueT
add_target_q
put in queue all hosts to set-up broadcasting
before_mark
broadcast_addr
broadcast_sock
broadcast_targetsT
broadcast_targets
list of all targets for broadcasting
captureStarted
flag
cmd_add_caption_noid
cmd_push_server_ok
cmd_request_broadcast_parameters
com_port
command
commands
commands from other threads are queued in this queue
command
connected_push_servers
queue of push servers where we successfully connected - to report to the db server
control_addr
control_sock
dbServerAddr
drop_target_q
put in queue all hosts to drop broadcasting
dwEvtMask
this var just keep the status of previous call of wait_comport_event()
everything_read
genericTimeout
input_buffer_end
input_buffer_offset
input_buffer
buffer input data here
internal_buffer
internal buffer where get_data function places intermediate data
lock_log
mutex to lock log out stream
lock_new_text :
in
protocol_thread
access to the queue is shared
in
video_thread
access to the queue is shared
lock_various_cmdstacks
lock connected_push_servers
log_output
abstract log destination
messages
mpeg_ops_mutex
mutex to lock all operations on mpegator: do not lock it for a while!
mpeg
instance of the mpegator OLE
mut
name
to use in any log/error output
new_text :
in
protocol_thread
queue of text data to be sent to the database server
in
video_thread
queue of text data to be sent with video packets
os
allows background data loading
port_h
open this with CreateFile
portname
prompt
protocolStream
connection status is determined by checking this to be NULL
push_serv_id
register_acquisition_server
retryConnectionInterval
s_timestamp
time in string form
sequence
setupConnectionTimeout
shutdown_mutex :
in
comport
mutex to lock shutdown procedure
in
text_thread
mutex to lock shutdown procedure
in
video_thread
mutex to lock shutdown procedure
shutdown_now :
in
protocol_thread
in
text_thread
in
video_thread
set this flag from other threads to stop the job
shutdown_performed
to never shutdown twice
sock
some_pointer
for example, in video_thread method broadcast_target::send may raise this exception if it can't send data to broadcast target
target_queueT
target_reconnect_time
when to reconnect if failed
text :
in
BasicException
in
text_data
verbose_level
logging level
video_buffer
just video buffer
video_data_size
is related to the buffer above
wait_forobject_next_time
mpegator have some synchronization issues: if you ask the driver is new data available, get negative reply and then immediately try to repeat the query it reply with "yes" but in fact data are not there yet
whenTryToRetryConnection
win_mutex_h
Enums, Unions, Structs
text_data
structure that holds text and associated timestamp
hierarchy of classes
This page was generated with the help of
DOC++
.