Submit Search
Upload
Casablanca
•
3 likes
•
2,974 views
egtra
Follow
Boost.勉強会#16 大阪で発表したときのものです。
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 20
Download now
Download to read offline
Recommended
C++ REST SDKを使ってWebサービスを利用する
C++ REST SDKを使ってWebサービスを利用する
You&I
RespClient - Minimal Redis Client for PowerShell
RespClient - Minimal Redis Client for PowerShell
Yoshifumi Kawai
asm.jsとWebAssemblyって実際なんなの?
asm.jsとWebAssemblyって実際なんなの?
Yosuke Onoue
Config mapについて
Config mapについて
Arata Honda
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』
H2O Space. Co., Ltd.
Webブラウザで使えるいろんな処理系
Webブラウザで使えるいろんな処理系
祐司 伊藤
PIAXで作る P2Pネットワーク
PIAXで作る P2Pネットワーク
祐司 伊藤
Excite beer bash06
Excite beer bash06
Arata Honda
Recommended
C++ REST SDKを使ってWebサービスを利用する
C++ REST SDKを使ってWebサービスを利用する
You&I
RespClient - Minimal Redis Client for PowerShell
RespClient - Minimal Redis Client for PowerShell
Yoshifumi Kawai
asm.jsとWebAssemblyって実際なんなの?
asm.jsとWebAssemblyって実際なんなの?
Yosuke Onoue
Config mapについて
Config mapについて
Arata Honda
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』
H2O Space. Co., Ltd.
Webブラウザで使えるいろんな処理系
Webブラウザで使えるいろんな処理系
祐司 伊藤
PIAXで作る P2Pネットワーク
PIAXで作る P2Pネットワーク
祐司 伊藤
Excite beer bash06
Excite beer bash06
Arata Honda
F# で ASP.NET
F# で ASP.NET
m ishizaki
Web socket and gRPC
Web socket and gRPC
TIS Inc
私が ASP.NET を選ぶ理由
私が ASP.NET を選ぶ理由
m ishizaki
[2001/01/23] VSLive! / Visual C++.NET 新機能概要
[2001/01/23] VSLive! / Visual C++.NET 新機能概要
Tatsuhiko Tanaka
C#の強み、或いは何故PHPから乗り換えるのか
C#の強み、或いは何故PHPから乗り換えるのか
Yoshifumi Kawai
Visual Studio Codeで始めるTypeScript
Visual Studio Codeで始めるTypeScript
Akira Inoue
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
Akira Inoue
The History of LINQ
The History of LINQ
Yoshifumi Kawai
WebComponentsとPolymer
WebComponentsとPolymer
Takahiro Maki
Bait and switch
Bait and switch
m ishizaki
Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること
Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること
Kei Nakazawa
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
祐司 伊藤
本当のClosure Compilerをお見せしますよ。
本当のClosure Compilerをお見せしますよ。
Teppei Sato
ライブラリにあらず! 〜Google Closure Toolsの事始め〜
ライブラリにあらず! 〜Google Closure Toolsの事始め〜
Kazuya Hiruma
Visual studio 2015 update1 ctpとcsi
Visual studio 2015 update1 ctpとcsi
Tadahiro Ishisaka
TypeScript と Visual Studio Code
TypeScript と Visual Studio Code
Akira Inoue
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Teppei Sato
Alt#0x008 2017/5/20
Alt#0x008 2017/5/20
Koki Natsume
Using xvim with macvim
Using xvim with macvim
pebble8888
SPA×Auth0
SPA×Auth0
春奈 岡
DXライブラリでMMO作ったよ!
DXライブラリでMMO作ったよ!
h2so5
Chromebook 「だけ」で WebRTCを動かそう
Chromebook 「だけ」で WebRTCを動かそう
mganeko
More Related Content
What's hot
F# で ASP.NET
F# で ASP.NET
m ishizaki
Web socket and gRPC
Web socket and gRPC
TIS Inc
私が ASP.NET を選ぶ理由
私が ASP.NET を選ぶ理由
m ishizaki
[2001/01/23] VSLive! / Visual C++.NET 新機能概要
[2001/01/23] VSLive! / Visual C++.NET 新機能概要
Tatsuhiko Tanaka
C#の強み、或いは何故PHPから乗り換えるのか
C#の強み、或いは何故PHPから乗り換えるのか
Yoshifumi Kawai
Visual Studio Codeで始めるTypeScript
Visual Studio Codeで始めるTypeScript
Akira Inoue
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
Akira Inoue
The History of LINQ
The History of LINQ
Yoshifumi Kawai
WebComponentsとPolymer
WebComponentsとPolymer
Takahiro Maki
Bait and switch
Bait and switch
m ishizaki
Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること
Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること
Kei Nakazawa
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
祐司 伊藤
本当のClosure Compilerをお見せしますよ。
本当のClosure Compilerをお見せしますよ。
Teppei Sato
ライブラリにあらず! 〜Google Closure Toolsの事始め〜
ライブラリにあらず! 〜Google Closure Toolsの事始め〜
Kazuya Hiruma
Visual studio 2015 update1 ctpとcsi
Visual studio 2015 update1 ctpとcsi
Tadahiro Ishisaka
TypeScript と Visual Studio Code
TypeScript と Visual Studio Code
Akira Inoue
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Teppei Sato
Alt#0x008 2017/5/20
Alt#0x008 2017/5/20
Koki Natsume
Using xvim with macvim
Using xvim with macvim
pebble8888
SPA×Auth0
SPA×Auth0
春奈 岡
What's hot
(20)
F# で ASP.NET
F# で ASP.NET
Web socket and gRPC
Web socket and gRPC
私が ASP.NET を選ぶ理由
私が ASP.NET を選ぶ理由
[2001/01/23] VSLive! / Visual C++.NET 新機能概要
[2001/01/23] VSLive! / Visual C++.NET 新機能概要
C#の強み、或いは何故PHPから乗り換えるのか
C#の強み、或いは何故PHPから乗り換えるのか
Visual Studio Codeで始めるTypeScript
Visual Studio Codeで始めるTypeScript
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
The History of LINQ
The History of LINQ
WebComponentsとPolymer
WebComponentsとPolymer
Bait and switch
Bait and switch
Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること
Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
本当のClosure Compilerをお見せしますよ。
本当のClosure Compilerをお見せしますよ。
ライブラリにあらず! 〜Google Closure Toolsの事始め〜
ライブラリにあらず! 〜Google Closure Toolsの事始め〜
Visual studio 2015 update1 ctpとcsi
Visual studio 2015 update1 ctpとcsi
TypeScript と Visual Studio Code
TypeScript と Visual Studio Code
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Alt#0x008 2017/5/20
Alt#0x008 2017/5/20
Using xvim with macvim
Using xvim with macvim
SPA×Auth0
SPA×Auth0
Similar to Casablanca
DXライブラリでMMO作ったよ!
DXライブラリでMMO作ったよ!
h2so5
Chromebook 「だけ」で WebRTCを動かそう
Chromebook 「だけ」で WebRTCを動かそう
mganeko
Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月
Emma Haruka Iwao
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
Kensaku Komatsu
WASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみた
MITSUNARI Shigeo
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Ryo Nakamaru
Bluetooth Low Energy入門講座 -part2
Bluetooth Low Energy入門講座 -part2
edy555
Draft: Observability, Service Mesh and Microservices
Draft: Observability, Service Mesh and Microservices
Taiki
無料セミナー20170321 awsから始めるlinux入門
無料セミナー20170321 awsから始めるlinux入門
Trainocate Japan, Ltd.
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
GoAzure
FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係
moai kids
Janogia20120921 yoshinotakeshi
Janogia20120921 yoshinotakeshi
Keisuke Ishibashi
WebRTC SFU mediasoup sample
WebRTC SFU mediasoup sample
mganeko
Kubernetesを触ってみた
Kubernetesを触ってみた
Kazuto Kusama
Mozillaのビルドインフラ
Mozillaのビルドインフラ
Makoto Kato
JavaScript And Keywords
JavaScript And Keywords
uupaa
TypeScriptへの入口
TypeScriptへの入口
Sunao Tomita
Couch DB in 15minutes
Couch DB in 15minutes
Yohei Sasaki
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
Naoya Ito
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
Yoshifumi Kawai
Similar to Casablanca
(20)
DXライブラリでMMO作ったよ!
DXライブラリでMMO作ったよ!
Chromebook 「だけ」で WebRTCを動かそう
Chromebook 「だけ」で WebRTCを動かそう
Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
WASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみた
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Bluetooth Low Energy入門講座 -part2
Bluetooth Low Energy入門講座 -part2
Draft: Observability, Service Mesh and Microservices
Draft: Observability, Service Mesh and Microservices
無料セミナー20170321 awsから始めるlinux入門
無料セミナー20170321 awsから始めるlinux入門
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係
Janogia20120921 yoshinotakeshi
Janogia20120921 yoshinotakeshi
WebRTC SFU mediasoup sample
WebRTC SFU mediasoup sample
Kubernetesを触ってみた
Kubernetesを触ってみた
Mozillaのビルドインフラ
Mozillaのビルドインフラ
JavaScript And Keywords
JavaScript And Keywords
TypeScriptへの入口
TypeScriptへの入口
Couch DB in 15minutes
Couch DB in 15minutes
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
More from egtra
Visual C++コード分析を支えるSAL
Visual C++コード分析を支えるSAL
egtra
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
egtra
Visual C++ 2015の紹介(C++11/14的に)
Visual C++ 2015の紹介(C++11/14的に)
egtra
Firefox拡張機能を始める
Firefox拡張機能を始める
egtra
ATLに見る魔術
ATLに見る魔術
egtra
再変換 (K2Editor)
再変換 (K2Editor)
egtra
C++11概要 ライブラリ編
C++11概要 ライブラリ編
egtra
char32_tとXpressiveと
char32_tとXpressiveと
egtra
Boost.Range入門
Boost.Range入門
egtra
Boost.Graph入門
Boost.Graph入門
egtra
More from egtra
(10)
Visual C++コード分析を支えるSAL
Visual C++コード分析を支えるSAL
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
Visual C++ 2015の紹介(C++11/14的に)
Visual C++ 2015の紹介(C++11/14的に)
Firefox拡張機能を始める
Firefox拡張機能を始める
ATLに見る魔術
ATLに見る魔術
再変換 (K2Editor)
再変換 (K2Editor)
C++11概要 ライブラリ編
C++11概要 ライブラリ編
char32_tとXpressiveと
char32_tとXpressiveと
Boost.Range入門
Boost.Range入門
Boost.Graph入門
Boost.Graph入門
Recently uploaded
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
Recently uploaded
(11)
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Casablanca
1.
Casablanca でHTTP H.26/09/20
Egtra For Boost.勉強会#16
2.
自分 •Egtra –Twitter:
@egtra –http://dev.activebasic.com/egtra/ •仕事: 主にVisual C++ 2005 (Windows) –最近C++ (Linux)も少し
3.
動機:私は探していた •HTTPライブラリ(クライアント) –主にAPIサーバー相手の通信
•クロスプラットフォーム –WindowsとLinuxほかUnix系
4.
C++ REST SDK
•クライアント・サーバ –HTTPS対応 •JSON, Oauth, WebScoket •Win/Mac/Linuxなど •C++11必須 •MS発OSSライブラリ •https://casablanca.codeprex.com/ ※ グレーは今回私が使っていないものです。
5.
プラットフォーム •Windows –Desktop/Store/Phone
•Linux, FreeBSD –Android: 対応中(?) •Mac OS X, iOS
6.
こんな感じ(1⁄2) http_clientclient(U("http://example.com/")); http_requestreq(methods::POST);
req.set_request_uri(U("my_api.txt")); req.set_body(……); autoresTask= client.request(req); // resTaskはpplx::task<http_response>
7.
こんな感じ(2⁄2) autobodyTask= resTask.then([](consthttp_response&
res) { // res.status_code(); // res.headers().content_type(); returnres.extract_body(); }; std::vector<unsigned char> body = bodyTask.get();
8.
こんな感じ(まとめ) •http_clientを作る •requestに↑
を渡す •http_responseを受け取る •extract_*()で中身を得る
9.
pplx::task •VC++のppl::taskの移植版 •ほぼstd::future
–thenメンバ関数がある! –協調的キャンセル機構など
10.
thenによるチェイン(1) client.request(req) .then([](constauto&
res) { returnres.extract_vector(); }).then([](constauto& vec) { returnvecをいい感じに解析; }).then([](conststd::string& result) { ……
11.
thenによるチェイン(2) pplx::task<std::string> call_my_api()
{ returnclient.request(req) .then([](constauto& res) { returnres.extract_vector(); }).then([](constauto& vec) { returnvecをいい感じに解析; }); }
12.
ヘッダー •req.headers().… orres.headers().…
–add(name, value), remove(name) –has(name), [], find(name) –begin(), end(), size(), empty() –content_type(), content_length(), –date(), cache_control()(読み取り) •set_…(value)(書き込み)
13.
リクエスト・ボディー •req.set_body(……) –文字列(std::string
orstring_t) –文字列, Content-Type文字列 –json::value –std::vector<unsigned char> –concurrency::stream::istream
14.
ステータスコード •res.status_code() ->
status_code –typedefunsigned shortstatus_code; –定数status_codes::OKほか •res.reason_phrase()
15.
レスポンス・ボディー •res.extract_string()-> pplx::task<文字列>
•res.extract_json() -> pplx::<json::value> •res.extract_vector() -> pplx::task<std::vector<unsigned char>> •body() -> concurrency::streams::istream
16.
文字列 •Windows: UTF-16(wchar_t)
•その他: UTF-8(char) •共通化 –char_t, string_t, stringstream_t –U("リテラル") –ucout, ucin, ucerr
17.
足回り •Windows: –WinHTTP.dll,
WinHTTP.sys –IXmlHttpRequest2 •その他: Boost.Asio –SSL: boost::asio::ssl(OpenSSL)
18.
インストール •Windows: –Visual
Studio内nuget
19.
インストール(Ubuntu) apt-get install
openssl-devcmake cdcasablanca/Release mkdirbuild.release cdbuild.release cmake.. BOOST_ROOT=…… # aptでBoostを入れたなら、BOOST_ROOT不要
20.
This work is
licensed under a Creative Commons Attribution- ShareAlike4.0 International License.
Download now