21 #include "cafNotNull.h"
22 #include "cafRpcApplication.h"
23 #include "cafSession.h"
41 virtual int portNumber()
const = 0;
42 virtual void run() = 0;
43 virtual void quit() = 0;
44 virtual bool running()
const = 0;
46 virtual std::shared_ptr<Document> document(
const std::string& documentId,
const caffa::Session* session ) = 0;
47 virtual std::shared_ptr<const Document> document(
const std::string& documentId,
49 virtual std::list<std::shared_ptr<Document>> documents(
const caffa::Session* session ) = 0;
50 virtual std::list<std::shared_ptr<const Document>> documents(
const caffa::Session* session )
const = 0;
52 bool requiresValidSession()
const;
53 void setRequiresValidSession(
bool requiresValidSession );
55 virtual bool readyForSession( caffa::Session::Type type )
const = 0;
57 virtual bool hasActiveSessions()
const = 0;
60 virtual void changeSession( caffa::not_null<caffa::Session*> session, caffa::Session::Type newType ) = 0;
61 virtual void destroySession(
const std::string& sessionUuid ) = 0;
64 virtual void onStartup() {}
65 virtual void onShutdown() {}
68 bool m_requiresValidSession;
Definition: cafSession.h:96
Definition: cafSession.h:81
Abstract class representing an application session.
Definition: cafSession.h:35
Definition: cafRpcApplication.h:28
Definition: cafRpcServerApplication.h:34
Main Caffa namespace.
Definition: __init__.py:1
AppCapability
Application capability Defines what type of application it is. These flags can be combined....
Definition: cafApplication.h:47