Home | History | Annotate | Download | only in pairing
      1 // Copyright 2012 Google Inc. All Rights Reserved.
      2 //
      3 // Licensed under the Apache License, Version 2.0 (the "License");
      4 // you may not use this file except in compliance with the License.
      5 // You may obtain a copy of the License at
      6 //
      7 //     http://www.apache.org/licenses/LICENSE-2.0
      8 //
      9 // Unless required by applicable law or agreed to in writing, software
     10 // distributed under the License is distributed on an "AS IS" BASIS,
     11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 // See the License for the specific language governing permissions and
     13 // limitations under the License.
     14 
     15 #ifndef POLO_PAIRING_CLIENTPAIRINGSESSION_H_
     16 #define POLO_PAIRING_CLIENTPAIRINGSESSION_H_
     17 
     18 #include <string>
     19 
     20 #include "polo/pairing/pairingsession.h"
     21 #include "polo/pairing/pairinglistener.h"
     22 
     23 namespace polo {
     24 namespace pairing {
     25 
     26 // A Polo client pairing session. This handles the logic for sending and
     27 // receiving Polo messages during a pairing session.
     28 class ClientPairingSession : public PairingSession {
     29  public:
     30   // Creates a new client pairing session.
     31   // @param wire the wire adapter used to send and receive Polo messages
     32   // @param context the Polo pairing context
     33   // @param challenge the challenge
     34   // @param service_name the service name
     35   // @param client_name the client name
     36   ClientPairingSession(wire::PoloWireAdapter* wire,
     37                        PairingContext* context,
     38                        PoloChallengeResponse* challenge,
     39                        const std::string& service_name,
     40                        const std::string& client_name);
     41 
     42   virtual ~ClientPairingSession();
     43 
     44   // @override
     45   virtual void OnConfigurationAckMessage(
     46       const message::ConfigurationAckMessage& message);
     47 
     48   // @override
     49   virtual void OnOptionsMessage(const message::OptionsMessage& message);
     50 
     51   // @override
     52   virtual void OnPairingRequestAckMessage(
     53       const message::PairingRequestAckMessage& message);
     54 
     55   // @override
     56   virtual void OnConfigurationMessage(
     57       const message::ConfigurationMessage& message);
     58 
     59   // @override
     60   virtual void OnPairingRequestMessage(
     61       const message::PairingRequestMessage& message);
     62 
     63  protected:
     64   // @override
     65   virtual void DoInitializationPhase();
     66 
     67   // @override
     68   virtual void DoConfigurationPhase();
     69 
     70  private:
     71   std::string service_name_;
     72   std::string client_name_;
     73 };
     74 
     75 }  // namespace pairing
     76 }  // namespace polo
     77 
     78 #endif  // POLO_PAIRING_CLIENTPAIRINGSESSION_H_
     79