summaryrefslogtreecommitdiff
path: root/ACE/examples/APG/Streams/Util.h
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/examples/APG/Streams/Util.h')
-rw-r--r--ACE/examples/APG/Streams/Util.h92
1 files changed, 92 insertions, 0 deletions
diff --git a/ACE/examples/APG/Streams/Util.h b/ACE/examples/APG/Streams/Util.h
new file mode 100644
index 00000000000..d47a699aee7
--- /dev/null
+++ b/ACE/examples/APG/Streams/Util.h
@@ -0,0 +1,92 @@
+/* -*- C++ -*- */
+// $Id$
+
+#ifndef UTIL_H
+#define UTIL_H
+
+#include "ace/FILE_Addr.h"
+#include "ace/FILE_Connector.h"
+#include "ace/FILE_IO.h"
+
+class Util
+{
+public:
+ static MessageType *identify_message (ACE_FILE_Addr &src)
+ {
+ // Determine the contents of the specified file
+ return new MessageType (MessageType::RAWTEXT, src);
+ }
+
+ static ACE_FILE_IO *audio_to_text (ACE_FILE_Addr &, ACE_FILE_Addr &dest)
+ {
+ ACE_FILE_Connector connector;
+ ACE_FILE_IO *file = 0;
+ if (connector.connect (*file, dest) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("create file")),
+ 0);
+
+ // Convert audio data to printable text
+
+ return file;
+ }
+
+ static ACE_FILE_IO *video_to_text (ACE_FILE_Addr &, ACE_FILE_Addr &dest)
+ {
+ ACE_FILE_Connector connector;
+ ACE_FILE_IO *file = 0;
+ if (connector.connect (*file, dest) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("create file")),
+ 0);
+
+ // Extract audio data from video file and convert to printable text
+ return file;
+ }
+
+ static int convert_to_unicode (ACE_FILE_Addr &src, ACE_FILE_Addr &dest)
+ {
+ ACE_FILE_Connector connector;
+ ACE_FILE_IO input;
+ if (connector.connect (input, src) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("read file")),
+ 0);
+ ACE_FILE_IO output;
+ if (connector.connect (output, dest) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("create file")),
+ 0);
+
+ char rwbuf[512];
+ ssize_t rwbytes;
+ while ((rwbytes = input.recv (rwbuf, 512)) > 0)
+ {
+ output.send_n (rwbuf, rwbytes);
+ }
+
+ input.close ();
+ output.close ();
+
+ // Convert arbirary text to unicode
+ return 0;
+ }
+
+ static int convert_to_mp3 (ACE_FILE_Addr &, ACE_FILE_Addr &)
+ {
+ // Convert arbitrary audio data to some standard mp3 format
+ return 0;
+ }
+
+ static int convert_to_mpeg (ACE_FILE_Addr &, ACE_FILE_Addr &)
+ {
+ // Convert arbitrary vidio data to some standard mpeg format
+ return 0;
+ }
+};
+
+#endif /* UTIL_H */