126cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt/*
226cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt * Copyright 2016 Google Inc.
326cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt *
426cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt * Use of this source code is governed by a BSD-style license that can be
526cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt * found in the LICENSE file.
626cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt */
726cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt
826cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt#ifndef Reponse_DEFINED
926cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt#define Reponse_DEFINED
1026cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt
1126cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualittstruct MHD_Connection;
1226cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualittstruct Request;
1326cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualittclass SkData;
1426cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt
1526cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualittnamespace Response {
1626cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt    // SendOK just sends an empty response with a 200 OK status code.
1726cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt    int SendOK(MHD_Connection* connection);
1826cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt
1926cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt    int SendError(MHD_Connection* connection, const char* msg);
2026cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt
2126cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt    int SendData(MHD_Connection* connection, const SkData* data, const char* type,
2226cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt                 bool setContentDisposition = false, const char* dispositionString = nullptr);
2326cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt
2426cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt    int SendJSON(MHD_Connection* connection, Request* request, int n);
2526cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt
2626cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt    int SendTemplate(MHD_Connection* connection, bool redirect = false,
2726cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt                     const char* redirectUrl = nullptr);
2826cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt}
2926cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt
3026cc3f5ad0aacf80bba162bab4b23a2901ffed17joshualitt#endif
31