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_SERVERPAIRINGSESSION_H_
     16 #define POLO_PAIRING_SERVERPAIRINGSESSION_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 server pairing session. This handles the logic for sending and
     27 // receiving Polo messages during a pairing session.
     28 class ServerPairingSession : public PairingSession {
     29  public:
     30   // Creates a new server 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 response
     34   // @param server_name the server name
     35   ServerPairingSession(wire::PoloWireAdapter *wire,
     36                        PairingContext *context,
     37                        PoloChallengeResponse* challenge,
     38                        const std::string &server_name);
     39 
     40   ~ServerPairingSession();
     41 
     42   // @override
     43   virtual void OnPairingRequestMessage(
     44       const message::PairingRequestMessage& message);
     45 
     46   // @override
     47   virtual void OnOptionsMessage(
     48       const message::OptionsMessage& message);
     49 
     50   // @override
     51   virtual void OnConfigurationMessage(
     52       const message::ConfigurationMessage& message);
     53 
     54   // @override
     55   virtual void OnConfigurationAckMessage(
     56       const message::ConfigurationAckMessage& message);
     57 
     58   // @override
     59   virtual void OnPairingRequestAckMessage(
     60       const message::PairingRequestAckMessage& message);
     61 
     62  protected:
     63   // @override
     64   virtual void DoInitializationPhase();
     65 
     66   // @override
     67   virtual void DoConfigurationPhase();
     68 
     69  private:
     70   std::string server_name_;
     71 };
     72 
     73 }  // namespace pairing
     74 }  // namespace polo
     75 
     76 #endif  // POLO_PAIRING_SERVERPAIRINGSESSION_H_
     77