~ubuntu-branches/debian/jessie/gsmlib/jessie

« back to all changes in this revision

Viewing changes to gsmlib/gsm_cb.cc

  • Committer: Package Import Robot
  • Author(s): Andrew Shadura
  • Date: 2013-10-15 13:29:27 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20131015132927-1i5iwvj21wue3uvu
Tags: 1.10+20120414.gita5e5ae9a-0.1
* Non-maintainer upload.
* Update to the latest Git version by Vianney Bouchaud.
* Use 3.0 (quilt) source package format.
* Own the run subdirectory (Closes: #689891).
* Don't remove the system user on package remove.
* Fix init script (LP: #30228).

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
#include <gsmlib/gsm_sysdep.h>
17
17
#include <gsmlib/gsm_cb.h>
18
18
#include <gsmlib/gsm_nls.h>
19
 
#include <strstream>
 
19
#include <sstream>
20
20
 
21
 
using namespace std;
22
21
using namespace gsmlib;
23
22
 
24
23
// local constants
25
24
 
26
 
static const string dashes =
 
25
static const std::string dashes =
27
26
"---------------------------------------------------------------------------";
28
27
 
29
28
// CBDataCodingScheme members
31
30
CBDataCodingScheme::CBDataCodingScheme(unsigned char dcs) : _dcs(dcs)
32
31
{
33
32
  if ((_dcs & 0xf0) <= 0x30)    // bits 7..4 in the range 0000..0011
34
 
    if ((_dcs & 0x30) == 0)
35
 
      _language = (Language)_dcs;
 
33
    {
 
34
      if ((_dcs & 0x30) == 0)
 
35
        _language = (Language)_dcs;
 
36
    }
36
37
  else
37
 
    _language = Unknown;
 
38
    _language = (Language)Unknown;
38
39
}
39
40
 
40
 
string CBDataCodingScheme::toString() const
 
41
std::string CBDataCodingScheme::toString() const
41
42
{
42
 
  string result;
43
 
  if (compressed()) result += _("compressed   ");
 
43
  std::string result;
 
44
  if (compressed())
 
45
    result += _("compressed   ");
44
46
  switch (getLanguage())
45
47
  {
46
48
  case German:
82
84
  case Turkish:
83
85
    result += _("Turkish");
84
86
    break;
 
87
  case Unknown:
 
88
    result += _("Unknown");
 
89
    break;
85
90
  }
86
91
  result += "   ";
87
92
  switch (getAlphabet())
104
109
 
105
110
// CBMessage members
106
111
 
107
 
CBMessage::CBMessage(string pdu) throw(GsmException)
 
112
CBMessage::CBMessage(std::string pdu) throw(GsmException)
108
113
{
109
114
  SMSDecoder d(pdu);
110
115
  _messageCode = d.getInteger(6) << 4;
133
138
  }
134
139
}
135
140
 
136
 
string CBMessage::toString() const
 
141
std::string CBMessage::toString() const
137
142
{
138
 
  ostrstream os;
139
 
  os << dashes << endl
140
 
     << _("Message type: CB") << endl
 
143
  std::ostringstream os;
 
144
  os << dashes << std::endl
 
145
     << _("Message type: CB") << std::endl
141
146
     << _("Geographical scope: ");
142
147
  switch (_geographicalScope)
143
148
  {
144
149
  case CellWide:
145
 
    os << "Cell wide" << endl;
 
150
    os << "Cell wide" << std::endl;
146
151
    break;
147
152
  case PLMNWide:
148
 
    os << "PLMN wide" << endl;
 
153
    os << "PLMN wide" << std::endl;
149
154
    break;
150
155
  case LocationAreaWide:
151
 
    os << "Location area wide" << endl;
 
156
    os << "Location area wide" << std::endl;
152
157
    break;
153
158
  case CellWide2:
154
 
    os << "Cell wide (2)" << endl;
 
159
    os << "Cell wide (2)" << std::endl;
155
160
    break;
156
161
  }
157
162
  // remove trailing \r characters for output
158
 
  string data = _data;
159
 
  string::iterator i;
 
163
  std::string data = _data;
 
164
  std::string::iterator i;
160
165
  for (i = data.end(); i > data.begin() && *(i - 1) == '\r';
161
166
       --i);
162
167
  data.erase(i, data.end());
163
168
 
164
 
  os << _("Message Code: ") << _messageCode << endl
165
 
     << _("Update Number: ") << _updateNumber << endl
166
 
     << _("Message Identifer: ") << _messageIdentifier << endl
167
 
     << _("Data coding scheme: ") << _dataCodingScheme.toString() << endl
168
 
     << _("Total page number: ") << _totalPageNumber << endl
169
 
     << _("Current page number: ") << _currentPageNumber << endl
170
 
     << _("Data: '") << data << "'" << endl
171
 
     << dashes << endl << endl << ends;
172
 
  char *ss = os.str();
173
 
  string result(ss);
174
 
  delete[] ss;
175
 
  return result;
 
169
  os << _("Message Code: ") << _messageCode << std::endl
 
170
     << _("Update Number: ") << _updateNumber << std::endl
 
171
     << _("Message Identifer: ") << _messageIdentifier << std::endl
 
172
     << _("Data coding scheme: ") << _dataCodingScheme.toString() << std::endl
 
173
     << _("Total page number: ") << _totalPageNumber << std::endl
 
174
     << _("Current page number: ") << _currentPageNumber << std::endl
 
175
     << _("Data: '") << data << "'" << std::endl
 
176
     << dashes << std::endl << std::endl << std::ends;
 
177
  return os.str();
176
178
}