mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 22:47:44 +00:00
Start working on a Downloader app and backing classes in LibGUI.
LibGUI is slowly becoming LibKitchensink but I'm okay with this for now.
This commit is contained in:
parent
c7365a00f8
commit
8f30657390
21 changed files with 375 additions and 1 deletions
3
Applications/Downloader/.gitignore
vendored
Normal file
3
Applications/Downloader/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
*.o
|
||||
*.d
|
||||
Downloader
|
32
Applications/Downloader/Makefile
Normal file
32
Applications/Downloader/Makefile
Normal file
|
@ -0,0 +1,32 @@
|
|||
OBJS = \
|
||||
main.o
|
||||
|
||||
APP = Downloader
|
||||
|
||||
STANDARD_FLAGS = -std=c++17 -Wno-sized-deallocation
|
||||
WARNING_FLAGS = -Wextra -Wall -Wundef -Wcast-qual -Wwrite-strings -Wimplicit-fallthrough
|
||||
FLAVOR_FLAGS = -fno-exceptions -fno-rtti
|
||||
OPTIMIZATION_FLAGS = -Os
|
||||
INCLUDE_FLAGS = -I../../Servers -I../.. -I. -I../../LibC
|
||||
|
||||
DEFINES = -DSERENITY -DSANITIZE_PTRS -DUSERLAND
|
||||
|
||||
CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(FLAVOR_FLAGS) $(STANDARD_FLAGS) $(INCLUDE_FLAGS) $(DEFINES)
|
||||
CXX = i686-pc-serenity-g++
|
||||
LD = i686-pc-serenity-g++
|
||||
AR = i686-pc-serenity-ar
|
||||
LDFLAGS = -L../../LibC -L../../LibGUI
|
||||
|
||||
all: $(APP)
|
||||
|
||||
$(APP): $(OBJS)
|
||||
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lc
|
||||
|
||||
.cpp.o:
|
||||
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
||||
|
||||
-include $(OBJS:%.o=%.d)
|
||||
|
||||
clean:
|
||||
@echo "CLEAN"; rm -f $(APPS) $(OBJS) *.d
|
||||
|
30
Applications/Downloader/main.cpp
Normal file
30
Applications/Downloader/main.cpp
Normal file
|
@ -0,0 +1,30 @@
|
|||
#include <LibGUI/GApplication.h>
|
||||
#include <LibGUI/GHttpRequest.h>
|
||||
#include <LibGUI/GHttpResponse.h>
|
||||
#include <LibGUI/GNetworkJob.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
GApplication app(argc, argv);
|
||||
|
||||
GHttpRequest request;
|
||||
request.set_hostname("www.google.com");
|
||||
request.set_path("/");
|
||||
|
||||
auto job = request.schedule();
|
||||
job->on_finish = [&job] (bool success) {
|
||||
if (!success) {
|
||||
dbgprintf("on_finish: request failed :(\n");
|
||||
return;
|
||||
}
|
||||
auto& response = static_cast<const GHttpResponse&>(*job->response());
|
||||
printf("on_receive: code=%d\n", response.code());
|
||||
printf("payload:\n");
|
||||
printf("%s", response.payload().pointer());
|
||||
printf("payload was %d bytes\n", response.payload().size());
|
||||
};
|
||||
|
||||
printf("Entering main loop...\n");
|
||||
return app.exec();
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue