comparison Core/HttpServer/HttpOutput.h @ 155:93e1b0e3b83a

filenames when downloading json/dicom
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 23 Oct 2012 15:43:46 +0200
parents fe180eae201d
children 7f74209ea0f8
comparison
equal deleted inserted replaced
154:66c2605532b3 155:93e1b0e3b83a
44 private: 44 private:
45 void SendHeaderInternal(Orthanc_HttpStatus status); 45 void SendHeaderInternal(Orthanc_HttpStatus status);
46 46
47 void SendOkHeader(const char* contentType, 47 void SendOkHeader(const char* contentType,
48 bool hasContentLength, 48 bool hasContentLength,
49 uint64_t contentLength); 49 uint64_t contentLength,
50 const char* contentFilename);
50 51
51 public: 52 public:
52 virtual ~HttpOutput() 53 virtual ~HttpOutput()
53 { 54 {
54 } 55 }
55 56
56 virtual void Send(const void* buffer, size_t length) = 0; 57 virtual void Send(const void* buffer, size_t length) = 0;
57 58
58 void SendString(const std::string& s);
59
60 void SendOkHeader();
61
62 void SendOkHeader(uint64_t contentLength);
63
64 void SendOkHeader(const std::string& contentType); 59 void SendOkHeader(const std::string& contentType);
65 60
66 void SendOkHeader(const std::string& contentType, 61 void SendString(const std::string& s);
67 uint64_t contentLength);
68 62
69 void SendMethodNotAllowedError(const std::string& allowed); 63 void SendMethodNotAllowedError(const std::string& allowed);
70 64
71 void SendHeader(Orthanc_HttpStatus status); 65 void SendHeader(Orthanc_HttpStatus status);
72 66
73 67
74 // Higher-level constructs to send entire files or buffers ------------------- 68 // Higher-level constructs to send entire files or buffers -------------------
75 69
76 void AnswerBuffer(const std::string& buffer)
77 {
78 AnswerBufferWithContentType(buffer, "");
79 }
80
81 void AnswerBufferWithContentType(const std::string& buffer, 70 void AnswerBufferWithContentType(const std::string& buffer,
82 const std::string& contentType); 71 const std::string& contentType);
83 72
84 void AnswerBufferWithContentType(const void* buffer, 73 void AnswerBufferWithContentType(const void* buffer,
85 size_t size, 74 size_t size,
86 const std::string& contentType); 75 const std::string& contentType);
87 76
88 void AnswerFile(const std::string& path) 77 void AnswerFileWithContentType(const std::string& path,
89 { 78 const std::string& contentType,
90 AnswerFileWithContentType(path, ""); 79 const char* filename = NULL);
91 }
92 80
93 void AnswerFileWithContentType(const std::string& path, 81 void AnswerFileAutodetectContentType(const std::string& path,
94 const std::string& contentType); 82 const char* filename = NULL);
95
96 void AnswerFileAutodetectContentType(const std::string& path);
97
98 void AnswerFile(const FileStorage& storage,
99 const std::string& uuid)
100 {
101 AnswerFile(storage, uuid, "");
102 }
103 83
104 void AnswerFile(const FileStorage& storage, 84 void AnswerFile(const FileStorage& storage,
105 const std::string& uuid, 85 const std::string& uuid,
106 const std::string& contentType); 86 const std::string& contentType,
87 const char* filename = NULL);
107 88
108 void Redirect(const std::string& path); 89 void Redirect(const std::string& path);
109 }; 90 };
110 } 91 }