summaryrefslogtreecommitdiff
path: root/noncore/net/opietooth/lib/services.h
blob: 02629e62e36792091553b1c94661b0eb06f6e86d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145

#ifndef OpieToothServices_H
#define OpieToothServices_H

#include <qmap.h>
#include <qvaluelist.h>

namespace OpieTooth {
  /**
   * Services lets shows you all available services
   * on a remote device
   */
  class Services {
   public:
    /** The profile descriptor
     *
     */
    class ProfileDescriptor{
    public:
      /** typedef */
      typedef QValueList<ProfileDescriptor> ValueList;
      /** c'tor for QValueList */
      ProfileDescriptor();
      /**
       *  c'tor
       *  @param id The id or name ("Lan Access Using PPP")
       *  @param idInt The id as uint ( 0x1102 )
       *  @param version Version of the Profile ( 1 )
       */
      ProfileDescriptor(const QString &id, int idInt, int version );
      /**
       * copy c'tor
       */
      ProfileDescriptor(const ProfileDescriptor& );
      /**
       * returns the id
       */
      QString id()const;
      /**
       * sets the id
       */
      void setId(const QString& id);

      /**
       * sets the int id
       */
      void setId(int );
      /**
       * reutns the id as int
       */
      int idInt()const;
      /**
       * returns the version
       */
      int version()const;
      /**
       * sets the Version
       */
      void setVersion(int version );
      /**
       * copy operator
       */
      ProfileDescriptor &operator=( const ProfileDescriptor& );
      /**
       * operator==
       */
//      friend bool operator==(const ProfileDescriptor&, const ProfileDescriptor& );
    private:
      QString m_id;
      int m_idInt;
      int m_version;
    };
  public:
    /**
     * Protocol Descriptor
     */
    class ProtocolDescriptor {
    public:
      typedef QValueList<ProtocolDescriptor> ValueList;
      /**
       * c'tor
       */
      ProtocolDescriptor();
      /**
       * name
       * number
       * channel/port
       */
      ProtocolDescriptor(const QString&, int, int port = -1 ); // Q_UINT8 ?
      ProtocolDescriptor(const ProtocolDescriptor& );
      ~ProtocolDescriptor();
      QString name()const;
      void setName(const QString& );
      int id()const;
      void setId(int );
      int port()const;
      void setPort(int );
      ProtocolDescriptor &operator=( const ProtocolDescriptor& );
        //friend bool operator==( const ProtocolDescriptor&,
        //	      const ProtocolDescriptor& );
    private:
      QString m_name;
      int m_number;
      int m_channel;
    };

  public:
    typedef QValueList<Services> ValueList;
    Services();
    Services(const  Services& service );
    ~Services();

    Services &operator=( const Services& );
    friend bool operator==(const Services&, const Services& );
    QString serviceName()const;
    void setServiceName( const QString& service );

    int recHandle()const;
    void setRecHandle( int );


    QMap<int, QString> classIdList()const;
    void insertClassId( int id, const QString& className );
    void removeClassId( int id );
    void clearClassId();

    void insertProtocolDescriptor(const ProtocolDescriptor& );
    void clearProtocolDescriptorList();
    void removeProtocolDescriptor( const ProtocolDescriptor& );
    ProtocolDescriptor::ValueList protocolDescriptorList()const;

    void insertProfileDescriptor( const ProfileDescriptor& );
    void clearProfileDescriptorList();
    void removeProfileDescriptor(const ProfileDescriptor& );
    ProfileDescriptor::ValueList profileDescriptor()const;

  private:
      QMap<int, QString> m_classIds;
      QString m_name;
      int m_recHandle;
      QValueList<ProfileDescriptor> m_profiles;
      QValueList<ProtocolDescriptor> m_protocols;
  };
};
#endif