1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 19:37:34 +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:
Andreas Kling 2019-04-07 14:36:10 +02:00
parent c7365a00f8
commit 8f30657390
21 changed files with 375 additions and 1 deletions

3
Applications/Downloader/.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
*.o
*.d
Downloader

View 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

View 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();
}