projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch '2.0' of git.carlh.net:git/dcpomatic into 2.0
[dcpomatic.git]
/
src
/
lib
/
server.cc
diff --git
a/src/lib/server.cc
b/src/lib/server.cc
index 5598ef69f8388aae66098669ad9361e369691ab9..32e1e38b23f7148e0f7f1fa132fe2beaa4a8c0c4 100644
(file)
--- a/
src/lib/server.cc
+++ b/
src/lib/server.cc
@@
-22,16
+22,8
@@
* encoding work, and a class to implement such a server.
*/
* encoding work, and a class to implement such a server.
*/
-#include <string>
-#include <vector>
-#include <sstream>
-#include <iostream>
-#include <boost/algorithm/string.hpp>
-#include <boost/scoped_array.hpp>
-#include <libcxml/cxml.h>
-#include <dcp/raw_convert.h>
#include "server.h"
#include "server.h"
-#include "
util
.h"
+#include "
dcpomatic_socket
.h"
#include "scaler.h"
#include "image.h"
#include "dcp_video.h"
#include "scaler.h"
#include "image.h"
#include "dcp_video.h"
@@
-39,6
+31,14
@@
#include "cross.h"
#include "player_video.h"
#include "encoded_data.h"
#include "cross.h"
#include "player_video.h"
#include "encoded_data.h"
+#include "safe_stringstream.h"
+#include <dcp/raw_convert.h>
+#include <libcxml/cxml.h>
+#include <boost/algorithm/string.hpp>
+#include <boost/scoped_array.hpp>
+#include <string>
+#include <vector>
+#include <iostream>
#include "i18n.h"
#include "i18n.h"
@@
-48,7
+48,6
@@
#define LOG_ERROR_NC(...) _log->log (__VA_ARGS__, Log::TYPE_ERROR);
using std::string;
#define LOG_ERROR_NC(...) _log->log (__VA_ARGS__, Log::TYPE_ERROR);
using std::string;
-using std::stringstream;
using std::multimap;
using std::vector;
using std::list;
using std::multimap;
using std::vector;
using std::list;
@@
-104,22
+103,22
@@
Server::process (shared_ptr<Socket> socket, struct timeval& after_read, struct t
scoped_array<char> buffer (new char[length]);
socket->read (reinterpret_cast<uint8_t*> (buffer.get()), length);
scoped_array<char> buffer (new char[length]);
socket->read (reinterpret_cast<uint8_t*> (buffer.get()), length);
- string
stream
s (buffer.get());
+ string s (buffer.get());
shared_ptr<cxml::Document> xml (new cxml::Document ("EncodingRequest"));
shared_ptr<cxml::Document> xml (new cxml::Document ("EncodingRequest"));
- xml->read_str
eam
(s);
+ xml->read_str
ing
(s);
if (xml->number_child<int> ("Version") != SERVER_LINK_VERSION) {
cerr << "Mismatched server/client versions\n";
LOG_ERROR_NC ("Mismatched server/client versions");
return -1;
}
if (xml->number_child<int> ("Version") != SERVER_LINK_VERSION) {
cerr << "Mismatched server/client versions\n";
LOG_ERROR_NC ("Mismatched server/client versions");
return -1;
}
- shared_ptr<PlayerVideo> pvf (new PlayerVideo (xml, socket
, _log
));
+ shared_ptr<PlayerVideo> pvf (new PlayerVideo (xml, socket));
DCPVideo dcp_video_frame (pvf, xml, _log);
gettimeofday (&after_read, 0);
DCPVideo dcp_video_frame (pvf, xml, _log);
gettimeofday (&after_read, 0);
- shared_ptr<EncodedData> encoded = dcp_video_frame.encode_locally ();
+ shared_ptr<EncodedData> encoded = dcp_video_frame.encode_locally (
boost::bind (&Log::dcp_log, _log.get(), _1, _2)
);
gettimeofday (&after_encode, 0);
gettimeofday (&after_encode, 0);
@@
-180,7
+179,7
@@
Server::worker_thread ()
struct timeval end;
gettimeofday (&end, 0);
struct timeval end;
gettimeofday (&end, 0);
-
strings
tream message;
+
SafeStringS
tream message;
message.precision (2);
message << fixed
<< "Encoded frame " << frame << " from " << ip << ": "
message.precision (2);
message << fixed
<< "Encoded frame " << frame << " from " << ip << ": "
@@
-251,14
+250,16
@@
Server::broadcast_received ()
xmlpp::Document doc;
xmlpp::Element* root = doc.create_root_node ("ServerAvailable");
root->add_child("Threads")->add_child_text (raw_convert<string> (_worker_threads.size ()));
xmlpp::Document doc;
xmlpp::Element* root = doc.create_root_node ("ServerAvailable");
root->add_child("Threads")->add_child_text (raw_convert<string> (_worker_threads.size ()));
- stringstream xml;
- doc.write_to_stream (xml, "UTF-8");
+ string xml = doc.write_to_string ("UTF-8");
+ if (_verbose) {
+ cout << "Offering services to master " << _broadcast.send_endpoint.address().to_string () << "\n";
+ }
shared_ptr<Socket> socket (new Socket);
try {
socket->connect (boost::asio::ip::tcp::endpoint (_broadcast.send_endpoint.address(), Config::instance()->server_port_base() + 1));
shared_ptr<Socket> socket (new Socket);
try {
socket->connect (boost::asio::ip::tcp::endpoint (_broadcast.send_endpoint.address(), Config::instance()->server_port_base() + 1));
- socket->write (xml.
str().
length() + 1);
- socket->write ((uint8_t *) xml.
str().c_str(), xml.str()
.length() + 1);
+ socket->write (xml.length() + 1);
+ socket->write ((uint8_t *) xml.
c_str(), xml
.length() + 1);
} catch (...) {
}
} catch (...) {
}