summaryrefslogtreecommitdiff
authorzecke <zecke>2002-07-13 12:54:47 (UTC)
committer zecke <zecke>2002-07-13 12:54:47 (UTC)
commitd7f3722f9b7913731978437085b14cc2cccbfa24 (patch) (unidiff)
tree1b190105693609cc01d1ad9730e8925e957209c9
parent8be0a8e108eaf8ff99301aa175298ddeb48eae67 (diff)
downloadopie-d7f3722f9b7913731978437085b14cc2cccbfa24.zip
opie-d7f3722f9b7913731978437085b14cc2cccbfa24.tar.gz
opie-d7f3722f9b7913731978437085b14cc2cccbfa24.tar.bz2
LIB updates
Class IdList per Service can have more than one line
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opietooth/lib/parser.cc8
-rw-r--r--noncore/net/opietooth/lib/services.cc26
-rw-r--r--noncore/net/opietooth/lib/services.h13
3 files changed, 22 insertions, 25 deletions
diff --git a/noncore/net/opietooth/lib/parser.cc b/noncore/net/opietooth/lib/parser.cc
index 00ec84a..0699309 100644
--- a/noncore/net/opietooth/lib/parser.cc
+++ b/noncore/net/opietooth/lib/parser.cc
@@ -107,50 +107,48 @@ bool Parser::parseRecHandle( const QString& str) {
107 int value = out.mid(2).toInt(&m_ok, 16 ); 107 int value = out.mid(2).toInt(&m_ok, 16 );
108 if (m_ok && (value != -1) ) 108 if (m_ok && (value != -1) )
109 m_complete = true; 109 m_complete = true;
110 else 110 else
111 m_complete = false; 111 m_complete = false;
112 qWarning("rec handle %d", value); 112 qWarning("rec handle %d", value);
113 m_item.setRecHandle( value ); 113 m_item.setRecHandle( value );
114 return true; 114 return true;
115 115
116 } 116 }
117 return false; 117 return false;
118} 118}
119bool Parser::parseClassId( const QString& str) { 119bool Parser::parseClassId( const QString& str) {
120 if (str.startsWith("Service Class ID List:") ) { 120 if (str.startsWith("Service Class ID List:") ) {
121 m_classOver = true; 121 m_classOver = true;
122 return true; 122 return true;
123 }else if ( m_classOver ) { // ok now are the informations in place 123 }else if ( m_classOver && str.startsWith(" " ) ){ // ok now are the informations in place
124 124
125 m_classOver = false;
126 125
127 // "Obex Object Push" (0x1105) 126 // "Obex Object Push" (0x1105)
128 // find backwards the " and the from 0 to pos and the mid pos+1 127 // find backwards the " and the from 0 to pos and the mid pos+1
129 // then stripWhiteSpace add name replace '"' with "" 128 // then stripWhiteSpace add name replace '"' with ""
130 // and then convert 0x1105 toInt() 129 // and then convert 0x1105 toInt()
131 QString classes; 130 QString classes;
132 int ids; 131 int ids;
133 ids = convert( str, classes ); 132 ids = convert( str, classes );
134 qWarning("ids %d", ids ); 133 qWarning("ids %d", ids );
135 m_item.setClassIdList( classes ); 134 m_item.insertClassId( ids, classes );
136 m_item.setClassIdList( ids );
137 135
138 return true; 136 return true;
139 }else 137 }else
140 m_classOver = true; 138 m_classOver = false;
141 return false; 139 return false;
142} 140}
143bool Parser::parseProtocol( const QString& str) { 141bool Parser::parseProtocol( const QString& str) {
144 if (str.startsWith("Protocol Descriptor List:") ) { 142 if (str.startsWith("Protocol Descriptor List:") ) {
145 m_protocolOver = true; 143 m_protocolOver = true;
146 m_protocolAdded = false; 144 m_protocolAdded = false;
147 return true; 145 return true;
148 146
149 }else if (m_protocolOver && str.startsWith(" ") ) { // "L2CAP" (0x0100) 147 }else if (m_protocolOver && str.startsWith(" ") ) { // "L2CAP" (0x0100)
150 qWarning("double protocol filter"); 148 qWarning("double protocol filter");
151 149
152 if (!m_protocolAdded ) { // the protocol does neither supply a channel nor port so add it now 150 if (!m_protocolAdded ) { // the protocol does neither supply a channel nor port so add it now
153 Services::ProtocolDescriptor desc( m_protName, m_protId ); 151 Services::ProtocolDescriptor desc( m_protName, m_protId );
154 m_item.insertProtocolDescriptor( desc ); 152 m_item.insertProtocolDescriptor( desc );
155 } 153 }
156 m_protocolAdded = false; 154 m_protocolAdded = false;
diff --git a/noncore/net/opietooth/lib/services.cc b/noncore/net/opietooth/lib/services.cc
index 93ee70a..23b760b 100644
--- a/noncore/net/opietooth/lib/services.cc
+++ b/noncore/net/opietooth/lib/services.cc
@@ -100,72 +100,70 @@ bool operator==( const Services::ProtocolDescriptor &first,
100 return false; 100 return false;
101 101
102} 102}
103 103
104Services::Services(){ 104Services::Services(){
105 105
106} 106}
107Services::Services(const Services& service ){ 107Services::Services(const Services& service ){
108 (*this) = service; 108 (*this) = service;
109} 109}
110Services::~Services(){ 110Services::~Services(){
111 111
112} 112}
113Services &Services::operator=( const Services& ser){ 113Services &Services::operator=( const Services& ser){
114 m_name = ser.m_name; 114 m_name = ser.m_name;
115 m_recHandle = ser.m_recHandle; 115 m_recHandle = ser.m_recHandle;
116 m_classList = ser.m_classList; 116 m_classIds = ser.m_classIds;
117 m_classId = ser.m_classId;
118 m_protocols = ser.m_protocols; 117 m_protocols = ser.m_protocols;
119 m_profiles = ser.m_profiles; 118 m_profiles = ser.m_profiles;
120 return *this; 119 return *this;
121} 120}
122bool operator==( const Services& one, 121bool operator==( const Services& one,
123 const Services& two){ 122 const Services& two){
124 if ( ( one.recHandle() == two.recHandle() ) && 123 if ( ( one.recHandle() == two.recHandle() ) &&
125 ( one.classIdListInt() == two.classIdListInt() ) &&
126 ( one.serviceName() == two.serviceName() ) && 124 ( one.serviceName() == two.serviceName() ) &&
127 ( one.classIdList() == two.classIdList() ) &&
128 ( one.protocolDescriptorList() == two.protocolDescriptorList() ) && 125 ( one.protocolDescriptorList() == two.protocolDescriptorList() ) &&
129 ( one.profileDescriptor() == two.profileDescriptor() ) ) 126 ( one.profileDescriptor() == two.profileDescriptor() )
127 /* ( one.classIdList() == two.classIdList() ) */ )
130 return true; 128 return true;
131 return false; 129 return false;
132} 130}
133QString Services::serviceName() const{ 131QString Services::serviceName() const{
134 return m_name; 132 return m_name;
135} 133}
136void Services::setServiceName( const QString& service ){ 134void Services::setServiceName( const QString& service ){
137 m_name = service; 135 m_name = service;
138} 136}
139int Services::recHandle() const{ 137int Services::recHandle() const{
140 return m_recHandle; 138 return m_recHandle;
141} 139}
142void Services::setRecHandle( int handle){ 140void Services::setRecHandle( int handle){
143 m_recHandle = handle; 141 m_recHandle = handle;
144} 142}
145QString Services::classIdList() const{ 143QMap<int, QString> Services::classIdList()const {
146 return m_classList; 144 return m_classIds;
145};
146void Services::insertClassId( int id, const QString& str ) {
147 m_classIds.insert( id, str );
147} 148}
148void Services::setClassIdList( const QString& str){ 149void Services::removeClassId(int id) {
149 m_classList = str; 150 m_classIds.remove( id );
150} 151}
151int Services::classIdListInt() const{ 152void Services::clearClassId() {
152 return m_classId; 153 m_classIds.clear();
153}
154void Services::setClassIdList(int id){
155 m_classId = id;
156} 154}
157void Services::insertProtocolDescriptor( const ProtocolDescriptor& prot){ 155void Services::insertProtocolDescriptor( const ProtocolDescriptor& prot){
158 m_protocols.append( prot ); 156 m_protocols.append( prot );
159} 157}
160void Services::clearProtocolDescriptorList(){ 158void Services::clearProtocolDescriptorList(){
161 m_protocols.clear(); 159 m_protocols.clear();
162} 160}
163void Services::removeProtocolDescriptor( const ProtocolDescriptor& prot){ 161void Services::removeProtocolDescriptor( const ProtocolDescriptor& prot){
164 m_protocols.remove( prot ); 162 m_protocols.remove( prot );
165} 163}
166Services::ProtocolDescriptor::ValueList Services::protocolDescriptorList()const{ 164Services::ProtocolDescriptor::ValueList Services::protocolDescriptorList()const{
167 return m_protocols; 165 return m_protocols;
168} 166}
169 167
170 168
171void Services::insertProfileDescriptor( const ProfileDescriptor& prof){ 169void Services::insertProfileDescriptor( const ProfileDescriptor& prof){
diff --git a/noncore/net/opietooth/lib/services.h b/noncore/net/opietooth/lib/services.h
index 881d383..7cce5e1 100644
--- a/noncore/net/opietooth/lib/services.h
+++ b/noncore/net/opietooth/lib/services.h
@@ -1,20 +1,21 @@
1 1
2#ifndef OpieToothServices_H 2#ifndef OpieToothServices_H
3#define OpieToothServices_H 3#define OpieToothServices_H
4 4
5#include <qmap.h>
5#include <qvaluelist.h> 6#include <qvaluelist.h>
6 7
7namespace OpieTooth { 8namespace OpieTooth {
8 /** 9 /**
9 * Services lets shows you all available services 10 * Services lets shows you all available services
10 * on a remote device 11 * on a remote device
11 */ 12 */
12 class Services { 13 class Services {
13 14
14 /** The profile descriptor 15 /** The profile descriptor
15 * 16 *
16 */ 17 */
17 class ProfileDescriptor{ 18 class ProfileDescriptor{
18 public: 19 public:
19 /** typedef */ 20 /** typedef */
20 typedef QValueList<ProfileDescriptor> ValueList; 21 typedef QValueList<ProfileDescriptor> ValueList;
@@ -103,41 +104,41 @@ namespace OpieTooth {
103 }; 104 };
104 105
105 public: 106 public:
106 typedef QValueList<Services> ValueList; 107 typedef QValueList<Services> ValueList;
107 Services(); 108 Services();
108 Services(const Services& service ); 109 Services(const Services& service );
109 ~Services(); 110 ~Services();
110 111
111 Services &operator=( const Services& ); 112 Services &operator=( const Services& );
112 friend bool operator==(const Services&, const Services& ); 113 friend bool operator==(const Services&, const Services& );
113 QString serviceName()const; 114 QString serviceName()const;
114 void setServiceName( const QString& service ); 115 void setServiceName( const QString& service );
115 116
116 int recHandle()const; 117 int recHandle()const;
117 void setRecHandle( int ); 118 void setRecHandle( int );
118 119
119 QString classIdList()const; 120
120 void setClassIdList( const QString& ); 121 QMap<int, QString> classIdList()const;
121 int classIdListInt()const; 122 void insertClassId( int id, const QString& className );
122 void setClassIdList(int ); 123 void removeClassId( int id );
124 void clearClassId();
123 125
124 void insertProtocolDescriptor(const ProtocolDescriptor& ); 126 void insertProtocolDescriptor(const ProtocolDescriptor& );
125 void clearProtocolDescriptorList(); 127 void clearProtocolDescriptorList();
126 void removeProtocolDescriptor( const ProtocolDescriptor& ); 128 void removeProtocolDescriptor( const ProtocolDescriptor& );
127 ProtocolDescriptor::ValueList protocolDescriptorList()const; 129 ProtocolDescriptor::ValueList protocolDescriptorList()const;
128 130
129 void insertProfileDescriptor( const ProfileDescriptor& ); 131 void insertProfileDescriptor( const ProfileDescriptor& );
130 void clearProfileDescriptorList(); 132 void clearProfileDescriptorList();
131 void removeProfileDescriptor(const ProfileDescriptor& ); 133 void removeProfileDescriptor(const ProfileDescriptor& );
132 ProfileDescriptor::ValueList profileDescriptor()const; 134 ProfileDescriptor::ValueList profileDescriptor()const;
133 135
134 private: 136 private:
137 QMap<int, QString> m_classIds;
135 QString m_name; 138 QString m_name;
136 int m_recHandle; 139 int m_recHandle;
137 QString m_classList;
138 int m_classId;
139 QValueList<ProfileDescriptor> m_profiles; 140 QValueList<ProfileDescriptor> m_profiles;
140 QValueList<ProtocolDescriptor> m_protocols; 141 QValueList<ProtocolDescriptor> m_protocols;
141 }; 142 };
142}; 143};
143#endif 144#endif