summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsua2/types.cpp
diff options
context:
space:
mode:
authorLiong Sauw Ming <ming@teluu.com>2014-01-16 05:30:46 +0000
committerLiong Sauw Ming <ming@teluu.com>2014-01-16 05:30:46 +0000
commite56ea14ab8531ee3cec375460577d1b89bf62e26 (patch)
treedf77c3acb961514b2022ee9e030071b691145920 /pjsip/src/pjsua2/types.cpp
parentbd1c47e995a3a844868f1d4dcc8f77f163ae721b (diff)
Closed #1723: Merging pjsua2 branch into trunk
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4704 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsua2/types.cpp')
-rw-r--r--pjsip/src/pjsua2/types.cpp95
1 files changed, 95 insertions, 0 deletions
diff --git a/pjsip/src/pjsua2/types.cpp b/pjsip/src/pjsua2/types.cpp
new file mode 100644
index 00000000..26740cc7
--- /dev/null
+++ b/pjsip/src/pjsua2/types.cpp
@@ -0,0 +1,95 @@
+/* $Id$ */
+/*
+ * Copyright (C) 2013 Teluu Inc. (http://www.teluu.com)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#include <pjsua2/types.hpp>
+#include "util.hpp"
+
+using namespace pj;
+using namespace std;
+
+#define THIS_FILE "types.cpp"
+
+///////////////////////////////////////////////////////////////////////////////
+
+Error::Error()
+: status(PJ_SUCCESS), srcLine(0)
+{
+}
+
+Error::Error( pj_status_t prm_status,
+ const string &prm_title,
+ const string &prm_reason,
+ const string &prm_src_file,
+ int prm_src_line)
+: status(prm_status), title(prm_title), reason(prm_reason),
+ srcFile(prm_src_file), srcLine(prm_src_line)
+{
+ if (this->status != PJ_SUCCESS && prm_reason.empty()) {
+ char errmsg[PJ_ERR_MSG_SIZE];
+ pj_strerror(this->status, errmsg, sizeof(errmsg));
+ this->reason = errmsg;
+ }
+}
+
+string Error::info(bool multi_line) const
+{
+ string output;
+
+ if (status==PJ_SUCCESS) {
+ output = "No error";
+ } else if (!multi_line) {
+ char temp[80];
+
+ if (!title.empty()) {
+ output += title + " error: ";
+ }
+ snprintf(temp, sizeof(temp), " (status=%d)", status);
+ output += reason + temp;
+ if (!srcFile.empty()) {
+ output += " [";
+ output += srcFile;
+ snprintf(temp, sizeof(temp), ":%d]", srcLine);
+ output += temp;
+ }
+ } else {
+ char temp[80];
+
+ if (!title.empty()) {
+ output += string("Title: ") + title + "\n";
+ }
+
+ snprintf(temp, sizeof(temp), "%d\n", status);
+ output += string("Code: ") + temp;
+ output += string("Description: ") + reason + "\n";
+ if (!srcFile.empty()) {
+ snprintf(temp, sizeof(temp), ":%d\n", srcLine);
+ output += string("Location: ") + srcFile + temp;
+ }
+ }
+
+ return output;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+void TimeValue::fromPj(const pj_time_val &prm)
+{
+ this->sec = prm.sec;
+ this->msec = prm.msec;
+}
+